Firmware 1m za esp 01. Mikrokrmilnik ESP8266: povezava in konfiguracija. Pretvornik USB v TTL s priključkom DTR

V procesu preučevanja in oblikovanja vse bolj zapletenih projektov pride čas, ko se pojavi potreba in želja, da se naučimo delati s tako razširjeno vrsto komunikacije, kot je WiFi. Ker vam lahko ta vrsta komunikacije omogoči udobno ustvarjanje enotnega omrežja za naprave pametnega doma in upravljanje z njimi, npr. mobilni telefon, tablico ali računalnik, torej ustvarite resnično pametna hiša, kar vas bo stalo desetkrat cenejše od nakupa že pripravljenih rešitev v trgovini. Uporaba WiFi seveda ni omejena na to in primerov uporabe tovrstne komunikacije je toliko, da jih nima smisla naštevati, in če ste pristali na tej strani, pomeni, da morate že uporabljate WiFi iz nekega razloga, le ugotoviti morate, kako pravilno delati z njim.

Razvrstili ga bomo glede na najcenejše in najbolj priljubljene WiFi modul ESP8266-01. WiFi modul ESP8266-01 lahko kupite na naši spletni strani.

Ena od glavnih prednosti takšnega modula je prisotnost pomnilnika in lastnega mikrokrmilnika na plošči, ki omogoča samostojno delo z nalaganjem skice neposredno v sam modul.

Pravzaprav je modifikacij WiFi modula ESP8266 precej in jih tukaj ne bomo navajali; ko se naučite delati z enim, lahko enostavno začnete delati z drugimi. Želel bi takoj opozoriti, da se delo z WiFi morda zdi precej težka naloga, in če imate v svoji prtljagi malo dokončanih projektov, je bolje, da se zaenkrat odpoveste komunikaciji WiFi in v svojih projektih uporabite radijsko komunikacijo, s katero delate je veliko lažje razumeti. Za delo z moduli WiFi so ustvarjene celotne skupnosti in tematski forumi, kar še enkrat dokazuje, kako težko je večini ljudi takoj razumeti to vrsto komunikacije in po ponovnem branju vseh informacij večina ljudi preprosto obupa. Najverjetneje ne bom zmogla vsega pomembna informacija sodi v okvir samega tega člena in v tem nima smisla, sicer se bo izkazalo za še eno zmedo. Poskušal bom slediti poti strogega zaporedja najpomembnejših točk, da boste lahko začeli razumeti načelo delovanja te vrste komunikacije in nato preprosto razvijali lastne sposobnosti v tej smeri.

Torej, začnimo in najprej poglejmo nožice modula WiFi ESP8266-01.

VCC- napajanje modula od 3V do 3,6V

GND- Zemlja.

RST- Ponastavi izhod, odgovoren za ponovni zagon modula.

CH_PD- »chip power-down«, ko se nanj napaja, se aktivira delovanje modula.

TX- prenos podatkov (UART vmesnik)

RX- sprejem podatkov (UART vmesnik)

GPIO0

GPIO2- V/I vrata za splošno uporabo

Zatiči GPIO0 in GPIO2 so popolnoma enaki digitalni zatiči, s katerimi delamo na ploščah Arduino za povezavo z razni senzorji, uporabljajo pa se v primeru samostojnega delovanja na notranjem WiFi mikrokrmilniku modula ESP8266-01.

Za zanesljivo napajanje modula ESP8266-01 uporabite zunanji stabilizirani napajalnik 3,3 V in bolje je, da ne poskušate prevzeti napajanja iz vaše plošče Arduino, saj modul porablja tok do 215 mA in to se lahko slabo konča za vaš razvojna plošča. Kje dobiti stabiliziran 3,3V napajalnik upam da ti ni problem, sicer pa je očitno še prezgodaj, da se ukvarjaš s tem modulom. Na primer, rad uporabljam ta napajalni modul YWRobot 3,3 V in 5,0 V za hitro sestavljanje vezij na miznih ploščah, kar vam omogoča, da hitro dobite stabilizirano napetost 3,3 V ali 5 V na ustreznih napajalnih poteh mizne plošče.

Priključitev plusa (+) iz našega 3,3 V napajalnika na pin VCC modul ESP8266-01 in minus (-) pripeljite napajanje na izhod GND. V tem stanju se na modulu prižge rdeča LED lučka, ki nam signalizira, da je napajanje pravilno priključeno. Za aktiviranje modula je potrebno priklopiti tudi plus (+) napajalnik z izhodom CH_PD modul ESP8266-01 in je priporočljivo, da to storite neposredno prek upora 10 kOhm. Sedaj, ko vklopimo napajanje, bi morala zasvetiti rdeča LED na modulu in modra LED nekajkrat hitro utripati. Če se vam to zgodi, potem je vse v redu, vse ste pravilno povezali in vaš modul deluje. V nasprotnem primeru ponovno preverite povezavo ali zamenjajte modul, saj najverjetneje ne deluje.

Kar daj. Za delo z modulom ESP8266 WiFi potrebujemo adapter USB-UART. Obstajajo različni adapterji, na primer: FT232RL, CP2102, PL2303. Predpostavili pa bomo, da nimate takih adapterjev, in uporabili bomo ploščo Arduino kot adapter USB-UART. Za to bom uporabil ploščo Arduino NANO, lahko pa uporabite katero koli drugo, ki vam je na voljo. Povezava na kateri koli plošči je enaka. Povezavo izvedemo po naslednji shemi.

Poglejmo, kaj smo naredili tukaj. Takoj upoštevajte, da smo zatiče na plošči Arduino povezali z mostičkom RST in GND. Ta manipulacija onemogoči mikrokrmilnik in nam omogoči, da iz naše plošče Arduino naredimo pravi adapter USB-UART.

Ker modul ESP8266-01 WiFi napajamo iz ločenega zunanjega napajalnika, ne pozabite, da moramo v naših projektih vedno povezati ozemljitev vseh napajalnikov. Zato povezujemo izhod GND Arduino plošče z ozemljitvijo (-) naš zunanji napajalnik 3,3 V, zasnovan za napajanje modula ESP8266-01.

Zaključek TX priključite Arduino ploščo na pin TX modul ESP8266-01. Ta linija bo prenašala podatke iz modula WiFi na ploščo Arduino. Vsakdo, ki pozna vmesnik UART, se lahko vpraša: "Ampak kako je to mogoče? Povsod so učili, da se mora TX povezati z RX. TX oddaja informacije, RX pa sprejema." In imeli boste prav. Tako je, TX je vedno povezan z RX, a v primeru, ko naredimo UART adapter iz Arduina, moramo naprave povezati direktno. Upoštevajte to izjemo od pravila.

Linija RX Prav tako povežemo vašo ploščo Arduino neposredno na linijo RX modul ESP8266-01. Ta linija bo prenašala informacije s plošče Arduino na WiFi kartica modul. Toda to povezavo naredimo prek tako imenovanega delilnika napetosti, sestavljenega iz dveh uporov z nazivnimi vrednostmi 1 kOhm in 2 kOhm. Napetost na tej liniji moramo zmanjšati z dvema uporoma (delilnik napetosti), saj Arduino plošča oddaja logični signal z napetostjo 5V, WiFi modul pa deluje z napetostjo 3,3V. Za pretvorbo logičnega signala bi lahko uporabili posebno ploščo za pretvornik logičnih nivojev, kar bi bilo seveda pravilneje, vendar spet predpostavimo, da je nimate in smo morali ubrati enostavnejšo pot in to narediti z napetostni delilnik.

Zdaj smo povezali vse, kar je potrebno za nadaljnje delo, vendar imamo še 3 neuporabljene pine ( GPIO0, GPIO2 in RST) vklopljeno WiFi modul ESP8266-01. Za stabilen WiFi deluje modula moramo te preostale neuporabljene terminale povleči na plus (+) napajalni vodi modula prek uporov 10 kOhm.

To nas bo rešilo pred različnimi motnjami (motnjami) in omogočilo stabilno delovanje modula. Bolje je, da to storite takoj. V nasprotnem primeru ne bodite presenečeni, da je vaš modul nenehno preobremenjen, proizvaja nerazumljive informacije ali sploh noče delovati. Uporaba vlečnih uporov na neuporabljenih zatičih mikrokontrolerja bi morala biti pravilo, če želite stabilno delovanje v svojih projektih.

In spet preverimo delovanje modula WiFi ESP8266-01. Vklopite napajanje in vidite, da rdeča LED zasveti in modra LED nekajkrat utripne. Če se vse zgodi tako, potem super, gremo naprej. Sicer pa preverimo pravilnost povezav, kakor tudi kvaliteto vseh kontaktov. Morda je le trivialna situacija, ko ste desetkrat vse preverili in se prepričali, da je vse pravilno priključeno, ko pa modul prižgete, vidite, da se modra LED dioda ne obnaša ustrezno, stalno sveti, stalno utripa, ali se sploh ne odziva na nič. To je lahko posledica slabega stika na neki liniji. Na primer, pri sestavljanju vezja na testni plošči eden od uporov ne sedi tesno na svojem mestu in to povzroči motnje. Preverite kakovost povezav. Modul je zelo občutljiv. Ne zanemarjajte tega. To je pogost razlog za nestabilno delovanje.

Na splošno smo končali s povezavo. Zdaj moramo pripraviti program Arduino IDE za delo z WiFi modulom ESP8266-01. Za to moramo prenesti in namestiti v Arduino IDE potreben arhiv s knjižnicami, primeri in ploščami ESP, kar nam bo pozneje omogočilo nalaganje skic neposredno na mikrokrmilnik modula ESP8266-01, spreminjanje vdelane programske opreme itd. Za namene tega članka teh nastavitev najverjetneje ne bomo potrebovali, vendar se mi zdi, da bo potem, ko smo ugotovili, kako povezati modul, postopek pravilen, če takoj prenesemo vse, kar je potrebno za delo z Arduino IDE . Tukaj je načeloma vse preprosto.

Zaženite program Arduino IDE in pojdite v meni "Datoteka" - "Nastavitve"

V oknu, ki se prikaže, v zgornjem polju napišemo "esp8266". Posledično bomo imeli v oknu samo zahtevano vdelano programsko opremo. Ko kliknete vdelano programsko opremo, se prikaže gumb "Namestitev". Kliknite na gumb "Namestitev" in počakajte, da se vse namesti. Arhiv je precej velik, približno 150 megabajtov, tako da boste morali počakati.

Po končani namestitvi. Ponovno zaženemo Arduino IDE in vidimo, kako so se pojavile nove plošče ESP v meniju »Orodja« - »Plošče«. To je vse. Z Nastavitev Arduino Končali smo z IDE. Teh nastavitev zaenkrat ne potrebujemo, a pri prihodnjem delu brez njih ne bomo mogli.

Vse imamo povezano in pripravljeno, zdaj lahko začnemo razumeti kontrole. Pravzaprav bomo zdaj še naprej preverjali in konfigurirali modul z ukazi AT in brez njega ne moremo. WiFi moduli so implementirani tako, da vsa komunikacija z njimi poteka s pomočjo tako imenovanih AT ukazov, ki so vgrajeni v strojno programsko opremo modula. Tukaj ne bomo naštevali vseh ukazov AT, veliko jih je in če želite vse natančno preučiti, jih zlahka najdete na internetu. In zdaj bomo uporabili le najnujnejše za začetek.

In tako povežemo našo ploščo Arduino prek USB kabel na računalnik. A zunanji vir hrana, ki nahrani WiFi modul ESP8266-01 Ni ga še potrebno vklopiti. Zaženimo Arduino program IDE, v meniju »Orodja« izberite našo ploščo Arduino, v mojem primeru je to Arduino NANO, in izberite svojo. Prav tako ne pozabite izbrati vrat, na katera je povezan naš Arduino. Upam, da vse to razumete in veste, kako to storiti.

Spremljanje odprtih vrat "Orodja" - "Nadzor vrat". Izbira hitrosti vrat 74880 (pri tej hitrosti se modul zažene) in na seznamu na levi izberite “NL & CR”.

Zdaj priključimo zunanji vir napajanja, ki napaja naš WiFi modul. Po tem bi morali v monitorju vrat videti približno naslednje informacije.

Tukaj vidimo nekaj informacij o našem WiFi modulu (hitrost, količina pomnilnika na krovu itd.). Prejete informacije se lahko razlikujejo glede na različico Vdelana programska oprema WiFi modul. Ne osredotočajmo se na to. Pomembno je nekaj drugega. Spodaj vidimo nabor nesmiselnih znakov, kar pomeni, da je hitrost vrat (74880 baud), ki smo jo nastavili, primerna samo za bootstrap modul, da te informacije vidi normalno, vendar ta hitrost ni primerna za normalno komunikacijo z modulom WiFi.

Za izbiro pravilne hitrosti vrat bomo preprosto spremenili hitrost vrat in v vrata poslali simbole (polje na vrhu in gumb za pošiljanje) AT dokler ne dobimo odgovora v redu. Če poskušate zdaj poslati znake AT do vrat s hitrostjo 74880, boste v odgovor prejeli še enega ali dva nesmiselna znaka.

Poskusite takoj nastaviti hitrost na 115200 baudov in poslati ukaz AT. Najpogosteje se moduli utripajo s to hitrostjo.

To je slika, ki bi jo morali videti na monitorju vrat. Če v odgovor še vedno prejmete nerazumljiv nabor znakov, zmanjšajte hitrost in znova pošljite AT ukaze, dokler se odgovor ne vrne v redu. Če ste preizkusili vse hitrosti in niste dobili pravilnega odgovora, potem nimate sreče in se modul utripa z vdelano programsko opremo z nestandardno hitrostjo. Potem ostane le, da modul znova zaženete z običajno vdelano programsko opremo, vendar je to tema za ločen članek.

Upam, da je vse v redu in da ste izbrali pravilno hitrost. Mimogrede, če poskusite izklopiti in znova vklopiti modul WiFi, potem ko ste izbrali pravilno hitrost, boste namesto istih začetnih informacij, ki so bile pravilno prikazane pri hitrosti 74880 baudov, nasprotno, videli boste zmešan nabor znakov, vendar boste na koncu videli besedo "pripravljen". Imamo pa možnost, da si te začetne informacije ogledamo v običajni obliki s pravilno hitrostjo; za to moramo programsko znova zagnati modul z ukazom AT AT+RST.

Če želite izvedeti različico vdelane programske opreme vašega WiFi modula ESP8266-01, morate poslati ukaz monitorju vrat AT+GMR in v odgovor boste prejeli približno naslednje podatke:

WiFi modul ESP8266-01 lahko deluje v načinu dostopne točke in odjemalca. Če želite modulu omogočiti delovanje v vseh načinih hkrati, pošljite ukaz nadzorniku vrat AT+CWMODE=3 in kot odgovor bi morali prejeti v redu.

Ekipa AT+CWLAP vam bo omogočil ogled vseh dostopnih točk WiFi, ki jih vidite v ta trenutek vaš modul. Moj modul, na primer, trenutno vidi samo tri dostopne točke WiFi v svojem območju pokritosti. Odgovor bi moral biti nekaj takega:

Na primer, poznamo geslo za tretjo dostopno točko in za povezavo z njo izvedemo ukaz AT+CWJAP="ime","geslo", v mojem primeru ta ukaz izgleda takole AT+CWJAP="dsl_unlim_512_home","11111111", na kar dobimo uspešen odgovor:

Parametri ukazov se zapišejo v flash pomnilnik WiFi modula ESP8266-01 in če modul izklopimo in ponovno vklopimo, se samodejno poveže s to dostopno točko. Poglejte, slučajno ne dovolite presledka v ukazu, sicer boste prejeli odgovor NAPAKA. Upoštevajte, da je v najnovejših različicah vdelane programske opreme priporočljiva uporaba ukaza AT+CWJAP_CUR, to pomeni, da bo ukaz videti takole AT+CWJAP_CUR="ime","geslo".Če nenadoma pozabimo, na katero dostopno točko je povezan naš modul, moramo poslati ukaz AT+CWJAP? oz AT+CWJAP_CUR? in kot odgovor bomo prejeli dostopno točko, na katero je trenutno povezan WiFi modul.

S povezavo in začetna nastavitev WiFi modul ESP8266-01 smo ugotovili. Modul deluje in je pripravljen za izvedbo vaših prihodnjih projektov. Vseh možnih primerov dela s tem modulom preprosto ni mogoče analizirati v okviru enega članka in s tem se bomo ukvarjali v naslednjih člankih. In za tiste, ki niso dobro seznanjeni s programiranjem, vendar resnično želijo hitro začeti upravljati svoje projekte z uporabo WiFi-ja, priporočam, da jim predstavite načrtovalca projektov RemoteXY WiFi. To spletno mesto vam bo pomagalo enostavno ustvariti nadzorni vmesnik za vaš mobilni telefon ali tablico in ga uporabiti za nadzor vaše naprave, na katero povežete WiFi modul.

Moule esp-01
Shema pravilno povezavo esp-01 modul za programiranje in firmware.

Modul se utripa s preklopom v način programiranja, za to držite tipko FLASH, nato pa, ne da bi jo spustili, na kratko pritisnite tipko RESET in spustite FLASH.
Modul se preklopi v način programiranja.
V terminalu v tem trenutku lahko vidite

ets 8. januar 2013, prvi vzrok: 2, način zagona: (1.6)
način zagona:(1,6) - ponovni zagon prek RESET v način programiranja
boot mode:(1,7) - električni ponovni zagon v programski način - kar ni povsem pravilno.

Za firmware bom uporabil program NODEMCU Firmware PROGRAMER
(Arhiv s programom bo priložen temi)
Razpakirajte arhiv in v mojem primeru zaženite 32-bitno različico programa\Win32\Release\ESP8266Flasher.exe
Konfiguriramo ga za modul, v mojem primeru je to 1 megabajt bliskovnega pomnilnika ali 8 megabitov.




Prvi korak je brisanje pomnilnika s prazno datoteko velikosti 1 MB.
To je neobvezen element. Lahko preskočite brisanje in greste na vdelano programsko opremo.
Tisti, ki imajo več ali manj pomnilnika, potrebujejo prazno datoteko ustrezne velikosti.
Nato določimo, katera strojna programska oprema je potrebna!
Lahko se uporablja kot pripravljena firmware na NODEMCU in od oblikovalca za sestavljanje z moduli, ki jih potrebujete.
Na primer, eden od starih dokazanih NODEMCU

Konstruktor wifi-iot.com/
Konstruktor nodemcu-build.com/
ali prenesite najnovejšo

Težave z vdelano programsko opremo
če Modul esp8266 ne utripa, preverite vlečenje in pravilno povezavo z GND GPIO0. In tudi, ali sta RX TX pomešana.
V terminalu lahko preverite, ali je prikazan način zagona:(1,6) ali način zagona:(1,7).

če po neuspešna firmware modul ne deluje, poskusite izbrisati pomnilnik s prazno datoteko obrazca velikosti vašega pomnilnika.

če Modul po uspešni vdelani programski opremi ne deluje in na vrata pošilja neskončne smeti (lučka za prenos podatkov lahko utripa), to se zgodi pri utripanju najnovejših gradenj Nodemcu, potem boste morali datoteko dodatno utripati v pomnilniško območje, odvisno od pomnilniški čip.
Podatki o pomnilniku so bili povzeti s spletne strani nodemcu.
0x7c000 za 512 kB, moduli, kot je ESP-01,03,07
0xfc000 za 1 MB, module, kot sta ESP8285, PSF-A85, pa tudi nekatere različice esp-01,01s
0x1fc000 za 2 MB
0x3fc000 za 4 MB, tip modula ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini itd.

Če ne gre drugače, napišite...

Dodal bom uradno skupino proizvajalca opreme

Wi-Fi modul ESP-01 je najbolj priljubljen modul serije ESP8266. Komunikacija z računalnikom ali mikrokrmilnikom se izvaja preko UART z uporabo nabora ukazov AT. Poleg tega se lahko modul uporablja kot samostojna naprava, za to pa morate vanj naložiti lastno programsko opremo. Vdelano programsko opremo lahko programirate in prenesete prek Arduino IDE različice nad 1.6.5. Za flash vdelane programske opreme modula boste potrebovali adapter UART-USB. Modul ESP-01 se lahko pogosto uporablja v napravah IoT (Internet of Things).

Specifikacijemodul

  • Wi-Fi 802.11 b/g/n
  • Načini WiFi: odjemalec, dostopna točka
  • izhodna moč- 19,5 dB
  • Napajalna napetost - 1,8 -3,6 V
  • Poraba toka - 220 mA
  • Vrata GPIO: 4
  • Urna frekvenca procesor - 80 MHz
  • Kapaciteta pomnilnika kod
  • Oven- 96 KB
  • Dimenzije - 13×21 mm

