ESP8266

ESP-01

Az ESP név a sanghaji székhelyű kínai gyártóra, az Espressif Systems-re utal. Ők fejlesztették ki ezt az "önjáró" kommunikációs modult, mely jellemzően az "alap" Wifi kommunikációján kívül több más rendszert és kommunikációs lehetőséget is integrál, például a Bluetooth|Bluetoooth]]-t vagy a LoRaWAN-t.

A modulok így egy Wi-Fi csipet és egy MCU-t (mikrokontroller egység) foglalnak magukba, és szinte az összes ismert automatizálási rendszer integrálta már ezeket, így az Arduino is.

A modulok TCP/IP protokollja egyszerű, többnyire 2 betűs Hayes- stílusú AT parancsokkal vezérelhető, a dokumentációját eredetileg a gyártó csak kínai nyelven adta ki, nem kis közösségi munka volt lefordítani "emberi" nyelvekre. A helyzet szerencsére idővel megváltozott, a gyártó parancs-dokumentációja itt található: https://www.espressif.com/sites/default/files/documentation/4a-esp8266_at_instruction_set_en.pdf

A modul több kiadásban kerül forgalomba, ezek közül néhány:

  • ESP-8266
  • - ESP-01
  • ESP-32

A modulok 3,3V-os TTL jelszinten üzemelnek, az 5V-os rendszerekhez közvetlenül nem mindegyik köthető. Az újabb modulokon a belső memória mérete az alap 512k-ról már legalább 1MB-re emelkedett.

ESP8266 Az ESP8266 támogatja az APSD-t a VoIP alkalmazásokhoz és a Bluetooth kompatibilis interfészeket is, önkalibráló RF-t tartalmaz, így nem igényel külső RF részt.

A modulokhoz nagyon sok gyártó fejlesztett fejlesztői board-okat, melyek viszonylag egyszerűen alkalmazhatók a Web kliensnek vagy szervernek , WiFi hozzáférési pontnak:

Sparkfun ESP8266 Thing Development Board Hookup Guide
https://learn.sparkfun.com/tutorials/esp8266-thing-development-board-hookup-guide

A Wemos board-ok is a ESP8266-t integrálják:

A github könyvtár az ESP8266-os modulokhoz: https://github.com/esp8266/arduino A fenti könyvtár funkciói:

  • WiFi kommunikáció TCP és UDP használatával
  • HTTP, mDNS, SSDP, és DNS szerver-alkalmazások
  • OTA frisítés
  • flash memória és SD kártya integrálása
  • SPI, I²C és Szervó kommunkáció

ESP8266 BOOT opciók

Az ESP8266 bootolási eljárását a bekapcsolás időpontjában állított 0, 2 és 15 pin-ekkel lehet kiválasztani:

GPIO15
(MTDO)
GPIO0 GPIO2 Mód Leírás
LOHIHIFlashBootolás az SPI Flash-ről (Alapértelmezett mód, a GPIO6-GPIO11 használatával)
LOLOHIUARTProgramozás-mód az UART-on keresztül (TX/RX)
HI--SDIOBootolás az SD-kártyáról

ESP8266 felhúzóellenállások

A GPIO0 és GPIO2 a Vcc felé, a GPIO15 a GND felé igényel felhúzóellenállásokat. Ezeknek az értéke 2K és 10K között lehet. A legegyszerűbb megoldás az arany középút 3K3-as ellenállások alkalmazásával.

A fentiek nyilván bekorlátozzák a szabadon felhasználható PIN-ek alkalmazását: A GPIO0 és GPIO2 aktív LOW, míg a GPIO15 aktív HIGH pinként alkalmazható, lásd a lenti példát (a kép rákattintva nagyítható):

ESP8266 felhúzóellenállások

ESP8266 oldalak és adatlapok

ESP8266 Github

ESP-01

Ez a modul az ESP 8266 sorozat legkisebb és egyben legolcsóbb egysége. Az ESP-01 árának megfelelően kissé korlátozott szolgáltatásokat nyújt, messze nem alkalmas minden "AT" parancs fogadására és feszültségszabályzás hiányában csak a 3,3V-os üzemre alkalmas - a tápellátásáról gondoskodni kell.

Az ESP-01 modul technikai jellemzői

  • 2 digiális pin találató rajta (GPIO0 és GPIO2)
  • wifi b / g / n támogatás
  • 8 MB külső QSPI flash memória (1MByte)
  • 32 bites Tensilica Xtensa LX106 processzor (80 MHz)
  • 3.3V tápfeszültség (vigyázat, az áramfelvétele akár 300mA-ig is emelkedhet)
  • NYÁK-ra integrált antenna
  • 2 * 4 PIN

