jankop
Vytvořené odpovědi
-
AutorPříspěvky
-
jankopÚčastník
Jestli ti dobře rozumím, tak se snažíš dostat desetiny stupně ze senzoru DHT11, který měří s rozlišením 1 stupeň. To se ti nejspíš nepodaří. Tak se budeš muset s tou nulou za desetinou čárkou smířit nebo ji tam nedávat.
jankopÚčastníkCo třeba
//read temperature in Celsius float t = dht.readTemperature();
jankopÚčastníkNevěš hlavu, to se mi povedlo mnohokrát. Jen pracuji v Lue a ne s Arduinem. Primárně vyzkoušej připojit GPIO0 na zem a současně dej reset. I když po resetu uvolníš GPIO0, tak by nic blikat už nemělo a bootloader by měl čekat na data. Já bych pak modul přemazal „prázdným souborem“ a bylo by. Teď se objevil na esp8266.com nový jednoduchý windows flasher, který dovede jednoduše paměť smazat, ale myslím, že má ještě nějaké nedostatky.
Nevím, jaký máš modul, ale můžeš ho zkusit přehrát třeba hodinama z mého webu, najdeš tam vše potřebné. Ta Lua by měla jít pak přeplácnout sketchem bez problémů.
jankopÚčastníkPříčin může být mnoho. Přiznám se, že jediný senzor DHT22, který jsem měl, jsem hodil ze vzteku do koše. Jednoznačně mohu říct, že DHT11 a DHT22 jsou vysloveně nevhodné pro napájecí napětí 3,3V. Proto mě překvapuje, jak jsou tyhle obvody oblíbené. Je pravda, DHT11 se dá pořídit za 20Kč, ale když si koupím HTU21, tak stojí zhruba stejně jak DHT22 a je to jiná liga. Pokud musím použít DHT, pak jedině s napájením 5V. Při 3,3v senzory někdy nefungují a nebo získané hodnoty skáčou tak, že jsou nepoužitelné.
Chtěl bych ale přidat pár zásad, které jsou často příčinou problémů s esp8266. Na webu je mraky „schémat“, smutné je, že naprostá většina je jich naprosto špatná. Je vidět, že je tvoří a především obkreslují lidé, kteří neznají základy práce s elektronickými obvody, natož s procesory. Všichni programují arduino a malují fritz, ale použít blokovací kondenzátor nebo pullup rezistor považují za zbytečnost.
Tak pár zásad a je fuk jestli programujete esp8266 v Lua nebo nějaký WiFi Shield.1. ESP8266 potřebuje slušný zdroj. Na jeho provoz nestačí zdroj nějakého USB/RS232 převodníku. Ano, naprogramovat tak jde, ale zaručuji, že v provozu narazíte na naprosto fatální problémy.
2. Jeden rezistor stojí cca 1Kč a blokovací kondenzátor řádově stejně. Používejte je. Na kontaktním poli vám třeba nahradí drátové propojky a věřte, může to mít naprosto zásadní vliv na stabilitu vašeho zařízení. Rezistory plní dvě role. Tou první je udržet vstup na požadované logické úrovni bez ohledu na vnější vlivy a tou druhou je omezení proudu výstupu. Někdo může filozofovat o integrovaných rezistorech, ale příliš na to nedejte. Mezi nejhorší prohřešky je pak naprosto běžné připojování IO vývodů obvodu natvrdo k napájecímu napětí nebo zemi.
Když se vrátím k tomu senzoru. Protože je DHT11 (opravdu nezaslouženě) nesmírně oblíben, tak jsem s ním napsal webový vlhkoměr. Testoval jsem ho jen s DHT11 a ESP8266-1, ale myslím, že by měl beze změny fungovat i s DHT22.
Tady je.jankopÚčastníkJeden kontakt se letuje na stříbrný polep, tam stačí kalafuna a druhý kontakt se pájí na plech, tam stačí taky.
jankopÚčastníkKdyž chci přeložit, co mi předtím šlo, tak to holt nejde.
Varování: platform.txt z jádra 'ESP8266 Modules' obsahuje zastaralé recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}", automaticky skonvertované do recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}". Zvažte upgrade tohoto jádra. WARNING: Category '' in library EEPROM is not valid. Setting to 'Uncategorized' WARNING: Category '' in library ESP8266httpUpdate is not valid. Setting to 'Uncategorized' WARNING: Category '' in library Hash is not valid. Setting to 'Uncategorized' WARNING: Category '' in library SPI is not valid. Setting to 'Uncategorized' WARNING: Category '' in library Ticker is not valid. Setting to 'Uncategorized' WARNING: Category '' in library Wire is not valid. Setting to 'Uncategorized' C:\Users\Pavel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0\libraries\ESP8266WebServer\examples\AdvancedWebServer\AdvancedWebServer.ino: In function 'void setup()': AdvancedWebServer:117: error: 'drawGraph' was not declared in this scope server.on ( "/test.svg", drawGraph ); ^ exit status 1 'drawGraph' was not declared in this scope Nalezena neplatná knihovna v C:\Users\Pavel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0\libraries\esp8266: C:\Users\Pavel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0\libraries\esp8266 Nalezena neplatná knihovna v C:\Users\Pavel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0\libraries\esp8266: C:\Users\Pavel\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\1.6.5-947-g39819f0\libraries\esp8266
jankopÚčastníkNo tak se zdá, že ten export bináru půjde také. Sice to píše, že funkce není podporována, ale druhým dechem to napíše, kam to BIN uložilo. A podařilo se mi praktickým programem ESP8266Flasher.exe binár nahrát do modulu a spustit.
jankopÚčastníkTož závěr mého experimentu zní:“Pokud se nechcete dostat s ESP8266/Arduino do problémů, tak zůstaňte u Arduino IDE 1.6.5. Verze 1.6.6. správně se stávajícím doplňkem pro ESP8266 nepracuje!“
jankopÚčastníkZrovna verzi 1.6.6. instaluji, asi máš pravdu, při svém prvním pokusu jsem možná udělal nějakou chybu.
Ale narazil jsem na problém v tom, že nedovedu nastavit piny pro I2C. Potřeboval bych připojit čidla, ale nedokážu definovat SCL a SDA.jankopÚčastníkVerze 1.6.6. podle mě nefunguje s ESP8266. Alespoň můj první pokus neprošel.
jankopÚčastníkMimochodem Aleši, na svém webu píšeš, že modul ESP826-01 má 1MB FLASH. Není to pravda, ten běžný, který máš na fotce má pouze 512KB. Jako novinka se teď presentuje provedení ESP8266-01E s 1MB, ale ten vypadá jinak.
jankopÚčastníkNo já věřím, že export BIN v 1.6.6. funguje. Ale já mluvím o verzi 1.6.5. ve spojení s modulem ESP8266.
jankopÚčastníkProveď reset modulu s GPIO připojeným na GND. Pak z IDE normálně nahraj program.
jankopÚčastníkS ESP8266 mám zkušeností dost. S hardwarem problémy nemám, horší to někdy bývá s vývojovým prostředím. Před pár dny jsem s překvapením zjistil, že mimo Lua a další systémy, včetně embeded Espruino, existuje také embeded Arduino. Protože Espruino je ještě v plenkách a ne moc stabilní, tak jsem zkusil embeded Arduino. Je třeba použít IDE 1.6.5. a dohrát k němu board ESP8266. V životě jsem Arduino neviděl, ale počátky jsem zvládl celkem bez problémů. Nahrál jsem nějaký demoserver a on perfektně funguje, stejně jako BLINK s LED.
K vlastnímu modulu. Zásada číslo jedna – kvalitní napájecí zdroj. Web se hemží návody, jak napájet modul z převodníku USB/Serial, ale to je fatální chyba a jeden z častých problémů.
Druhou věcí je nezbytnost ošetřit důležité vstupy. V případě ESP8266-01 musí být GPIO0, GPIO2, CH_PD, RST připojeny na Vcc, nejlépe přes rezistory cca 10k. V případě některých vyšších řad modulů je třeba ještě zapojit GPIO15 přes rezistor na GND. Velice častou chybou bývá také skutečnost, že uživatel zapojí modul přes převodník, správně překříží Tx/Rx, ale zapomene propojit zem převodníku se zemí modulu. Nepodceňujte tyto triviální chyby, jsou velmi časté a chování zařízení je nevyzpytatelné. Nemám zkušenosti s Arduino IDE a proto mě nenapadlo instalovat nějaký programátor. Prostě jsem uvedl ESP8266 do programovacího módu přes sériovou linku a program jsem přes IDE uploadoval. Sériový bootloader pro ESP8266-01 vyvolám tak, že provedu RESET a v okamžiku resetu musí být GPI02 = HIGH a GPIO0=LOW. Pak již stačí přes Arduino IDE nahrát program do modulu.
Na GITHUB je tento mnou vyzkoušený postup instalace IDE pro ESP8266 embeded Arduino. Nic víc není myslím třeba. Když jsem to zvládl já, tak to musí zvládnout každej.Install Arduino 1.6.5 from the Arduino website.
Start Arduino and open Preferences window.
Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas.
Open Boards Manager from Tools > Board menu and install esp8266 platform (and don’t forget to select your ESP8266 board from Tools > Board menu after installation).A teď mám dotaz já. Demo server se zkompiloval a nahrál do ESP8266 a moc pěkně fungoval, tak dobře, že jsem byl překvapen. Proti ekvivalentnímu serveru v Lua je mnohem stabilnější s rychlejší reakcí. Jen vypisovaná potřeba paměti byla značná, ale předpokládám, že hlavní podíl mají knihovny. Ovšem zaujala mě možnost exportovat program z IDE v binární podobě. To považuji za potřebné rozšíření. Ale IDE píše, že tato funkce není pro ESP8266 podporována. Všiml jsem si, že IDE si ukládá do TEMP soubor něco.cpp.bin, tak jsem si myslel, že to je požadovaný binární soubor. Když jsem ho ovšem zkusil flashovacím programem nahrát do modulu, tak program nefungoval. Víte o tom něco prosím?
-
AutorPříspěvky