Povezava

Oglejmo si ukazni način AT. Če želite to narediti, povežite modul z računalnikom prek adapterja USB-UART. Namen zatičev modula (glej sliko 1):
  • VCC - +3,3 V
  • GND - ozemljitev
  • RX, TX - zatiči UART
  • Izhod CH_PD - omogoči čip
  • GPIO0, GPIO2 - digitalni kontakti
Modul zahteva zunanje napajanje 3,3 V.

Slika 1. Razporeditev pinov modula ESP-01

Diagram povezave za komunikacijo z modulom v ukaznem načinu AT (slika 2):

Slika 2. Shema povezave modula ESP-01 z računalnikom preko serijskega vmesnika

Slika 3. Montažno vezje

Za pošiljanje ukazov AT v Mac OS X lahko uporabite program CoolTerm v operacijski sistem Windows program Termite. Hitrost vrat COM za povezavo z modulom lahko ugotovite samo eksperimentalno, pri različnih vdelanih programih je lahko drugačna. Za moj modul se je izkazalo, da je hitrost 9600 baudov. Poleg tega je bilo možno vzpostaviti izmenjavo šele po odklopu in ponovnem priklopu pina CH_PD na napajanje. Po povezavi v terminal vnesite AT in od modula bi morali prejeti odgovor OK. Ukaz AT+GMR poda številko različice vdelane programske opreme modula, ukaz AT+RST pa znova zažene modul (glejte sliko 4). Seznam osnovnih ukazov AT je na voljo v tem dokumentu (ESP8266ATCommandsSet.pdf).

Slika 4. Pošiljanje ukazov AT modulu iz Termita

Če vam ukazni način AT ne ustreza, lahko ploščo konfigurirate s programom AppStack ESP8266 Config, ki ga lahko prenesete s povezave http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip. Videz Program je predstavljen na sliki 5. Modul je konfiguriran z uporabo GUI, medtem ko je izvajanje ukazov vidno v programskem monitorju (glej sliko 6). Monitor lahko pošilja tudi ukaze AT iz ukazne vrstice.

Slika 5. Program AppStack ESP8266 Config

Slika 6. Serijski nadzornik programa AppStack ESP8266 Config

Obstajata dve možnosti za uporabo tega modula:

  • v povezavi z mikrokontrolerjem (npr. Arduino), ki bo krmilil modul preko UART-a;
  • pisanje lastne vdelane programske opreme za uporabo ESP8266 kot samostojne naprave.

Primer uporabe

Oglejmo si primer povezave senzorja vlage in temperature DHT11 z modulom ESP-01 in pošiljanja podatkov na storitev v oblaku ThingSpeak (https://thingspeak.com/). Potrebovali bomo naslednje dele:
  • modul ESP-01
  • deska za kruh
  • senzor vlažnosti in temperature DHT11
  • upor 10 kOhm
  • povezovalne žice
  • napajanje 3 - 3,6V
Najprej priključimo senzor DS18B20 na modul ESP-01. DS18B20 je digitalni temperaturni senzor, ki deluje prek enožilnega vmesnika 1-Wire. Shema povezave senzorja DS18B20 z modulom je prikazana na sl. 7.

Slika 7. Shema povezave senzorja DHT11 z modulom ESP-01.

Nato morate ustvariti profil v storitvi ThingSpeak. Storitev ima navodila za pošiljanje podatkov storitvi in ​​prejemanje podatkov od storitve.

Slika 8. Celotno vezje.

Program bomo napisali v Arduino okolje IDE za ESP8266. Uporabili bomo knjižnici ESP8266WiFi.h (vgrajeno) in OneWire.h. Naložimo skico iz seznama 1 na ploščo Arduino - prejemanje podatkov s temperaturnega senzorja in pošiljanje podatkov storitvi ThingSpeak. Vnesti morate svoje podatke za WiFi dostopno točko za modul ESP-01:

  • const char *ssid;
  • const char *geslo;
kot tudi parameter privateKey za vašo aplikacijo v storitvi ThingSpeak. Seznam 1 // spletno mesto // Vključite knjižnico za delo z esp8266 #include // Vključite knjižnico DHT za delo z DHT11 #include // DATA pin povezave pin #define DHTPIN 4 // DHT11 senzor #define DHTTYPE DHT11 // ustvarjanje primerka DHT objekta DHT dht(DHTPIN, DHTTYPE); //ssid WiFi omrežja povezave const char ssid = "********"; // Geslo za WiFi povezovalna omrežja const char geslo = "******"; // ThingSpeak Server const char* host = "184.106.153.149"; // KLJUČ API vaše aplikacije ThingSpeak const char* privateKey = "****************"; // spremenljivke za shranjevanje temperature in vlažnosti float temp; plovna vlažnost // spremenljivka za merilni interval unsigned long millis_int1=0; void setup() ( // zagon serijskih vrat Serial.begin(115200); delay(10); Serial.print("Poveži se z WiFi"); Serial.println(ssid); // Poveži se prek WiFi WiFi.begin( ssid, geslo); medtem ko (WiFi.status() != WL_CONNECTED) ( delay(500); ) Serial.println("WiFi povezan"); // zagon dht dht.begin(); ) void loop() ( / / počakajte 10 minutni interval if(milis()-millis_int1>=10*60000) ( Serial.print("connect to ThingSpeak"); Serial.println(host); // Uporabite odjemalca WiFi WiFiClient client; if (!client.connect (gostitelj, 80)) ( Serial.println("povezava ni uspela"); return; ) // pridobi podatke o temperaturi temp = get_data_temperature(); vlažnost = get_data_humidity(); // Ustvari URL z zahtevo za strežnik String url = "/ update?key="; url += privateKey; url += "&temp="; url += temp; url += "&humidity="; url += humidity; // Pošlji zahtevo do strežnika client.print(String(" GET ") + url + " HTTP/1.1\r\n" + "Gostitelj: " + gostitelj + "\r\n" + "Povezava: zapri\r\n\r \n"); zamuda(10); // Odziv strežnika ThingSpeak while(client.available())( String req = client.readStringUntil("\r"); Serial.print(req); ) ) ) Zdaj si lahko v storitvi ThingSpeak ogledamo graf odčitkov našega temperaturnega senzorja DHT11 (slika 9).

Slika 9. Graf odčitkov temperaturnega tipala DS18B20 v storitvi ThingSpeak.

Pogosta vprašanja FAQ

1. Modul se ne odziva naAT ukazi
  • Preverite, ali je modul pravilno priključen;
  • Preverite pravilno povezavo kontaktov Rx, Tx z adapterjem UART-USB;
  • Preverite povezavo pina CH_PD na 3,3 V;
  • Eksperimentalno izberite hitrost komunikacije na serijskih vratih.
2. Modul ESP-01 ne prejema podatkov o temperaturi od senzorjaDHT11
  • Preverite, ali je senzor DHT11 pravilno priključen na modul.
3. Podatki se ne prenašajo v storitev ThingSpeak
  • Preverite povezavo modula z dostopno točko WiFi;
  • Preverite povezavo dostopne točke WiFi z internetom;
  • Preverite, ali je zahteva za storitev ThingSpeak pravilna.

... Na splošno to gradivo ni omejeno le na eno temo Arduino.

Tema ESP8266 je precej težka. Toda, če delate s temi moduli Wi-Fi v razvojnem okolju Arduino IDE, vstopni prag pade na raven, sprejemljivo za povprečnega uporabnika Arduino. Pa ne samo Arduinovec, ampak vsaka oseba, ki ima željo pogruntati nekaj na temo IoT (Internet of Things), in ne da bi porabila veliko časa za branje dokumentacije za čip in preučevanje API-ja za te module.

Ta videoposnetek popolnoma podvaja material, predstavljen v spodnjem članku.

No, že vemo, kako povezati ESP8266 in ga postaviti v programski način, zdaj pa preidimo na nekaj bolj uporabnega.

Takoj bom rekel, da ko programiramo modul v razvojnem okolju Arduino, uničimo izvorno strojno programsko opremo in ne bomo več mogli delati z modulom z ukazi AT. Osebno me to ne zmrazi/vroči, a če kdo to potrebuje, vam bom proti koncu članka pokazal, kako v modul vnesti izvorno vdelano programsko opremo ali nekakšen zagonski nalagalnik, kot je NodeMcu.

Za začetek prenesite z uradne spletne strani Najnovejša različica Arduino IDE, trenutno 1.6.7. Starejše različice, kot je 1.0.5. ne bodo ustrezale, ker preprosto nimajo potrebne funkcionalnosti, ples s tamburino pa nas ne zanima, kajne?

Zaženemo razvojno okolje in takoj gremo v File/Settings:

Http://arduino.esp8266.com/stable/package_esp8266com_index.json

Nato pojdite na Orodja/Ploča:/Upravitelj plošče...:

Pred nami se bo pojavilo okno upravitelja plošč, pomaknite se po njem do samega dna in če je vse opravljeno pravilno, bomo videli nekaj takega:

Kliknite kazalec na napis " esp8266 avtor Skupnost ESP8266"po tem imamo gumb "Namesti", izberemo želeno različico, vzamem najnovejšo, danes je 2.1.0 in jo namestim. Razvojno okolje bo preneslo datoteke, ki jih potrebuje (približno 150 megabajtov) in nasprotno napis " esp8266 avtor Skupnost ESP8266 Prikaže se "NAMEŠČENO", to je nameščeno:

Pomaknemo se navzdol po seznamu plošč in vidimo, da imamo na seznamu veliko različnih ESP-jev, vzemite »Generic ESP8266 Module«:

Pojdite na “Orodja” in izberite želena vrata COM (zame je to COM32) Arduino ali USB UART pretvornik, nato pa nastavite hitrost nalaganja: “115200”:

Hitrost nastavimo na 74880 in »NL & CR« in znova izklopimo ter vključimo napajanje in odgovoril bo z nekaj informacijami o odpravljanju napak:

Upoštevajte, da 74880 ni glavna hitrost ESP8266, le pošilja informacije o odpravljanju napak. Če modul ne pošlje ničesar na konzolo, potem je morda nekaj nepravilno povezano.

Privzeto bi morala biti hitrost 115200, v nekaterih primerih pa je lahko 9600 in drugih ... Zato jo poskusite najti.

Ko izberemo želeno hitrost, pošljemo modul "AT" in ta naj odgovori, da je vse v redu. Ukaz "AT+GMR" prikaže informacije o vdelani programski opremi.

Preden začnete utripati ESP8266 v Arduino IDE, vam svetujem, da preberete članek do konca.

Zdaj pa poskusimo zagnati ESP8266 prek Arduino IDE. Modul smo postavili v programski način (kako to storiti sem napisal v prejšnjem članku).

Utripalki dodamo standardno LED:

// Avtor g. PodelkinTs youtube.com/RazniePodelki // posebno za geektimes.ru/post/271754/ #define TXD 1 // GPIO1/TXD01 void setup() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite(TXD, HIGH); delay(1000); digitalWrite(TXD, LOW); delay(1000); )

Utripala? Torej je bilo vse narejeno pravilno. Kje sem našel, da je LED priklopljena na prvi pin? V prejšnjem članku je slika z zatiči različnih modulov in tam je oznaka vrat pri uporabi zagonskega nalagalnika Arduino (zatiči so označeni z roza barvo).

Utripanje LED je seveda dobro, vendar moramo namestiti nekakšen spletni strežnik ali začeti nadzorovati LED vsaj z gumbi v brskalniku, kajne? Ampak o tem vam bom povedal kdaj drugič.

In zdaj kako obnoviti originalno programsko opremo, in kako celo utripati modul z zagonskimi nalagalniki drugih proizvajalcev. Za ESP8266 obstaja program, kot je NodeMCU Flasher, ki je prvotno namenjen utripanju zagonskega nalagalnika NodeMCU. A kot se je izkazalo, popolnoma utripa drugo strojno programsko opremo.

Za udobje bom članku priložil arhiv s tem programom in vdelano programsko opremo, vendar ga lahko vedno prenesete nova različica NodeMCU Flasher.

V mapi “nodemcu-flasher-master” sta 2 mapi Win64 in Win32 in glede na bitno globino vašega OS izberite tisto, ki jo potrebujete. Nato v mapi Release zaženite »ESP8266Flasher.exe« in si oglejte programski vmesnik:

Izberite želena vrata COM in pojdite na zavihek »Config«, odstranite križec poleg »INTERNAL://NODEMCU« in ga postavite za eno točko nižje, kot je prikazano na sliki:

(Če želite zagnati zagonski nalagalnik NodeMCU, odstranite križec, kjer ga ni bilo, in ga postavite, kjer je bil, to je blizu »INTERNAL://NODEMCU«).

Nato kliknemo na zobnik in izberemo, kje se nahaja naš firmware, firmware je običajno v formatu *.bin (v priloženem arhivu je to “v0.9.5.2 AT Firmware.bin”, ki je v glavni mapi) in izberite tudi »0x00000« kot in višje.

Ponovno se vrnemo na zavihek »Delovanje«, prestavimo modul v način programiranja in kliknemo »Flash«:

To je to, modul se je začel utripati, po utripanju ne pozabite znova zagnati modula in voila, utripal je z vdelano programsko opremo, ki jo potrebujemo.

Z ukazom AT “AT+GMR” preverimo, ali smo vse naredili pravilno:

Kot vidite, je vse potekalo gladko.

Kako uporabljati modul ESP-01 za nadzor LED preko interneta, modul, ki vam omogoča nadzor katerega koli električna naprava.

V tej vadnici ESP8266 uporabljamo modul ESP-01 za nadzor LED preko interneta. ESP8266 je poceni, a učinkovita platforma za komuniciranje prek interneta.

Prav tako je enostaven za uporabo z Arduinom. Po opravljeni lekciji boste pridobili osnovno znanje o upravljanju katere koli električne naprave preko interneta od kjerkoli na svetu!

Tukaj bomo uporabili pretvornik USB v TTL za programiranje ESP8266 ESP-01. In uporabili ga bomo za razvoj spletnega strežnika za daljinec LED.

Kako deluje

ESP8266 je mogoče nadzorovati iz lokalnega omrežja Wi-Fi ali iz interneta (po posredovanju vrat). Modul ESP-01 ima zatiče GPIO, ki jih je mogoče programirati za vklop ali izklop LED ali releja prek interneta. Modul je mogoče programirati s pretvornikom Arduino USB-to-TTL prek serijskih zatičev (RX, TX).

Priključitev strojne opreme na vaš ESP8266

Za programiranje ESP8266 lahko uporabimo pretvornik USB-to-TTL ali uporabimo Arduino. Tukaj so trije načini, ki jih lahko uporabite za nalaganje kode v vaš ESP8266 - izberite tisto, ki vam najbolj ustreza. Oglejte si diagrame za vsako možnost in ustrezno konfigurirajte svojo opremo.

1. Pretvornik USB v TTL s priključkom DTR

Če uporabljate pretvornik USB-TTL z izhodom DTR, bo prenos potekal gladko. Ne pozabite, da serijski monitor pri tem ne bo deloval.

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
RTS → RST
DTR → GPIO0

2. Pretvornik USB v TTL brez DTR izhoda

Za povezavo pretvornika USB v TTL brez pina DTR moramo uporabiti ročni menjalnik. Za to uporabljamo dva gumba - glejte naslednji diagram:

USB TTL → ESP8266 ESP-01
GND → GND
TX → RX
RX → TX
Gumb za ponastavitev → RST
Gumb Flash → GPIO0

Pri prenosu kode kliknite gumb "Prenosi" (Flash). Držite gumb pritisnjen, medtem ko enkrat pritisnete gumb za ponastavitev. Zdaj lahko spustite gumb Flash. ESP8266 je zdaj v načinu, v katerem lahko naložite skico.

3. Uporaba Arduino Uno za nalaganje kode v ESP8266

Za zagon kode lahko uporabite ESP8266 ESP-01. Pri prenosu kode sledite enakemu postopku kot v drugi točki - držite pritisnjeno tipko "Download", medtem ko enkrat pritisnete reset in nato spustite tipko Flash.

ARDUINO → ESP8266 ESP-01
GND → GND
TX → TX
RX → RX
Gumb za ponastavitev → RST
Gumb Flash → GPIO0

Prenos kode ESP8266

Uporabite katero koli od zgornjih metod in odprite , nato pa v meniju izberite ploščo ESP8266:

Orodja → Plošča → Generični modul ESP8266
(Orodja → Plošča → Modul ESP8266)

Opomba. Če niste namestili in konfigurirali plošče ESP8266 Arduino, to storite tako, da sledite korakom nad to vadnico. Potem lahko greš naprej.

Zdaj kopirajte spodnjo kodo v Arduino IDE in kliknite gumb za prenos. Spremenite SSID v piko Wi-Fi dostop in spremenite geslo v svoje Geslo za Wi-Fi in sestavite.

#vključi const char* ssid = "YOUR_SSID";//vnesite svoje ssid const char* geslo = "YOUR_PASSWORD";//vnesite svoje geslo int ledPin = 2; // GPIO2 strežnika ESP8266 WiFiServer(80);//Service Port void setup() ( Serial.begin(115200); delay(10); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); // Poveži se z Omrežje WiFi Serial.println(); Serial.println(); Serial.print("Povezovanje z "); Serial.println(ssid); WiFi.begin(ssid, geslo); medtem ko (WiFi.status() != WL_CONNECTED ) ( delay(500); Serial.print("."); ) Serial.println(""); Serial.println("WiFi povezan"); // Zaženi strežnik server.begin(); Serial.println( "Strežnik zagnan"); // Natisni naslov IP Serial.print("Uporabi ta URL za povezavo: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial .println("/"); ) void loop() ( // Preverite, ali je odjemalec povezal WiFiClient client = server.available(); if (!client) ( return; ) // Počakajte, da odjemalec pošlje nekaj podatkov Serial .println("new client"); while(!client.available())( delay(1); ) // Branje prve vrstice zahteve String request = client.readStringUntil("\r"); Serial.println (zahteva); client.flush(); // Ujemanje z zahtevo int value = LOW; if (request.indexOf("/LED=ON") != -1) ( digitalWrite(ledPin, HIGH); value = HIGH; ) if (request.indexOf("/LED=OFF") != -1)( digitalWrite(ledPin, LOW); value = LOW; ) //Nastavi ledPin glede na zahtevo //digitalWrite(ledPin, value); // Vrne odgovor client.println("HTTP/1.1 200 OK"); client.println("Vrsta vsebine: besedilo/html"); client.println(""); // ne pozabi tega enega client.println(""); client.println(" "); client.print("Led pin je zdaj: "); if(value == HIGH) ( client.print("On"); ) else ( client.print("Off"); ) client.println( "

"); client.println("Kliknite tukaj vklopite LED na nožici 2
"); client.println("Kliknite tukaj izklopite LED na nožici 2
"); client.println(""); delay(1); Serial.println("Odjemalec prekinjen"); Serial.println(""); )

Odprite serijski monitor in prek spletnega brskalnika odprite URL, prikazan na serijskem monitorju. Povežite GPIO 2 iz ESP8266 z daljšim zatičem LED. Zdaj lahko svojo LED diodo upravljate na daljavo prek interneta!

Odstranite vse žice, ki so bile potrebne za prenos kode. Modul LM1117 se uporablja za zagotavljanje reguliranega izhoda 3,3 V. To vam bo omogočilo, da bo modul ESP8266 ali ESP-01 samostojen.

Povezovanje ESP8266 z internetom

Trenutno je modul ESP8266 na voljo samo prek lokalno omrežje Wifi. Če želite upravljati naprave iz interneta, morate na usmerjevalniku izvesti posredovanje vrat.

Če želite to narediti, poiščite naslov IP vašega sistema z ukazom "ifconfig" v terminalu ali pojdite na whatsmyip.org. Kopirajte svoj naslov IP. Zdaj odprite nastavitve usmerjevalnika in pojdite na nastavitve posredovanja. Vnesite podrobnosti za »Service Port« in »IP Address«. Storitvena vrata so številka vrat iz kode Arduino (storitvena vrata: 80):

Strežnik WiFiServer(80);//Storitvena vrata

Naslov IP je tisti, ki ste ga navedli prej. Ostale nastavitve pustite privzete. Zdaj pojdite v brskalnik in vnesite naslov: xxx.xxx.xx.xx: 80. Odpre se stran za nadzor LED.