Az ESP-01 PIN kiosztása

Az ESP-01 PIN kiosztása

nrpinleírás
1GNDGrund
2GPIO1 / U0TXDSerial UART TX port
3GPIO2Szabadon felhasználható PIN, felfutáskor a boot-eljárást választja ki (lásd fent), Vcc-re kell felhúzni egy (2k-10k) ellenállással
4CHIP_EN / CH-PDChip engedélyezés. HI: be, a chip működik, LO: kikapcsol, alacsony áramfelvétel
5GPIO0 / SPI_CS2Szabadon felhasználható PIN, felfutáskor a boot-eljárást választja ki (lásd fent), Vcc-re kell felhúzni egy (2k-10k) ellenállással
6EXT_RSTBKülső RESET szignál. LO: Reset aktív, HI: nincs reset
7GPIO3 / U0RXDSerial UART RX port
8VccTáp: 3,3V (A 3,3V a maximum, ennél többet nem visel el)
COMM LEDkék színű, a kommunikációt jelzi
POWER LEDVörös színű, a modul bekapcsolt állapotát jelzi
  • A jellemző pin áram 6mA, de maximum 12mA lehet
  • Alvó módhoz (SLEEP-MODE) a GPIO16-ot az EXT-RSTB-re kell kötni. Ébresztéshez a lekötés után a GPIO16-ot LOW-ban kell hagyni.
  • Újraindításhoz (RESET) a GPIO15-öt LOW, a GPIO16-ot HIGH-ba kell kapcsolni.
  • A táp maximuma 3,6 V lehet, efölött a modul tönkremegy.
  • Teljes áramfelvétel maximuma 100 mA.

Az ESP-01 Arduino összekötése

Az ESP-01 Arduino összekötése

Alkatrészjegyzék:

  • Arduino UNO, vagy valami hasonló vezérlő
  • ESP-01 modul
  • 2 x 3K3kΩ (1..10kΩ) ellenállás a CH_PD és a RESET portok felhúzásához
  • 3 x 220Ω ellenállás az UART feszültségosztóhoz
  • 3,3 V-os szabályozott tápegység az ESP8266-hoz (nem érdemes a tápot az Arduino 3,3 V-os csatlakozójáról lekötni, mert az ESP8266-nek nagy az áramfelvétele)
  • breadboard

A külső 3,3V-os tápegység grundját mindenképpen érdemes az Arduino grundjával összekötni, így a TTL jelszintek nem fognak egymáshoz képest elcsúszni. Az Arduino TX kommunikációs portját egy feszültségosztón keresztül kell az ESP-hez kötni, az Arduino 5V-os TTL-jét 3,3V-ra kell mérsékelni. Ellenkező irányban ez nem szükséges, a 3,3V HI még értelmezhető 5V HI-nak is (lásd TTL jelszintek). A CH_PD és RESET portok LO aktiv bemenetek, ezeket (3K3kΩ-os (1..10kΩ)) felhúzóellenállásokkal kell HI szinte állítani.

http://www.deviceplus.com/how-tos/arduino-guide/esp8266-setup-tutorial-using-arduino/

ESP-01 "Deep Sleep"

A mélyalvás funkció, ami sokkal alacsonyabb fogyasztást eredményez stand-by módban, hivatalosan nem érhető el az ESP-01 modulhoz, bekapcsolásához egy kicsit hekkelni kell, a GPIO16 portot közvetlenül az IC-n kell lekötni a RESET (EXT_RSTB) pinhez, így:

ESP-01 "Deep Sleep"

ESP-01 illesztőmodulok

Az illesztőmodulok egyrészt az 5V-os tápból 3,3V-os, az ESP-t nem leégető tápot konvertálnak, de ami fontosabb, az 5V-os TTL TX, RX jeleket is automatikusan (ide-oda) 3,3V-ra alakítják. Nyilván, ezt a feladatot meg lehet oldani ellenállásokkal is, de mennyivel egyszerűbb "konyhakészen" venni ezeket az átalakítókat.

ESP-01 UART illesztőmodulESP-01 USB illesztőmodul
- 5V / 3.3V tápfeszültség konverzió
- 5V / 3.3V TX / RX konverzió
- UART modulhoz csatlakoztatható
- 5V / 3.3V tápfeszültség konverzió
- 5V / 3.3V TX / RX konverzió
- USB (serial) csatlakozó
- Kondenzátor a dinamikus áramfelvételekhez
- CH340 UART-IC (PC driver kell hozzá)
ESP-01 UART illesztőmodulESP-01 USB illesztőmodul

