Az Arduino Nano összekapcsolása az ESP8266 Wifi modullal

Nemrég kezdtem el játszani az Arduinosszal néhány érzékelő csatlakoztatásához. Arduino Nano készülékkel mértem a hőmérsékletet, a páratartalmat, a légnyomást és a fényszintet. vezeték nélkül egymáshoz 433 MHz-en keresztül.

Mindez elég jól működik, de a 433 MHz-es kommunikáció nem éppen a legmegbízhatóbb (gyakran hiányzik egy adás). Amikor az ESP8266 modulba botlottam, ez a kommunikáció optimális megoldásának tűnt. Mennyire jó lenne, ha csak HTTP-hívás útján tudnám kihúzni az információkat a Raspberry Pi-től?

Miután sok órán át játszottam, sokféle firmware-t töltöttem fel, egyre frusztráltabb lettem, mert nem tudtam rábírom bármire, végre egy ilyen módon csatlakoztatott FTDI modulon keresztül működik:

írja be a kép leírását itt

MB102-es tápmodult használok az ESP8266 által előírt 3.3v biztosításához. Kiderült, hogy a megfelelő válasz elérése érdekében csatlakoztatnia kell a földet az MB102-től az FTDI modul földjéhez. Ezt követően tudtam küldeni AT parancsokat és megkapni a megfelelő válaszokat. Akár az otthoni Wifi-hez is csatlakoztathatnám.

A következő dolog, amit tenni akarok, az Arduino-hoz kell csatlakoztatni. Találtam erre egy nagyon egyszerű sémát ( http://blog.huntgang.com/2015/01/20/arduino-esp8266-tutorial-web-server-monitor-example/ ), ahol az RX-et TX-hez, a TX-t pedig az RX-hez csatlakoztatja. Az MB102 használatával így csatlakoztattam:

ide írja be a kép leírását

Nyilvánvalóan képesnek kell lennem feltölteni egy üres vázlatot az Arduino-ra, majd a soros monitor segítségével újra érzékelni az AT parancsot, pontosan ugyanúgy, ahogy az FTDI modul használatakor tettem.

A probléma az, hogy így semmit sem kapok. Még a saját AT-parancsokat sem látom a konzolon. Látom, hogy az ESP8266 minden alkalommal villog, amikor egy parancsot elküldök (még azt is látom, hogy még mindig csatlakozik az útválasztómhoz, valószínűleg emlékezett az FTDI-n keresztül küldött információkra.) .?)

A kérdés az, hogy mit tévedek? Olvastam néhány bejegyzést arról, hogy az Arduino TX-je szintén 5v-os, és hogy valamit tennie kell, hogy visszatérjen a 3.3v-ra, de ott sok oktatóanyag is, amely szerint nincs szükség rá.

Válasz

Ezekkel a devucikkal a legegyszerűbb módja a csatlakozás őket egy tartalék Arduino-tűhöz, és használja a SoftwareSerialt a kommunikációhoz (kivéve, ha az Arduinók egyikét több UART-mal használja). az ESP8266 beállításához. Jelenleg 115200 baudon szállítanak. Használhatja a hardveres UART-t a (0, 1) csapokon, de az Arduino újraprogramozása azt jelenti, hogy & leválasztja az ESP-t minden alkalommal ideiglenesen, és elég gyorsan megöregszik.

Íme, mit csinálok új ESP-kkel (Ha újra felvillantotta az ESP-jét, először le kell töltenie az AT utasításkészlet emulátort, és először újra fel kell villantania):

# To configure a new ESP module: # Connect the ESP and the FTDI as in your top diagram, set your # terminal-emulator to 115200 baud, and enter the following: AT # ESP should respond "OK" AT+RST # Resets the ESP AT+UART_DEF=9600,8,1,0,0 # Sets ESP UART: 9600,N,8,1,no flow ctl # Now change the terminal emulator baud rate to 9600 AT+CWMODE=1 # Set ESP to station mode (client) ATE0 # Set ESP"s echo off AT+CWLAP # List access points - after a short pause # the ESP returns a list of WiFi access points 

