Sisukord:
Video: ESP8266 otsene andmeside: 3 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Sissejuhatus
Olles teinud mõningaid projekte Arduinose ja nRF24l01 moodulitega, mõtlesin, kas saaksin mõne vaeva kokku hoida, kasutades selle asemel ESP8266 moodulit. ESP8266 mooduli eeliseks on see, et see sisaldab pardal olevat mikrokontrollerit, seega pole vaja täiendavat Arduino plaati. Lisaks on ESP8266 mälumaht palju suurem ja kiiruse osas töötab ESP8266 maksimaalselt 160MHz Arduino 16MHz asemel. Muidugi on ka negatiivseid külgi.
ESP8266 töötab ainult 3,3 V toitel, sellel on vähem kontakte ja puuduvad Arduino toredad analoogsisendid (sellel on üks, kuid ainult 1,0 V ja mitte 3,3 V). Lisaks on Arduino + nRF24l01 jaoks palju rohkem koodinäiteid, siis ESP8266 puhul, eriti kui tegemist on otsese andmeedastusega.
Nii et projekti silmas pidades uurisin kiire ja kerge andmeedastuse teemat kahe ESP8266 vahel ilma igasuguse WWW- ja HTTP -kraamita.
Internetist näiteid otsides (suurem osa allolevast koodist valiti erinevatest kohtadest netist), tekkis mul palju küsimusi, kuidas rakendada otsest andmeedastust ilma toredate näideteta. Seal oli mõni näidiskood, kuid enamasti küsimusega, miks see ei töötanud.
Nii et pärast mõningast lugemist ja mõistmist püüdsin luua järgmised näited, mis võimaldavad kiiret ja lihtsat andmete edastamist kahe ESP8266 vahel.
1. samm: piirid ja taustad (TCP vs. UDP)
Sinna jõudmiseks tuleb nRF24l01 -ga võrreldes mõned piirid selgeks teha.
ESP8266 kasutamiseks Arduino keskkonnas on põhiteek ESP8266WiFi.h. Need võivad olla erinevad, kuid enamik näiteid kasutab ülalnimetatut. Seda kasutades peate oma suhtluse WiFi tasemele viima.
Seega peab suhtlemiseks olema vähemalt juurdepääsupunkt (AP) / server ja klient. AP annab võrgu nime ja IP -aadressid ning klient loob selle serveriga ühenduse.
Võrreldes nRF24l01, kus kood mõlemas otsas on enam -vähem sama (välja arvatud edastuskanalid), on ESP8266 kood põhimõtteliselt erinev, kuna üks on konfigureeritud AP -na ja teine kliendina.
Järgmine teema on see, et selle asemel, et lihtsalt saata mõni bait nRF24l01 -le, tuleb järgida ESP8266 edastusprotokolle.
Tavaliselt kasutatakse kahte protokolli: TCP ja UDP.
TCP (Transmission Control Protocol) on protokoll, mis võimaldab kadudeta edastamist serveri ja kliendi vahel. Protokoll sisaldab kadunud pakettide tuvastamiseks ja uuesti edastamiseks „käepigistusi” (palju lippe ja tunnustusi mõlema osapoole vahel) ning pakettide nummerdamist ja tuvastamist. Lisaks väldib kõigi nende käepigistuste kasutamine protokolli andmete kadumist paljude võrgus samaaegselt saadetavate pakettide tõttu. Andmepaketid ootavad, kuni neid saab vastu võtta.
UDP-l (User Datagram Protocol) puuduvad kõik käepigistused, pakettide nummerdamine ja uuesti edastamine. Selle üldkulud on seega väiksemad ja ühenduse hoidmiseks pole vaja kõiki käepigistusi. UDP sisaldab põhivigade tuvastamist, kuid ei paranda (rikutud pakett on lihtsalt maha langenud). Andmeid saadetakse teadmata, kas vastuvõttev pool võib andmeid vabalt vastu võtta. Samal ajal võivad mitu paketti kokku põrgata, kuna iga osapool saadab andmed alati, kui seda vajatakse. Kui jätate kõik käepigistused tegemata, on UDP -l veel üks tore funktsioon, mida nimetatakse „multicast” ja „broadcast”. Multisaate puhul saadetakse andmepaketid eelmääratud liikmete rühmale, ringhäälingu andmepaketid saadetakse kõigile ühendatud liikmetele. See vähendab märkimisväärselt andmeedastust juhul, kui voogusid võtavad vastu mitmed liikmed (nt saates videovoo mitmele vastuvõtjale või saates praeguse aja mitmele ühendatud seadmele).
Youtube'is on häid videoid, mis selgitavad seda veelgi paremini.
Seega on andmete saatmisel oluline teada oma vajadusi:
- rikutud andmed, mitme kaaslase haldamine käepigistustega → TCP
- reaalajas andmed, kiire ühendus → UDP
Alustasin kõigepealt TCP -põhise kommunikatsiooni rakendamisega (ühe serveri ja ühe kliendi vahel). Seda katsetades tekkis mul ülekandega probleeme. Alguses vahetati andmeid kiiresti, siis mõne aja pärast kiirus langes järsult. Jõudsin järeldusele, et see oli tüüpiline TCP -lähenemise probleem (mis oli vale!), Nii et muutusin seejärel UDP -l põhinevaks lahenduseks. Lõpuks lähenesin mõlemale tööle. Seega pakutakse mõlemat lahendust.
Allpool toodud visandid on TCP ja UDP jaoks ühised:
- on sõltumatud olemasolevast WiFi -võrgust. Nii et see töötab kõikjal kaugel Internetist ja ühendatud ruuteritest.
- saadavad ASCII andmeid jadamonitori kaudu printimiseks.
- saadavad millis ()-funktsiooniga saadud andmeid, et analüüsida edastuskiirust.
- ei testita mitme kliendi jaoks (kuna võrgu seadistamiseks on praegu riistvara)
Samm: riistvara
Kogu seadistuse testimiseks kasutasin kahte ESP8266 moodulit. Üks moodul on ESP-01 + USB-UART-adapter. Teine moodul on ESP-12 põhinev moodul, mis sisaldab USB-ühendust, pingeregulaatorit ja mõningaid lõbusaid asju, nagu lülitid, LDR ja mitmevärviline LED.
ESP-01 USB-UART-moodulit tuli veidi muuta, et seda saaks programmeerijana kasutada (jällegi Youtube, autor Csongor Varga).
Visandite käitamiseks peate installima teegid ESP8266 (nagu on kirjeldatud paljudes Interneti kohtades). Mõlemal juhul (TCP ja UDP) on serveri ja kliendi visand. Milline visand millisele moodulile laaditakse, pole oluline.
Tänuavaldused
Nagu mainitud, põhinevad visandid paljudel juppidel, mille leidsin veebist. Ma ei mäleta enam, kust ma midagi leidsin ja mis on algne kood või mida ma muutsin. Nii et ma tahtsin lihtsalt tänada suurt kogukonda üldiselt kõigi suurepäraste näidete avaldamise eest.
3. samm: visandid
Kood koosneb kahest visandist (nagu on selgitatud), serveri visandist ja kliendi visandist, nii TCP kui ka UDP jaoks.
Soovitan:
Kuidas ESP8266 AT püsivara välgutada või programmeerida, kasutades ESP8266 vilkurit ja programmeerijat, IOT Wifi moodulit: 6 sammu
Kuidas ESP8266 AT püsivara välgutada või programmeerida, kasutades ESP8266 välklampi ja programmeerijat, IOT Wifi moodulit: Kirjeldus: see moodul on USB-adapter /programmeerija ESP-01 või ESP-01S tüüpi ESP8266 moodulite jaoks. ESP01 ühendamiseks on see mugavalt varustatud 2x4P 2,54 mm emasega. Samuti purustab see kõik ESP-01 tihvtid läbi 2x4P 2,54 mm isase h
ESP8266 - Aia kastmine taimeriga ja kaugjuhtimispuldiga Interneti kaudu / ESP8266: 7 sammu (piltidega)
ESP8266 - Aia kastmine taimeriga ja kaugjuhtimispuldiga Interneti kaudu / ESP8266: ESP8266 - Niisutamine kaugjuhtimisega ja ajastusega köögiviljaaedade, lilleaedade ja muruplatside jaoks. See kasutab ESP-8266 vooluringi ja niisutusseadme etteandmiseks hüdraulilist / elektrilist ventiili. Eelised: odav (~ 30,00 USA dollarit) kiire juurdepääsuga käsud
ESP8266 - Ukse- ja aknasensorid - ESP8266. Eakate abi (unustamine): 5 sammu
ESP8266 - Ukse- ja aknasensorid - ESP8266. Eakate abi (unustamine): ESP8266 - Ukse- / aknasensorid, kasutades GPIO 0 ja GPIO 2 (IOT). Seda saab vaadata veebis või brauseritega kohalikus võrgus. Nähtav ka " HelpIdoso Vxapp " rakendus. Kasutab 110/220 VAC toiteallikat 5Vdc, 1 relee / pinge jaoks
Internetist aja saamine ESP8266 abil - NTP kellaprojekt ESP8266 -ga Nodemcu: 5 sammu
Internetist aja saamine ESP8266 abil | NTP kellaprojekt ESP8266 Nodemcu abil: Selles õpetuses näeme, kuidas saada aega, kasutades ESP8266/nodemcu koos Arduino IDE -ga. Aja saamine on eriti kasulik andmete logimisel, et oma näidud ajatempliga tähistada. Kui teie projektil ESP8266 on juurdepääs Internetile, saate võrgu T abil aega
ESP8266 NODEMCU BLYNK IOT Õpetus - Esp8266 IOT kasutades Blunk ja Arduino IDE - LED -ide juhtimine Interneti kaudu: 6 sammu
ESP8266 NODEMCU BLYNK IOT Õpetus | Esp8266 IOT kasutades Blunk ja Arduino IDE | LED -ide juhtimine Interneti kaudu: Tere juhid, selles juhendis olevad poisid, õpime kasutama IOT -i koos meie ESP8266 või Nodemcu -ga. Me kasutame selleks rakendust blynk. Nii et me kasutame meie esp8266/nodemcu LED -ide juhtimiseks Interneti kaudu. Nii et rakendus Blynk ühendatakse meie esp8266 või Nodemcu -ga