Orodha ya maudhui:

Mawasiliano ya Moja kwa Moja ya ESP8266: Hatua 3
Mawasiliano ya Moja kwa Moja ya ESP8266: Hatua 3

Video: Mawasiliano ya Moja kwa Moja ya ESP8266: Hatua 3

Video: Mawasiliano ya Moja kwa Moja ya ESP8266: Hatua 3
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Novemba
Anonim
Mawasiliano ya Moja kwa Moja ya ESP8266
Mawasiliano ya Moja kwa Moja ya ESP8266

Utangulizi

Wakati nilikuwa nimefanya miradi kadhaa na moduli za Arduinos na nRF24l01 nilikuwa najiuliza ikiwa ningeweza kuokoa juhudi kwa kutumia moduli ya ESP8266 badala yake. Faida ya moduli ya ESP8266 ni kwamba ina mdhibiti mdogo kwenye bodi, kwa hivyo hakuna bodi ya ziada ya Arduino inayohitajika. Kwa kuongezea saizi ya kumbukumbu ya ESP8266 ni kubwa zaidi na kwa kuzingatia kasi ESP8266 inaendesha kwa kiwango cha juu cha 160MHz badala ya 16MHz ya Arduino. Kwa kweli kuna pande hasi.

ESP8266 inaendesha 3.3V tu, ina pini chache na inakosa pembejeo nzuri za analog ambayo Arduino ina (ina moja, lakini tu kwa 1.0V na sio 3.3V). Kwa kuongeza kuna mifano mingi zaidi ya nambari ya Arduino + nRF24l01 basi kuna ESP8266 haswa linapokuja suala la kuhamisha data.

Kwa hivyo nikiwa na mradi akilini, niliangalia mada ya uhamishaji wa data haraka na nyepesi kati ya mbili ESP8266 bila vitu vyote vya WWW na

Wakati nikitafuta wavuti kwa mifano (nyingi ya nambari iliyo chini ilichaguliwa kutoka kwa wavu katika maeneo anuwai) nilikutana na maswali mengi jinsi ya kutekeleza uhamishaji wa data moja kwa moja bila mifano nzuri ya "fanya hivyo". Kulikuwa na nambari ya mfano, lakini haswa na swali kwanini haikufanya kazi.

Kwa hivyo baada ya kusoma na kujaribu kuelewa, niliunda mifano hapa chini ambayo inaruhusu uhamishaji wa data haraka na rahisi kati ya ESP8266 mbili.

Hatua ya 1: Mipaka na Asili (TCP Vs. UDP)

Ili kufika huko, mipaka kadhaa inapaswa kufafanuliwa ikilinganishwa na nRF24l01.

Kutumia ESP8266 ndani ya mazingira ya Arduino, maktaba ya msingi ya kutumia ni ESP8266WiFi.h. Inaweza kuwa tofauti, lakini mifano mingi hutumia zilizotajwa kwenye. Unapotumia hii, unahitaji kupata mawasiliano yako kwa kiwango cha WiFi.

Kwa hivyo, kuwasiliana kunahitaji angalau mahali pa kufikia (AP) / seva na mteja. AP hutoa jina la mtandao na anwani za IP na mteja ataunganisha kwenye seva hii.

Kwa hivyo ikilinganishwa na nRF24l01, ambapo nambari katika ncha zote mbili ni sawa au chini sawa (isipokuwa kwa njia za usafirishaji) nambari ya ESP8266 ni tofauti kabisa, kwani moja imesanidiwa kama AP na nyingine kama mteja.

Mada inayofuata ni kwamba badala ya kutuma tu ka kwa nRF24l01, kwa itifaki za uhamishaji za ESP8266 zinahitajika kuzingatiwa.

Kuna itifaki mbili zinazotumiwa kawaida: TCP na UDP.

TCP (Itifaki ya Udhibiti wa Usafirishaji) ni itifaki ambayo inaruhusu usafirishaji wa bure kati ya seva na mteja. Itifaki inajumuisha "kupeana mikono" (bendera nyingi na alama zilizotumwa kati ya pande zote mbili) na nambari za pakiti na kugundua kutambua na kupeleka tena pakiti zilizopotea. Kwa kuongeza, kwa kutumia mikono hii yote itifaki inazuia data iliyopotea kwa sababu ya pakiti nyingi zinazotumwa kwa wakati mmoja kwenye mtandao. Pakiti za data husubiri hadi zipokee.

