Forum użytkowników automatyki budynkowej
Inne => Rasberry, Arduino, ESP8266, mikrokontrolery => Wątek zaczęty przez: richo w Marzec 29, 2015, 12:25:03 am
-
Okazuje się, że właściwe zasilanie ESP to bardzo ważna sprawa.
1. Do zasilania potrzebuje standardowo 3,3V z tym, że udało mi się go odpalić poniżej 3V oraz działa przy zasilaniu do 4,5V ale sie grzeje i może tego długo nie wytrzymać.
2. Pobiera przy nadawaniu ok 200mA, minimum 70mA a przy starcie nawet powyżej 350mA. Jeżeli po podłączeniu czerwona lampka słabiej świeci tj sygnał ostrzegawczy. Jeżeli przy restarcie nie mrugnie niebieska tzn że zasilanie jest za słabe.
3. JEŻELI ZASILANIE JEST SŁABE LUB NIESTABILNE TO ESP RÓWNIEŻ ZACHOWUJE SIE BARDZO NIESTABILNIE.
4. ESP można zasilać z baterii i akumulatorów 3V (2 paluszki itp) ale czas pracy jest bardzo krótki. Zależnie od częstości łączenia z WiFi od 1-3 dni. Można to przedłużyć stosując tryb DeepSleep gdy nie musimy się często komunikować ale to już wyższa szkoła jazdy i jest na to odrębny wątek.
To tyle na początek. Będę dzielił się moimi doświadczeniami i czekam na Wasze. Na razie korzystam z zasilacza 5V i przetwornika do 3,3V ale to jest zbyt duże ażeby zastosować np w puszkach. Testujemy z kolegami rozwiązanie w oparciu o takie zasilacze ale póki co bez sukcesów... http://allegro.pl/show_item.php?item=5180447011
Trochę sprzedawca tu nabajerował i wygląda na to, że zasilacz nie daje tyle prądu żeby ESP mógł działać, a poza tym napięcie skacze od 2,75 do 3,06V.
-
Ja kupilem dodatkowy modul mb102 do ktorego podlacze zasilacz 12v a na wyjsciu bedzie 3,3 lub 5v:)
-
Richo - zgadza się, większość problemów wynika z zasilania, dodatkowo bez oscyloskopu trudno jest je zaobserwować - np. moduł gdy "nic nie robi" pobiera kilka mA, gdy wysyła dane z najwyższą mocą potrafi pociągnąć (zwłaszcza chiński) - ponad 250 mA przez kilkadziesiąt ms, więc napięcie spada na chwilę która dla procesora jest wiecznością - a woltomierzem tego nie zmierzysz.
Marcin - mb102 nie nadaje się - stabilizatory liniowy koszmarnie się grzeje - masz prawie 2,7 W strat w postaci ciepła. Potrzebujesz przetwornicy impulsowej na 3.3v z dobrym filtrem na wyjściu. Na Alledrogo sprzedawał je gość pod nickiem darel, darltek czy jakoś tak.
-
coś takiego - http://allegro.pl/stabilizator-impulsowy-przetwornica-3a-wp1584-dc-i5082397179.html
-
Dobrze wiedziec. Potestuje poczatkowo na tym mb102 a pozniej zmienie.
-
richo zasilanie ważna sprawa bo nasze zabawki bez prundu nie zadziałają ;o)
Pisałem już ile nerwów straciłem z ESP zanim załapałem że winne jest zasilanie.
Na razie jadę na zasilaczu 5V + stabilizator liniowy 3,3V ale to za duże do puszki.
Poszukując rozwiązania do puszki przekopałem trochę internetu i wygląda na to że gotowca AC/DC 230V/3,3V 500mA trudno znaleźć.
Wygląda na to że jedyna droga to zasilacz przetwornica 230V/5V + stabilizator liniowy 3,3V.
Znalazłem dwa takie elementy myśląc o nieobeznanych z lutownicą:
- przetwornica AC/DC 230V/5V: http://allegro.pl/przetwornica-napiecia-230ac-na-5vdc-i5218113801.html
- stabilizator 5V/3,3V: http://www.ebay.com/itm/5Pcs-5V-to-3-3V-DC-DC-Step-Down-Power-Supply-Buck-Module-AMS1117-LDO-800MA-/281593584110?pt=LH_DefaultDomain_0&hash=item41904919ee
http://botland.com.pl/regulatory-napiecia/3380-modul-stablizatora-lf33-33-v-z-bezpiecznikiem-500-ma-mod-063v3.html
Zakupiłem i jak przetestuję to dam znać.
-
Myślę że nie musisz dawać stabilizatora z 5 na 3v3 gdyż jeśli poszukasz noty katalogowej scalaka który tym steruje (jest od spodu albo pod kondensatorem za cewką) to ma on dzielnik który ustala napięcie wyjścia. Ewentualnie jest tam dioda zenera. Jeśli zmienisz wartość zmieni się napięcie wyjściowe.
Pozdrawiam,
Patryk
ps. z drugiej strony nie wkładałbym tego do puszki gdyż zakładam że nie ma zabezpieczenia termicznego.
-
Myślę, że Patryk ma rację. Podejrzewam, że podobnie jak to: http://allegro.pl/show_item.php?item=5180447011,również ta przetwornica na 5V też będzie problematyczna. Pisałem o swoich próbach w tym poście: http://forum.lic.pl/plc-arduino-rasberry-esp8266-mikrokontrolery/esp8266/30/
Wygląda na to, że te chińczyki nie trzymają napięcia przy zmianach obciążenia nawet z LM1117 czy czymś podobnym.
Patryk, a może byś coś takiego rozebrał, przeprojektował, dorobił stabilizator implusowy jak zaproponowany w Twoim poście i puścił na rynek? Jeżeli będzie to nieduże i dobrze działało z ESP8266 to Klientów masz wbród ;-)
-
Richo, nie będę rozbierał. Nie chcę się denerwować. Zaprojektuję. A właściwie przeprojektuję bo i tak już zaprojektowałem taką do wykorzystania w wBox'ach. Jeśli tylko 1 x 1 x 0.7 cm nie będzie zbyt duże ;) Niestety jeśli ma być porządne to koszt produkcji przerazi miłośników chińczyków;)
Ale powinna przetrwać wieki. W wolnej chwili zrobię prototyp i wrzucę fotki.
Na razie chodzi w zakresie 9 - 24V i Vpp nie przekracza 20mV przy pełnym obciążeniu.
-
No to rozbudziłeś mój apetyt ;D
-
richo, Patriko, macie jakiś pomysł na dobre zasilanie ESP-ka ?. Mnie to trochę wkurza jak pracuje 3, 4 godziny ok a potem "zdycha". Wykonuje cały czas tą samą sekwencję i nagle cisza. Macie podobne objawy, czy to ja coś źle "kombinuje".
Ps
szukałem dzisiaj czegoś odpowiedniego u chińczyków ale nic ciekawego nie znalazłem.
To co jest na zdjęciu się nie nadaje ?
-
Jeśli jest to chińczyk spróbuj dodać na wyjściu kondensator niskoimpedancyjny minimum 470 uF + 100n + 10n tantal + jeśli jest to przetwornica a nie stabilizator to jeszcze transila 3.3v pomiędzy GND a VCC na wyjściu.
Jacek, z jakiego napięcia chcesz go zasilać?
Jeśli odpowiada Wam 12-24V DC to mogę przenieść jutro / pojutrze wieczorem przetwornicę którą zaprojektowaliśmy na nową płytkę i puścić mała produkcję (ze względu na wymiary minimum to jakieś 500 szt aby zwróciły się PCB i szablon do pasty) - byłaby gdzieś na koniec kwietnia. Jeśli ktoś ma dobry kontakt ze sklepem / etc. który by tym handlował to byłoby super - nie chciałbym zostać z kartonem przetwornic i wystawiać tego na allegro :)
-
richo, Patriko, macie jakiś pomysł na dobre zasilanie ESP-ka ?. Mnie to trochę wkurza jak pracuje 3, 4 godziny ok a potem "zdycha". Wykonuje cały czas tą samą sekwencję i nagle cisza. Macie podobne objawy, czy to ja coś źle "kombinuje".
Ps
szukałem dzisiaj czegoś odpowiedniego u chińczyków ale nic ciekawego nie znalazłem.
To co jest na zdjęciu się nie nadaje ?
Czy sprawdzasz node.heap() po wykonaniu pętli ? Czasami kod zżera na każdym okrążeniu trochę pamięci i wówczas system się zwykle zawiesza lub restartuje.
Jeżeli chodzi o ten moduł zasilania ze zdjęcia to do testów jest OK - u mnie chodził na nim ESP po kilka dni bez problemów pod warunkiem, że nie było problemu z kodem. Jako rozwiązanie docelowe jest jednak wg mnie za duży.
-
Jeśli jest to chińczyk spróbuj dodać na wyjściu kondensator niskoimpedancyjny minimum 470 uF + 100n + 10n tantal + jeśli jest to przetwornica a nie stabilizator to jeszcze transila 3.3v pomiędzy GND a VCC na wyjściu.
Jacek, z jakiego napięcia chcesz go zasilać?
Jeśli odpowiada Wam 12-24V DC to mogę przenieść jutro / pojutrze wieczorem przetwornicę którą zaprojektowaliśmy na nową płytkę i puścić mała produkcję (ze względu na wymiary minimum to jakieś 500 szt aby zwróciły się PCB i szablon do pasty) - byłaby gdzieś na koniec kwietnia. Jeśli ktoś ma dobry kontakt ze sklepem / etc. który by tym handlował to byłoby super - nie chciałbym zostać z kartonem przetwornic i wystawiać tego na allegro :)
Wg mnie 12V to jest max bo można jakieś w miarę sprawne przetworniki potem do 3,3V znaleźć. A nie możesz dorzucić do tego jeszcze jakiejś przetwornicy step-down do 3,3V np coś w tym stylu?: http://botland.com.pl/przetwornice-impulsowe/1427-przetwornica-step-up-step-down-s7v8f3-5v-1a.html
Jak ktoś nie jest mocny w elektronice to zawsze ma kłopot z dodatkowymi modułami.
Zobacz co się dzieje na forach światowych nt ESP8266 - wszyscy Ci ludzie potrzebują "na gwałt" dobrego zasilacza 3,3V które da stabilne max 400mA (100mA dla zapasu)
PS
Możesz umieścic jakiś rysunek tego zasilacza i wymiary na 12V?
-
Richo, abyśmy się dobrze zrozumieli - potrzebny jest zasilacz 12V - > 3.3v czy 230 -> 12V a może 230-> 3.3v?
Pozdrawiam,
Patryk
-
ESP potrzebuje 3,3 więc najlepiej 220-3,3V
-
richo, dobrze by chyba było jak by zasilacz miał dwa napięcia 3,3V i 5V. Elementy wykonawcze pracują w wielu przypadkach na 5V. Jak zrobicie taki zasilacz w rozsądnej cenie to chętnie kupię kilkanaście sztuk. Mnie osobiście by urządzał 230V -> 5V i 3,3V.
-
Czy sprawdzasz node.heap() po wykonaniu pętli ? Czasami kod zżera na każdym okrążeniu trochę pamięci i wówczas system się zwykle zawiesza lub restartuje.
Jeżeli chodzi o ten moduł zasilania ze zdjęcia to do testów jest OK - u mnie chodził na nim ESP po kilka dni bez problemów pod warunkiem, że nie było problemu z kodem. Jako rozwiązanie docelowe jest jednak wg mnie za duży.
richo, dzieki za informacje z wykorzystaniem node.heap(). Nie robiłem tego. Teraz sprawdzę.
sprawdzam: Wyciąłem bo tam są Twoje dane osobowe ;-)
zapomniałem - "Ochrona danych osobowych"
-
richo, dobrze by chyba było jak by zasilacz miał dwa napięcia 3,3V i 5V. Elementy wykonawcze pracują w wielu przypadkach na 5V. Jak zrobicie taki zasilacz w rozsądnej cenie to chętnie kupię kilkanaście sztuk. Mnie osobiście by urządzał 230V -> 5V i 3,3V.
Dobry pomysł z tym, że w takim przypadku trzeba też większej mocy - 800 do 1000 mA żeby zasilić też inne urządzenia.
Po głowie chodzi mi fajne rozwiązanie ale pochwalę się jak uda mi się zrobić prototyp ;-)
-
zapomniałem - "Ochrona danych osobowych"
chodziło o to że był Twój adres domowy , a takich informacji lepiej nie udostępniać ;-)
-
zapomniałem - "Ochrona danych osobowych"
chodziło o to że był Twój adres domowy , a takich informacji lepiej nie udostępniać ;-)
oczywiście, dobrze zrobiłeś.
-
A oto i przetwornica. Sztywniak się piekli że za duża. Na razie prototyp, daje 1.5A stabilnie więc jest zapas do zabawy z peryferiami.
Wejście 8 - 24V, wyjście 3.3-3.6V (można zrobić też na 5v zamieniając jeden rezystor), zabezpieczenie przeciwzwarciowe i termiczne (abyśmy nie spalili sobie domku).
Kto jest chętny? Oczywiście wersja produkcyjna będzie ładna ;)
-
10 proszę. Czy można płacić kartą? ;-)
(z tym że duża to oczywiście żart był)
Rezerwuje sobie możliwość zwiększenia zamówienia jak się chwilkę zastanowię jakie mam faktyczne potrzeby.
-
Sztywniak, wszystkim co nie jest gotówką ani bitcoinem. Urząd skarbowy zaraz będzie węszył ile jest tam rezystorów. (Rezystor to to czarne co ma 1x2mm i są trzy). Pani z urzędu musi to wiedzieć. I musi wiedzieć po co każdy z nich jest. I jak kupuje się 10 tys. sztuk (bo tyle jest na rolce) to jeszcze chce wiedzieć gdzie zgubiłem 722 sztuki. Wymieszały się z kurzem a nie chciałem kurzu lutować... Jeszcze ktoś by przyszedł z gotówką i by mi kasę fiskalną na głowę ściągnął ;)
A tak na poważnie jeśli testy niszczące i obciążeniowe pójdą ok to w pierwszej partii zrobimy 250 szt. więc do tej ilości nie ma problemu :)
-
Zmuszacie mnie żebym kupił lutownicę ;-)
-
Po co Ci lutownica? Pamiętaj żeby nie łapać za grot. Koleżanka (z tych wszystkowiedzących okularnic co odpowiada całką na pytanie jak się ma) na studiach złapała i ma piękne wspomnienie ;)
-
Kolega ma recycling i obiecał ze odkupi ode mnie moduły ale metale mają być oddzielone od tworzyw. Bez lutownicy ani rusz ;-)
-
A oto i przetwornica. Sztywniak się piekli że za duża. Na razie prototyp, daje 1.5A stabilnie więc jest zapas do zabawy z peryferiami.
Wejście 8 - 24V, wyjście 3.3-3.6V (można zrobić też na 5v zamieniając jeden rezystor), zabezpieczenie przeciwzwarciowe i termiczne (abyśmy nie spalili sobie domku).
Kto jest chętny? Oczywiście wersja produkcyjna będzie ładna ;)
Rozumiem, że cena za modulik jak na załączonym obrazku ;)
Wielkość idealna...
A nie udałoby się zejść z zasilaniem wejścia do 5V - możnaby wykorzystywać zasilacze USB i bez przeróbek mieć zarówno 3,3 oraz 5V !
-
Podobno bardzo dobre zasilanie 220/3,3V ale drogie i trochę duże:
http://www.voelkner.de/products/501633/Recom-International-AC-DC-Printnetzteil-RAC03-3.3SC-3.3-V-DC-0.9-A-3-W.html
-
Witam wszystkich Kolegów, jako że to pierwszy post.
Natknąłem się na ciekawą przetwornicę 230 na 5v myślę, że kwestia wymiany stabilizatora na 3,3V nie będzie żadnym problemem.
http://www.electrodragon.com/product/ac-85-265v-dc-5v-power-module/#prettyPhoto
Warto odwiedzić stronkę i pogmerać, ja tam znalazłem moduł gadaczki SD
Jeśli chodzi o prace z elektroniką to służę pomocą, choć wzrok już nie ten ;)
-
Witaj schakal. Miło Cię tu widzieć. Dzięki za cynk.
-
Jeszcze wersja 3,3v
http://www.dx.com/p/hzdz-switching-power-supply-module-green-3-3v-1a-271901#.VKGEkYAN8
i mała wersja cena za 5 szt http://www.aliexpress.com/store/product/ac-dc-power-supplies-110V-220V-265V-to-3-3V-0-6a-ac-dc-supply-power/1302754_32315023686.html
-
Kupiłem swego czasu coś podobnego na Allegro. Niestety nie trzyma stałego napięcia, które skacze od 2,7 do 3,3 V. Poniżej 3V niestety ESP8266 pada.
-
Można jeszcze spróbować zasilania bez transformatora, ale to na małe obciążenia (choć a z drugiej strony F&F stosuje w swoich modułach takie rozwiązanie i daje radę z przekaźnikami) lub jak w F... układ Link 304
Edit
Sąsiedzi zza Odry robią to tak http://www.mikrocontroller.net/attachment/240241/WLanRelais.jpg
-
znalazłem, to jest ten wątek : http://www.mikrocontroller.net/topic/349219
-
dokładnie tak jak piszesz, trafiłem jeszcze na jedną kopalnię wiedzy http://www.esp8266.com/index.php
Co do zasilania, to postaram się w weekend coś małego wyskrobać i dam znać
-
To fajnie, a ja może wreszcie znajdę czas ażeby wrzucić wszystkie moje linki nt ESP8266.
-
Pozwolę sobie odgrzebać wątek.
A czy ktoś może testował taki zestaw: Zasilacz USB (daje około 5V) plus AMS117 zmniejszający na 3,3? Jakie dajecie szanse? Zasilacze USB są dość tanie i dostępne. Do puszki się nie nadaje, ale do czujników i testów powinien być jak znalazł.
-
Panowie czegos nie rozumiem z tym zasilaniem
Kupilem na a...o http://allegro.pl/mini-modul-zasilacz-3-3v-500ma-stabilizowany-fv23-i5578666391.html (http://allegro.pl/mini-modul-zasilacz-3-3v-500ma-stabilizowany-fv23-i5578666391.html) takowy zasilacz 230-3.3V i esp nie dziala tzn swieci ale go nie wykrywa w sieci. Raz chyba go czy dwa razy na krotko zobaczylem.
Tutaj gosc http://techfreak.pl/bezprzewodowe-czujniki-temperatury-ds18b20-na-esp8266/ (http://techfreak.pl/bezprzewodowe-czujniki-temperatury-ds18b20-na-esp8266/) zasila esp z pastylki. Wiec co jest mocniejsze zasilacz czy pastylka?
Moim zdaniem to nie o zasilanie tu moze chodzic dokladnie tylko o jakies zaklocenia cholerne ktore powoduje ten chinski zasilacz.
Moze sie myle.
-
Od tego chińskiego cuda na pewno bateria cr2032 - przynajmniej ma większy peak prądowy. Nie dam sobie głowy urwać ale widziałem podobny szajs jako zasilacz STAŁOPRĄDOWY do leda z marketu więc chyba chińczyk robi wszystko na jedno kopyto. Sprawdzałeś oscyloskopem czy przy starcie napięcie nie siada?
-
Nie sprawdzalem bo nie posiadam:))
Co w takim razie mozna by zastosowac do zasilania esp zeby zamknac wszystko w obudowie takiej do zasilacza
np takiej http://allegro.pl/lispol-obudowa-z13a-czarna-na-zasilacz-i5643610304.html (http://allegro.pl/lispol-obudowa-z13a-czarna-na-zasilacz-i5643610304.html)
-
Moduł WiFi delikatnie mówiąc nie jest energooszczędny. Wg danych katalogowych podczas nadawania pobiera ponad 100mA. Bateria CR2032 ma stanowczo zbyt małą pojemność i zbyt dużą rezystancję wewnętrzną aby coś takiego zasilać. Do termometrów i innych tego typu czujników znacznie lepiej jest użyć modułów Bluetooth 4.0 Pobierają one ponad 1000 razy mniejszy niż WiFi. Ta wymieniona bateria CR2032 w takim rozwiązaniu wystarczy na kilka miesięcy ciągłej pracy przy wysyłaniu pomiarów co około 1 sek.
-
Modul bt nie wchodzi w gre ze wzgl na ograniczenia lacznosci
Mnie chodzi o jakis zasilacz 230-3.3V zeby zmiescil sie we wspomnianej obudowie
Testowalem taki chinski z a...o ale nie zdal egzaminu
Szukam cos podobnego co dalo by rade
-
Nie wiem co prawda co dokładnie zamierzasz zrobić ale Bluetooth Low Energy ma porównywalny zasięg z WiFi. Ze względu na małą moc nadajnika mniejsza jest jedynie odporność na ew. zakłócenia w paśmie 2.4GHz. W przypadku różnego rodzaju czujników dane przesyłane są zwykle dużo częściej niż są potrzebne. Wystarczy więc aby do odbiornika dotarł tylko 1 pakiet na 50 wysłanych aby mieć np. pomiar temperatury co 1 min.
-
Ja o rybie ty o grzybie
Nie chce zadnego BT chce wifi
Poztrzebuje tylko sprawdzonego mini zasilacza 3,3V ktory wejdzie do malutkiej obudowy albo w puszke elektryczna . To wszystko czego potrzebuje:))
-
Ja kiedy coś miało mieścić się do puszki to używałem zasilaczy 1W do diod LED np. https://www.maritex.com.pl/pl/zasilacze-stalopradowe-o-podwyzszonej-szczelnosci/PS-CC01-SLP01SS-i-16231-c-41243
Z małym obciążeniem mają na wyjściu napięcie około 4V.
W zasilaczach impulsowych napięcie czasem narasta powoli. Nie wszystkie urządzenia w takim przypadku wykonują poprawny reset.
Problemem może być też izolacja jeśli do ESP miałeś podłączone jakieś uziemione elementy.
-
Zasilanie ESP to sprawa nietrywialna ale i nie niemożliwa. Na pewno zrezygnowałbym z podróbek ESP których pełno na allegro i sięgnął po zapasy producenta: http://espressif.com/en/products/wroom/ (to co jest na allegro jako ESP bodajże 13 to też podróbka). Jest dużo bardziej stabilne i ma prawidłowe filtrowanie + układ resetu. A to właśnie jest problem wspomniany przez Pawła. Szum przy starcie uniemożliwia kalibrację toru RF (a jest przeprowadzana zawsze przy włączaniu).
Co do zasilania to mieliśmy ten problem w modułach switchBox i shutterBox (będzie za kilka dni na forum). Najnowsza przetwornica w shutterBoxie ma mniej niż 1x1x1cm ale jej stworzenie i doprowadzenie do stanu w którym nadaje się do produkcji zajęło 2 jak nie 3 miesiące (zespołowi kilku elektroników którzy siedzą w zawodzie od lat i mają full wypas laboratorium) i pochłonęło równowartość średniej klasy samochodu więc nie jest łatwo.
Najbliżej wydaje mi się coś takiego: http://pl.farnell.com/vigortronix/vtx-214-001-103/ac-dc-conv-fixed-1-o-p-1w-3-3v/dp/2401019.
Pozdrawiam!~
Patryk
-
To ja narazie chyba pozostane przy konwerterze UART
Dzieki za zainteresowanie
-
Mam dziwny problem z czujnikiem dht11 na esp
Najnizsza temperture jaka mi pokazal to 1st
Teraz np jest -2 a on i tak pokazuje 1
init.lua
-- thingspeak.com client with sensor DHT11,DHT22
-- Tested with Lua NodeMCU 0.9.6 (nodemcu_float_0.9.6-dev_20150704.bin)
-- Minimal period for data send to api.thingspeak.com is 15s
--
DEBUGPRINT = true -- true: enable debugg print, false: disable debugg print
--****************************************************************
WRITEKEY="xxxxxxxxxxxx" -- set your thingspeak.com key
--****************************************************************
ssid="xxxxxxxxxxxxx" -- your router SSID
pass="xxxxxxxxxx" -- your router password
--****************************************************************
pin=4 -- number of pin (GPIO0), where is DHTXX connected
prs=60 -- period reading and sending sensors [s]
wifi.setmode(wifi.STATION)
wifi.sta.config(ssid,pass,1)
function debugprint(...)
if DEBUGPRINT then
print(...)
end
end
--Read DHTXX sensor
function ReadDHT()
status,temp,humi,temp_decimial,humi_decimial = dht.read(pin)
if( status == dht.OK ) then
debugprint("DHT Temperature:"..temp..";".."Humidity:"..humi)
elseif( status == dht.ERROR_CHECKSUM ) then
debugprint( "DHT Checksum error." );
elseif( status == dht.ERROR_TIMEOUT ) then
debugprint( "DHT Time out." );
end
end
-- send data to https://api.thingspeak.com
function SendTS()
conn = net.createConnection(net.TCP, 0)
conn:connect(80,'api.thingspeak.com') -- This row is good, but only for newer firmware
--conn:connect(80,'184.106.153.149') -- This is worse, but it also works well with the older firmware.
conn:on("connection",
function(conn) debugprint("Connection!")
conn:send('GET /update?key='..WRITEKEY..
'&headers=false'..
'&field2='..humi..
'&field3='..temp..
' HTTP/1.1\r\n'..
'Host: api.thingspeak.com\r\nAccept: */*\r\nUser-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.1)\r\n\r\n')
end)
conn:on("sent",
function(conn)
debugprint("Sent!")
if DEBUGPRINT == false
then
conn:close()
end
end)
conn:on("receive",
function(conn, payload)
debugprint("Receive!")
debugprint(payload)
conn:close()
end)
conn:on("disconnection",
function(conn)
debugprint("Disconnection!")
end)
end
-- first reading sensors
ReadDHT()
SendTS()
-- Periodic reading of the sensor
tmr.alarm(0,prs*1000,1,
function()
if wifi.sta.getip()==nil
then
print("IP refresh")
print("!!!!!!!!!!!!!!")
node.restart()
end
ReadDHT()
SendTS()
end)
dht11.lua
-- ***************************************************************************
-- DHT11 module for ESP8266 with nodeMCU
--
-- Written by Javier Yanez
-- but based on a script of Pigs Fly from ESP8266.com forum
--
-- MIT license, http://opensource.org/licenses/MIT
-- ***************************************************************************
local moduleName = ...
local M = {}
_G[moduleName] = M
local humidity
local temperature
local checksum
local checksumTest
local checko1
local checko2
function M.read(pin)
humidity = 0
temperature = 0
checksum = 0
checko1=0
checko2=0
-- Use Markus Gritsch trick to speed up read/write on GPIO
gpio_read = gpio.read
gpio_write = gpio.write
bitStream = {}
for j = 1, 40, 1 do
bitStream[j] = 0
end
bitlength = 0
-- Step 1: send out start signal to DHT11
gpio.mode(pin, gpio.OUTPUT)
gpio.write(pin, gpio.HIGH)
tmr.delay(100)
gpio.write(pin, gpio.LOW)
tmr.delay(20000)
gpio.write(pin, gpio.HIGH)
gpio.mode(pin, gpio.INPUT)
-- Step 2: DHT11 send response signal
-- bus will always let up eventually, don't bother with timeout
while (gpio_read(pin) == 0 ) do end
c=0
while (gpio_read(pin) == 1 and c < 100) do c = c + 1 end
-- bus will always let up eventually, don't bother with timeout
while (gpio_read(pin) == 0 ) do end
c=0
while (gpio_read(pin) == 1 and c < 100) do c = c + 1 end
-- Step 3: DHT11 send data
for j = 1, 40, 1 do
while (gpio_read(pin) == 1 and bitlength < 10 ) do
bitlength = bitlength + 1
end
bitStream[j] = bitlength
bitlength = 0
-- bus will always let up eventually, don't bother with timeout
while (gpio_read(pin) == 0) do end
end
--DHT data acquired, process.
for i = 1, 8, 1 do
if(bitStream[i+0]>2)then
humidity=humidity+2^(8-i)
end
if(bitStream[i+8]>2)then
checko1=checko1+2^(8-i)
end
if(bitStream[i+16]>2)then
temperature=temperature+2^(8-i)
end
if(bitStream[i+24]>2)then
checko2=checko2+2^(8-i)
end
if (bitStream[i+32]>2)then
checksum=checksum+2^(8-i)
end
end
checksumTest=(humidity+checko1+temperature+checko2)%256
-- convert to negative format
--if temperature > 0x8000 then temperature = -(temperature - 0x8000)
--end
if checksum ~= checksumTest then
humidity = -1
end
end
function M.getTemperature()
return temperature
end
function M.getHumidity()
return humidity
end
return M
-
Odpowiem sam sobie:)
Zapomnialem ze dht 11 ma zakres 0-50:)
Podmienilem na dht22 i jest OK
Sorry za zamieszanie