Përmbajtje:
Video: ESP8266 Komunikimi i të Dhënave Direkte: 3 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:23
Prezantimi
Ndërsa kisha bërë disa projekte me modulet Arduinos dhe nRF24l01, po pyesja veten nëse mund të kurseja ndonjë përpjekje duke përdorur një modul ESP8266 në vend të tij. Avantazhi i modulit ESP8266 është se ai përmban një mikro kontrollues në bord, kështu që nuk nevojitet asnjë bord shtesë Arduino. Për më tepër, madhësia e kujtesës së ESP8266 është shumë më e madhe dhe në lidhje me shpejtësinë, ESP8266 funksionon në maksimum 160 MHz në vend të 16 MHz të Arduino. Sigurisht që ka disa anë negative.
ESP8266 funksionon vetëm me 3.3V, ka më pak kunja dhe i mungojnë hyrjet e mira analoge që ka Arduino (ka një, por vetëm për 1.0V dhe jo 3.3V). Për më tepër ka shumë shembuj të tjerë të kodit për Arduino + nRF24l01, pastaj ka për ESP8266 veçanërisht kur bëhet fjalë për transferimin e drejtpërdrejtë të të dhënave.
Pra, me një projekt në mendje, unë shikova temën e transferimit të shpejtë dhe të lehtë të të dhënave midis dy ESP8266 pa të gjitha gjërat WWW dhe
Ndërsa kërkoja në internet për shembuj (shumica e kodit të mëposhtëm u zgjodh nga rrjeti në vende të ndryshme) hasa në shumë pyetje se si të zbatoja një transferim të drejtpërdrejtë të të dhënave pa shembujt e bukur "bëje kështu". Kishte një shembull kod, por kryesisht me pyetje pse nuk funksionoi.
Kështu që pas disa leximeve dhe përpjekjeve për të kuptuar, krijova shembujt e mëposhtëm të cilët lejojnë transferim të shpejtë dhe të thjeshtë të të dhënave midis dy ESP8266.
Hapi 1: Kufijtë dhe prejardhjet (TCP vs UDP)
Për të arritur atje, disa kufij duhet të sqarohen në krahasim me nRF24l01.
Për të përdorur ESP8266 brenda mjedisit Arduino, biblioteka bazë për t'u përdorur është ESP8266WiFi.h. Mund të jenë të ndryshme, por shumica e shembujve përdorin ato të përmendura më sipër. Kur e përdorni këtë, duhet të arrini komunikimin tuaj në nivelin WiFi.
Pra, për të komunikuar duhet të ketë të paktën një pikë aksesi (AP) / server dhe një klient. AP jep emrin e rrjetit dhe adresat IP dhe klienti do të lidhet me këtë server.
Krahasuar kështu me nRF24l01, ku kodi në të dy skajet është pak a shumë i njëjtë (përveç kanaleve të transmetimit) kodi i ESP8266 është thelbësisht i ndryshëm, pasi njëri është i konfiguruar si AP dhe tjetri si klient.
Tema tjetër është, në vend që të dërgoni vetëm disa bajtë në nRF24l01, për protokollet e transferimit ESP8266 duhet të respektohen.
Ekzistojnë dy protokolle të zakonshëm të përdorur: TCP dhe UDP.
TCP (Transmission Control Protocol) është një protokoll i cili lejon një transmetim pa humbje midis një serveri dhe një klienti. Protokolli përfshin "shtrëngimin e duarve" (shumë flamuj dhe paga të dërguara midis të dyja palëve) dhe numërimin dhe zbulimin e paketave për të identifikuar dhe ri-transmetuar paketat e humbura. Për më tepër, duke përdorur të gjitha këto shtrëngime duarsh, protokolli parandalon humbjen e të dhënave për shkak të shumë paketave të dërguara në të njëjtën kohë në rrjet. Pakot e të dhënave presin derisa të mund të merren.
UDP-së (Protokollit të Datagramit të Përdoruesit) i mungojnë të gjitha shtrëngimet e duarve, numërimi i paketave dhe ri-transmetimi. Prandaj, lartësia e saj është më e vogël dhe nuk ka nevojë që të gjitha shtrëngimet e duarve të mbajnë një lidhje. UDP përfshin disa zbulime themelore të gabimeve, por asnjë korrigjim (paketa e korruptuar sapo ka rënë). Të dhënat dërgohen, pa dijeninë nëse pala marrëse është e lirë të marrë të dhënat. Në të njëjtën kohë, pako të shumta mund të përplasen, pasi secila palë i dërgon të dhënat sa herë që është e nevojshme. Duke hequr dorë nga të gjitha shtrëngimet e duarve, ekziston një veçori shtesë e bukur e UDP e quajtur "multicast" dhe "broadcast". Në rastin "multicast" paketat e të dhënave i dërgohen një grupi anëtarësh të paracaktuar, në një "transmetim" paketat e të dhënave u dërgohen të gjithë anëtarëve të lidhur. Kjo zvogëlon transferimin e të dhënave në mënyrë të konsiderueshme në rast të transmetimeve që do të merren nga anëtarë të shumtë (p.sh. duke dërguar një burim video në marrës të shumtë ose duke dërguar kohën aktuale në pajisje të shumta të lidhura).
Ka disa video të mira në Youtube që e shpjegojnë edhe më mirë.
Pra, kur dërgoni të dhëna, është e rëndësishme të njihni nevojat tuaja:
- të dhëna të pakorruptuara, menaxhimi i kolegëve të shumtë me shtrëngime duarsh → TCP
- të dhëna në kohë reale, lidhje e shpejtë → UDP
Fillimisht fillova me zbatimin e një komunikimi të bazuar në TCP (midis një Serveri dhe një Klienti). Ndërsa e testova, kisha probleme ngecëse në transmetim. Në fillim të dhënat u shkëmbyen shpejt, pastaj pas një kohe shpejtësia ra në mënyrë dramatike. Unë arrita në përfundimin se ky ishte një problem tipik i qasjes TCP (i cili ishte i gabuar!), Kështu që më pas u ndryshova në një zgjidhje të bazuar në UDP. Më në fund u afrova të dy duke punuar. Kështu që të dyja zgjidhjet do të jepen.
Skicat e mëposhtme kanë të përbashkëta për TCP dhe UDP:
- janë të pavarur nga çdo rrjet ekzistues WiFi. Pra, do të funksionojë kudo shumë larg internetit dhe ruterave të lidhur.
- po dërgojnë të dhëna ASCII për t'u shtypur përmes monitorit serik.
- po dërgojnë të dhëna të marra nga funksioni millis ()-për të analizuar shpejtësinë e transmetimit.
- nuk janë testuar për klientë të shumtë (për shkak të pajisjes për të konfiguruar rrjetin tani)
Hapi 2: Pajisje kompjuterike
Për të testuar të gjithë konfigurimin kam përdorur dy module ESP8266. Një modul është një përshtatës ESP-01 + USB-to-UART. Moduli tjetër është një modul i bazuar në ESP-12 që përfshin lidhjen USB, rregullatorin e tensionit dhe disa gjëra argëtuese si çelsat, LDR dhe LED me shumë ngjyra.
Moduli USB-to-UART për ESP-01 duhej të modifikohej pak për të qenë në gjendje ta përdorte atë si programues (përsëri Youtube nga Csongor Varga).
Për të drejtuar skicat, duhet të instaloni bibliotekat ESP8266 (siç përshkruhet në shumë vende në internet). Në të dy rastet (TCP dhe UDP) ekziston një skicë e serverit dhe klientit secila. Cila skicë ngarkohet në cilin modul nuk ka rëndësi.
Mirënjohje
Siç u përmend, skicat bazohen në shumë pjesë dhe pjesë që kam gjetur në internet. Nuk mbaj mend më se ku gjeta çfarë, dhe çfarë është kodi origjinal ose çfarë ndryshova. Kështu që unë thjesht doja të falënderoja komunitetin e madh në përgjithësi atje për botimin e të gjithë shembujve të mrekullueshëm.
Hapi 3: Skicat
Kodi përbëhet nga dy skica secila (siç shpjegohet), një skicë serveri dhe një skicë klienti, për TCP dhe UDP secila.
Recommended:
Si të bëni lagështi dhe temperaturë Regjistruese të të dhënave në kohë reale me Arduino UNO dhe SD-Card - Simulimi DHT11 Regjistruesi i të dhënave në Proteus: 5 hapa
Si të bëni lagështi dhe temperaturë Regjistruese të të dhënave në kohë reale me Arduino UNO dhe SD-Card | Simulimi i regjistruesit të të dhënave DHT11 në Proteus: Hyrje: përshëndetje, ky është Liono Maker, këtu është lidhja në YouTube. Ne po bëjmë projekt krijues me Arduino dhe po punojmë në sisteme të ngulitura. Data-Logger: Një regjistrues i të dhënave (gjithashtu regjistrues i të dhënave ose regjistrues i të dhënave) është një pajisje elektronike që regjistron të dhëna me kalimin e kohës me
Blerja e të Dhënave dhe Sistemi i Vizualizimit të të Dhënave për një Biçikletë Garash MotoStudente Elektrike: 23 hapa
Sistemi i marrjes së të dhënave dhe vizualizimi i të dhënave për një motoçikletë MotoStudent Electric Racing: Një sistem i marrjes së të dhënave është një koleksion i pajisjeve dhe programeve kompjuterike që punojnë së bashku për të mbledhur të dhëna nga sensorë të jashtëm, për t'i ruajtur dhe përpunuar ato më pas në mënyrë që të mund të vizualizohen dhe analizohen, duke lejuar inxhinierët të bëjnë
EASY Arduino OLED Sensori i të dhënave të të dhënave: 4 hapa
EASY Arduino OLED Sensori i të dhënave: Nëse keni punuar ndonjëherë me Arduino, me siguri keni dashur që ai të shfaqë leximet e sensorit. Ndërsa përdorni LCD -in e vjetër klasik Nokia 5110, mund të keni vënë re se lidhja e të gjithë atyre telave është e çrregullt dhe kërkon shumë kunja. Sigurisht, ka një më të mirë
ESP8266 dhe komunikimi Python Për Noobs: 6 hapa
ESP8266 dhe Python Communication For Noobs: Ky udhëzues ju lejon të merrni ndonjë të dhënë nga ESP8266 dhe ta kontrolloni atë mbi python pa komandat AT. Për fillestarët, shumica e udhëzuesve për përdorimin e ESP8266 është e vështirë, sepse ata duan që ju të ndizni "N CO KOMANDA”Në çip, i cili është: Mbetje e Panevojshme
Komunikimi LoRa ESP8266 & Radio RFM95: 9 hapa
Komunikimi LoRa ESP8266 & Radio RFM95: Një nga teknologjitë më të njohura që do të zbatohet për Internetin e Gjërave, e cila ka karakteristika shumë goditëse komunikim në distanca të gjata dhe fuqi të ulët të reflektuar në konsumin e tij të ulët, LoRa " Lo ng - Ra nge ", kjo lloji i modulimit ha