UDP (Itifaki ya Takwimu ya Mtumiaji) inakosa kupeana mikono yote, idadi ya pakiti na usafirishaji tena. Kichwa chake kwa hivyo ni kidogo na hakuna haja ya kupeana mikono yote kudumisha unganisho. UDP inajumuisha utambuzi wa kimsingi wa makosa, lakini hakuna marekebisho (kifurushi kilichoharibiwa kimeshuka tu). Takwimu zinatumwa, bila maarifa ikiwa mtu anayepokea yuko huru kupokea data. Wakati huo huo, pakiti nyingi zinaweza kugongana, kwani kila chama hutuma data wakati wowote inahitajika. Kwa kuacha kupeana mikono yote, kuna huduma moja nzuri ya UDP inayoitwa "multicast" na "matangazo". Katika kesi "multicast" pakiti za data zinatumwa kwa kikundi kilichofafanuliwa cha wanachama, katika "pakiti" za data hutumwa kwa washiriki wote waliounganishwa. Hii inapunguza uhamishaji wa data sana ikiwa mito itapokelewa na washiriki wengi (k.v. kwa kutuma mpasho wa video kwa wapokeaji kadhaa au kwa kutuma wakati wa sasa kwa vifaa vingi vilivyounganishwa).

Kuna video nzuri kwenye YouTube zinazoelezea vizuri zaidi.

Kwa hivyo wakati wa kutuma data, ni muhimu kujua mahitaji yako:

  • data isiyoharibika, usimamizi wa wenzao wengi kwa kupeana mikono → TCP
  • data ya wakati halisi, unganisho haraka → UDP

Nilianza kwanza na utekelezaji wa mawasiliano ya TCP (kati ya Seva moja na Mteja mmoja). Wakati wa kuijaribu, nilikuwa na shida za kukwama kwa usafirishaji. Mwanzoni data ilibadilishwa haraka, kisha baada ya muda kasi ilipungua sana. Nilihitimisha kuwa hii lilikuwa shida ya kawaida ya njia ya TCP (ambayo ilikuwa mbaya!), Kwa hivyo ilibadilishwa kuwa suluhisho kulingana na UDP. Mwishowe nilianza kufanya kazi. Kwa hivyo suluhisho zote mbili zitatolewa.

Mchoro hapa chini una TCP na UDP kwa pamoja kwamba:

  • ni huru kwa mtandao wowote uliopo wa WiFi. Kwa hivyo itafanya kazi mahali popote mbali na mtandao na njia zilizounganishwa.
  • zinatuma data ya ASCII ichapishwe kupitia mfuatiliaji wa serial.
  • zinatuma data iliyopatikana na millis () - kazi, kuchambua kasi ya usafirishaji.
  • hazijaribiwa kwa wateja wengi (kwa sababu ya kuwa na vifaa vya kuanzisha mtandao sasa hivi)

Hatua ya 2: Vifaa

Vifaa
Vifaa
Vifaa
Vifaa
Vifaa
Vifaa
Vifaa
Vifaa

Ili kujaribu usanidi mzima nilitumia moduli mbili za ESP8266. Moduli moja ni adapta ya ESP-01 + USB-to-UART. Moduli nyingine ni moduli ya msingi ya ESP-12 inayojumuisha unganisho la USB, mdhibiti wa Voltage na vitu vingine vya kufurahisha kama swichi, LDR na LED yenye rangi nyingi.

Moduli ya USB-to-UART ya ESP-01 ilihitaji kubadilishwa kidogo ili kuweza kuitumia kama programu (tena Youtube na Csongor Varga).

Ili kuendesha michoro, unahitaji kusanikisha maktaba za ESP8266 (kama ilivyoelezewa katika maeneo mengi kwenye wavuti). Katika visa vyote viwili (TCP na UDP) kuna seva na mchoro wa mteja kila moja. Mchoro gani umepakiwa kwa moduli gani haijalishi.

Shukrani

Kama ilivyoelezwa, michoro hiyo inategemea vipande na vipande vingi ambavyo nimepata kwenye wavuti. Sikumbuki tena ambapo nimepata nini, na nambari halisi ni nini au nilibadilisha nini. Kwa hivyo nilitaka tu kuishukuru jamii kubwa kwa ujumla huko nje kwa kuchapisha mifano yote mizuri.

Hatua ya 3: Michoro

Nambari hiyo ina michoro mbili kila moja (kama ilivyoelezewa), mchoro wa seva na mchoro wa mteja, kwa TCP na UDP kila moja.

Ilipendekeza: