ESP8266 - nodeMcu - DSP18b20

  • 16 Odpowiedzi
  • 12528 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline wjacek

  • ** 33
  • 1
ESP8266 - nodeMcu - DSP18b20
« dnia: Marzec 24, 2015, 11:07:25 pm »
Działa mi bardzo niestabilnie, korzystam z oficjalnych nodeMcu może ktoś ws/pomoże ?
pozdrawiam,
Jacek
*

Offline richo

  • Moderator Globalny
  • ***** 146
  • 6
  • Nazwa i wersja ID: Indigo 6/HC 4.037
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #1 dnia: Marzec 25, 2015, 12:10:41 am »
W LUA, trybie modemowym AT czy w SDK ?
richo
*

Offline wjacek

  • ** 33
  • 1
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #2 dnia: Marzec 25, 2015, 01:07:52 am »
U mnie wygląda na zasilanie, jak rozpracuje to się odezwę.
pozdrawiam,
Jacek
*

Offline wjacek

  • ** 33
  • 1
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #3 dnia: Marzec 25, 2015, 01:32:03 am »
richo  LUA nodeMcu
pozdrawiam,
Jacek
*

Offline wjacek

  • ** 33
  • 1
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #4 dnia: Marzec 25, 2015, 01:40:13 am »
Rysiek, z tego co mówiłeś masz opracowane i działające DS18B20 pod nodeMcu lua.
Podziel się.
pozdrawiam,
Jacek
*

Offline richo

  • Moderator Globalny
  • ***** 146
  • 6
  • Nazwa i wersja ID: Indigo 6/HC 4.037
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #5 dnia: Marzec 25, 2015, 09:43:29 am »
Tego że mam rozpracowane to nigdzie nie mówiłem, ale na początku przygody z ESP odpaliłem podstawowe skrypty i zadziałały a potem to zostawiłem bo szukałem większych wyzwań ;-)
Postaram się to odgrzebać i opublikować.
richo
*

Offline Patriko

  • **** 441
  • 21
  • Nazwa i wersja ID: Darin/BleBox.eu
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #6 dnia: Marzec 25, 2015, 04:27:44 pm »
Zakładam że przyczyna jest typowo elektryczna - z czego zasilasz esp8266? Czy na zasilaniu masz co najmniej kondensator 100nF + minimum 10uF? Czy dałeś pull-up 4k7 pomiędzy linią 1-wire a VCC?

Pozdrawiam,
Patryk
*

Offline richo

  • Moderator Globalny
  • ***** 146
  • 6
  • Nazwa i wersja ID: Indigo 6/HC 4.037
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #7 dnia: Marzec 25, 2015, 06:14:54 pm »
Odpaliłem układ na płytce prototypowej z zasilaniem 3,3V stabilizowanym.
Nawet bez pull-up działa bez problemów od paru godzin.
Podłączenie jak na załączonym obrazku.

Na czym polega u Ciebie niestabilność?
richo
*

Offline wjacek

  • ** 33
  • 1
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #8 dnia: Marzec 25, 2015, 10:05:38 pm »
Podejrzewam że u mnie to jednak zasilanie lub oprogramowanie.
Odpowiadając na pytania: mam kondensatory filtrujące, mam rezystor pull-up.
Niestabilność to start co 2 uruchomienie oraz reset co klika godzin.
Proszę dajcie swoje kody źródłowe działające stabilnie.
pozdrawiam,
Jacek
*

Offline sztywniak

  • ***** 601
  • 23
  • Nazwa i wersja ID: HC2 3.60/ 4.37, Vera 1.7.1018
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #9 dnia: Marzec 25, 2015, 10:54:11 pm »
*

Offline richo

  • Moderator Globalny
  • ***** 146
  • 6
  • Nazwa i wersja ID: Indigo 6/HC 4.037
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #10 dnia: Marzec 26, 2015, 01:22:19 am »
Potwierdzam co napisał sztywniak apropo kodu. Zmieniłem tylko kawałek kodu sendData bo mi głupoty pokazywał po przecinku:

function sendData()
     getTemp()
     t1 = lasttemp / 10000
     --t2 = (lasttemp >= 0 and lasttemp % 10000) or (10000 - lasttemp % 10000)
     --print("Temp:"..t1 .. "."..string.format("%04d", t2).." C\n")
     --ts=t1 .. "."..string.format("%04d", t2)
     ts=string.format("%6.2f", t1)
     print("Temp:"..ts.." C\n")
     print("mem: "..node.heap())
     -- conection to thingspeak.com
     print("Sending data to thingspeak.com")
     conn=net.createConnection(net.TCP, 0)
     conn:on("receive", function(conn, payload) print(payload) end)
     -- api.thingspeak.com 184.106.153.149
     conn:connect(80,'184.106.153.149')
     conn:send("GET /update?key=XXXXXXXXXXXXX&field1="..ts.." HTTP/1.1\r\n")
     conn:send("Host: api.thingspeak.com\r\n")
     conn:send("Accept: */*\r\n")
     conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n")
     conn:send("\r\n")
     conn:on("sent",function(conn)
                      print("Closing connection")
                      conn:close()
                  end)
     conn:on("disconnection", function(conn)
                                print("Got disconnection...")
  end)
end

natomiast odkryłem dzisiaj przedziwną rzecz. Moje wszystkie DS18B20 kupione w Fibaro działaja w tym układzie bez problemu a takie same (inne nry seryjne) 4 szt kupione w Botlandzie wskazują temp -0.1 czyli jakby ich ESP w ogóle nie widział !?
Czary mary czy co...
« Ostatnia zmiana: Marzec 26, 2015, 01:25:08 am wysłana przez richo »
richo
*

Offline Patriko

  • **** 441
  • 21
  • Nazwa i wersja ID: Darin/BleBox.eu
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #11 dnia: Marzec 26, 2015, 07:10:54 am »
Upewnij się czy są to ds1820 czy ds18b20 - mają inną ramkę danych
*

Offline richo

  • Moderator Globalny
  • ***** 146
  • 6
  • Nazwa i wersja ID: Indigo 6/HC 4.037
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #12 dnia: Marzec 26, 2015, 09:17:25 am »
Sęk w tym, że muszę sobie dokupić drugie oczy powiększające żeby to odczytać  ;)
Dzięki za podpowiedz .

Edit:
Sprawdziłem pod lupą i wszystkie są DS18B20 !
A teraz taka ciekawostka. Wywaliłem z kodu publikowanie na Think Speak i zacząłem testy z różnym zasilaniem.
Okazało się, że te Dallasy, które kupiłem w Botlandzie wymagają 4k7 pull-up i zaczęły działać ! Te z Fibaro nie potrzebowały pull-up.

Niestety jak dołożyłem ponownie kod do publikowania na ThSpeak to znowu zdechły jakby ESP ich w ogóle nie widział nawet z pull-up.

Zaczynam dochodzić do wniosku że to ESP  jeśli chodzi o niestabilność to przebija ulubione Fibaro :-(
« Ostatnia zmiana: Marzec 26, 2015, 04:37:57 pm wysłana przez richo »
richo
*

Offline richo

  • Moderator Globalny
  • ***** 146
  • 6
  • Nazwa i wersja ID: Indigo 6/HC 4.037
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #13 dnia: Marzec 26, 2015, 05:11:59 pm »
No cóż z tym ESP mozna świra dostać.

Okazało się, że na odczytanie stanu Dallasów z Botlandu procek potrzebuje tylko więcej czasu. Wystarczyło wywalić wywołanie getTemp() z początku funkcji sendData() i przenieść je do timera i wszystkie Dallasy hulają  nawet bez 4k7 pull-up :)

za funkcją getData() umieszczamy tylko kod:
--initiate DS18b20
getTemp()

-- send data every X ms to thing speak
tmr.alarm(0, 30000, 1, function()
     getTemp()
     sendData()
end )

Co ciekawe sprawdziłem co sie dzieje jak mamy więcej Dallasów na jednej linii. Program dalej działa i dzięki temu możemy sobie stworzyć średnią z np 2 Dallasów do poprawy dokładności pomiaru.

Muszę się napić piwa bo sie spociłem przy tej robocie  :P
richo
*

Offline kniazio

  • ** 25
  • 0
  • Nazwa i wersja ID: kniazio
Odp: ESP8266 - nodeMcu - DSP18b20
« Odpowiedź #14 dnia: Wrzesień 15, 2015, 09:29:16 pm »
ten działa stabilnie :
https://github.com/ok1cdj/ESP8266-LUA/tree/master/Thermometer-DS18B20-Thingspeak
Panowie wreszcie trafilem na polskie forum gdzie mozna poczytac o esp8266
Mam problem
Potrzebuje wysylac dane na thingspeak i nic mi z tego nie wychodzi
Probuje wlasnie te wsady o ktorych mowa w watku
Dopisalem swoj write key
W programie ESPlorer pokazuje mi ze niby wysyla dane do thingspeak ale na stronie nie widac zmian
Panowie pomozcie bo juz nie mam sily
Pisalem po roznych zagranicznych forach i nic