Az illesztőmodulokon keresztül a PC-ESP-01 kommunikáció (teszt) legegyszerűbben a Termite programmal valósítható meg.

Az ESP-01 szoftver

Az alábbi szoftverrel érdemes tesztelni az ESP modult. A parancsokat az IDE soros monitoron keresztül lehet megadni, és a válaszok is oda fognak megérkezni. A biztos kommunikáció céljából a sebességét érdemes az alapértelmezett 11.500 baud-ról 9.600-ra visszavenni. Ezt a modulon a "AT+IPR=9600" paranccsal lehet megtenni. A kommunikációhoz az IDE soros monitoron a sorvég figyelést “Both NL & CR“ módba kell állítani.

 const   byte   rxPin   =   2 ;   // Wire this to Tx Pin of ESP8266 
 const   byte   txPin   =   3 ;   // Wire this to Rx Pin of ESP8266 
 
 // We'll use a software serial interface to connect to ESP8266 
 SoftwareSerial  ESP8266   ( rxPin ,   txPin ) ; 
 
 void   setup ( )   { 
   Serial . begin ( 9600 ) ; 
 
 // You may need to uncomment this block for the first run: 
 //  ESP8266.begin(115200); // Change this to the factory baudrate used by ESP8266 
 //  delay(1000); 
 // 
 //  Serial.println("Setting BAUDRATE to 9600"); 
 //  ESP8266.println("AT+IPR=9600"); 
 // 
   ESP8266 . begin ( 9600 ) ;  
  
 } 
 bool   okReceived   =   false ; 
 
 void   loop ( )   { 
 
   if   ( Serial . available ( )   >   0 ) 
   { 
     String   command   =   Serial . readStringUntil ( '\n' ) ; 
     Serial . println ( "Command Sent: "   +   command ) ; 
     Serial . println ( ) ; 
     ESP8266 . println ( command ) ; 
   } 
 
   int   responseCounter   =   0 ; 
   if   ( ESP8266 . available ( )   >   0 ) 
   { 
     while   ( ESP8266 . available ( )   >   0 ) 
     { 
       if   ( responseCounter   ==   0 ) 
       { 
         Serial . println ( "Response Received:" ) ; 
       } 
      
       String   response   =   ESP8266 . readStringUntil ( '\n' ) ; 
       Serial . println ( response ) ; 
       responseCounter ++ ; 
     } 
     Serial . println ( ) ; 
     Serial . println ( "============" ) ; 
     Serial . println ( ) ; 
   } 
 
  
 } 

Az ESP-12 PIN kiosztása

Geekcreit ESP32Az ESP32 az ESP8266 utódja (2016-ban került kiadásra), habár az előd, a ESP8266 sem tekinthető "kifutott" modellnek. Ezen a modulon az integrált Wi-fi mellett egy dual-mode Bluetooth is megtalálható. Meg még egy csomó minden más:

CPU:

  • Xtensa kétmagos (vagy egymagos) 32 bites LX6 mikroprocesszor, amely 160 vagy 240 MHz-en üzemel és akár 600 DMIPS
  • Ultra alacsony teljesítményű (ULP) társprocesszor

Memória:

  • 520 kB SRAM

Vezeték nélküli kapcsolat:

  • Wi-Fi: 802.11 b / g / n / e / i
  • Bluetooth: v4.2 BR / EDR és BLE

Üzemmódok:

  • AP, STA, vagy AP+STA

Periferikus interfészek:

  • 12 bites SAR ADC legfeljebb 18 csatorna
  • 2 × 8 bites DAC-ok
  • 10 × érintésérzékelő ( kapacitív érzékelő GPIO)
  • Hőmérséklet szenzor
  • 4 × SPI
  • 2 × I²S interfész
  • 2 × I²C interfész
  • 3 × UART
  • SD / SDIO / CE-ATA / MMC / eMMC kártyavezérlő
  • SDIO / SPI slave vezérlő
  • Ethernet MAC-cal és Precision Time Protocol-lal
  • CAN 2.0 busz
  • Infravörös távirányító (TX / RX, legfeljebb 8 csatorna)
  • Motor PWM
  • LED PWM (max. 16 csatorna)
  • Hall effekt érzékelő
  • Ultra alacsony teljesítményű analóg előerősítő

https://esp-idf.readthedocs.io

Az ESPlorer egy multiplatform eszköz / program, mellyel az ESP8266 funkciói elérhetők és minden AT parancs kiadható, tesztelhető.

Elérése: https://github.com/4refr0nt/ESPlorer
Bővebb leírása: http://www.esp8266.com/viewtopic.php?f=22&t=882