Jövőbeni hivatkozás céljából itt talál egy linket az ESP8266 AT utasításkészlethez .

Frissítés 2020. június: A fenti link megszakadt, most már javítva. A dokumentációt a Espressif github-fiókján is megtalálhatja (online olvasható, de nem pdf, ettől a dátumtól kezdve).

Hozzászólások

  • Most jöttem rá, hogy ezt a kérdést felemésztették a 6 hónapja megválaszolatlan kérdések archívumából. . Nos, ez a válasz talán most vagy hamarosan másnak segít.

Válasz

Lehet, hogy probléma a Nano FTDI chipről az RX / TX és az ESP8266 átviteli sebességével. Megszakadt a vázlat feltöltésekor?

Mit szólna, ha inkább megpróbálja ezt ?

Egészségedre!

Megjegyzések

  • Amikor az ESP8266-tal dolgozom, ez 115200 baudon működik, minden más csak szemetet ad . ‘ kipróbáltam a kódot a linkelt blogról (csak az átviteli sebességet változtattam), látom, hogy ‘ parancsot küld az ESP8266-nak (kék fény villog), de nem sikerül, amikor megpróbálja végrehajtani a Serial.find (” > ) parancsot. Nem látok semmilyen kimenetet az ESP8266-ból sem. Feltöltés közben leválasztottam az ESP8266-ot.

Válasz

Itt jó oktatóanyagba botlott, kipróbálta és megcsinálja munka: https://blogs.msdn.microsoft.com/abhinaba/2016/01/23/esp8266-wifi-with-arduino-uno-and-nano/

Megjegyzések

  • Ez a kiváltott CIOBAUD parancs kivételével működni fog.Az összes UART-függvény jelenlegi parancsa: AT+UART_DEF=<baud>,<databits>,<stopbits>,<parity>,<flowcontrol>, vagy AT+UART_DEF-9600,8,1,0,0, hogy kompatibilis legyen a SoftwareSerial programmal. Cserélje le a ” _DEF ” szöveget a következőre: ” _CUR ” ha ez a változás csak a munkamenetre vonatkozik; az első parancs a bekapcsolást alapértelmezetté teszi.
  • Bővítheti az adott blog információit ebbe a válaszba, ha a link elhal, de azért is, hogy jobb válasz legyen

Válasz

Igen, ha különböző áramforrásokat használ, akkor a földeket mindig össze kell kapcsolni, különben a táblák nem tudják, mi nulla volt.

= “b4b946d155”>

)

Az ESP8266 TX-je 3.3v, az Arduino RX-je pedig 5V, és ennek kezeléséhez szintváltóra lesz szükség. ugyanazt használja, mint amit fent felsoroltunk, mert 4 magas (5v) jelet 4 alacsony (3,3v) jelgé alakíthat.

Az emberek azt mondják, hogy ellenállásokkal is megteheti, de azt is olvastam, hogy ne teljesítsen elég jól a gyorsan váltakozó digitális jelek kezeléséhez (tehát a soros 300 Baud rendben lehet, de nem 115000 :))

Emberek a Azt is mondjuk, hogy nincs szükség szint konverterekre. Ezek az igaz dolgok egy ideig működhetnek nélkülük, de előbb-utóbb valami felbukkan. A feszültség növelése felgyorsítja a folyamatot, így el tudja képzelni, mi fog történni, ha csatlakoztat egy 230 V-os tápfeszültséget közvetlenül egy USB-eszközre.

Végül: tudod, hogy az ESP8266 egy 80 / 160MHz-es processzor, 256 KB RAM-mal, ha összehasonlítod ezt magaddal, Arduino-val, mintha számítógépedet programoznád a telefonodon keresztül. kipróbálhatja az ESP8266 csatlakoztatását egy FTDI modulon keresztül, és beprogramozhatja az Arduino C-ben található Arduino IDE-n keresztül. Ez sokkal könnyebb, mint ez a kapcsolat.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük