Az esp8266 wifi közvetlen programozása, csak szórakozás

Az esp8266 wifi közvetlen programozása, csak szórakozás

Az ESP8266 a választ "Wi-Fi-vel akarok valamit". Vannak azonban olyan mérnökök és amatőrök, akik nem hallottak erről a chipről, vagy hallottak, de nem igazán értik, mi az.

Az ESP8266 chip egy beépített RAM, ROM és Wi-Fi processzor, a külső pántok több olcsó rádiókészletből állnak. Kiderül olcsóbb, mint $ 4! Vagy 5 dollárért, ha chipet akarsz a füllel, ami tartalmazza a szükséges alkatrészeket. Teljesítményfelvétel 200 mA, kommunikációs tartomány kb. 300 m kiegészítő berendezés nélkül, antennával és mindegyik 4 km-rel.

Ismerd meg a vasat

A processzor alapértelmezett 80 MHz-es frekvenciára, amely akár 160 MHz-et is elérhet, a chip körülbelül 80 KB RAM DRAM-ot tartalmaz, és

35Kb nagysebességű IRAM.

Alapértelmezésben, ha vásárolni ezeket a kártyákat, sokan jönnek «AT» firmware-t, ami miatt könnyen kezelhető ESP8266, mint egy egyszerű vezeték nélküli modem ellenőrzött soros porton keresztül. És gyakran ez minden, de a bonyolultabb dolgok miatt valamilyen oknál fogva külső processzort használnak, bár a 8266 sokat tehet.

Számos mód létezik, amelyekben az ESP8266-as chip a rendszerindítás GPIO konfigurációjától függően indítható. Megbeszéljük a Flash és az árvíz elindítását az UART-on. Ezenkívül lehetőség van a firmware távoli letöltésére, de erre a másikra.

Az ESP8266 két működési módjára, amelyről beszélünk, a processzor alacsony GPIO15 értéket és magas GPIO2 értéket vár. A GPIO0 a mód kiválasztásához használható. Normál működés közben ellenállást kell használnia a GPIO0 felemeléséhez. Ezzel az ESP8266-on belül az EEPROM-csipből az IRAM-ba küldött adatok elindulnak és betöltik a programot. Ha alacsony szintű GPIO0-t állítunk be, az ESP8266-on belül az indító ROM (ROM) átveszi önmagát, és a chip elkezd kommunikálni az UART-on keresztül. Ezt a boot-ROM-ot használva tölthetjük programunkat flash memóriával.

Az ESP8266 számos magas adatátviteli sebességet támogat, például 454.800-as sebességgel, módosíthatja a programot és nagyon gyorsan tesztelheti. Hivatalos eszköz betöltése a firmware a chip - XTCOM, de vannak külső fejlesztő például esptool.py script automatizálja casting programokat. Ezenkívül, ha ez a parancsfájl befejezi a csíptetést, akkor is, ha a GPIO0 alacsony szintű, ezért a firmware-t elindítja. Ez azt jelenti, hogy a fejlesztés során a GPIO0-t a földre húzhatja.

Az esp8266 wifi közvetlen programozása, csak szórakozás

Tehát a fejlesztői eszköz a következőkből áll:

  1. Kapcsoló vagy GPIO0 gombok a földön, és felhúzó ellenállás VCC
  2. A GPIO2 és a CH_PD a VCC-hez csatlakozik
  3. GPIO15 → GND
  4. Feszültségátalakító 5V USB-TTL UART adapterrel 3.3V-ig az ESP8266-hoz

Összeszerelési eszközök

Miután összeállította eszköztárát, összeállíthatja a firmware-t.

Az Espressif az SDK szabadon bocsátja az Espressif GPL licence alá. Az SDK példákat és címeket tartalmaz a ROM, valamint az Espressif könyvtárak számára. Fontos megjegyezni, hogy van egy könyvtári közösség, de eddig a kódja nem éri el a könyvtárak Espressif szintjét. Talán ez megváltozik a jövőben.

Az Espressif cég fordítója nem osztja meg. Azonban a Google és a hivatalos fordító és fejlesztői környezet, az Eclipse alapján.

programozás

Az ESP8266 programozásakor több pont is szükséges.

Először is vannak olyan funkciók, amelyek már beépülnek a ROM-ba, és amelyeket használhat. Ez azt jelenti, hogy nem kell újra végrehajtani, például MD5 vagy HMAC, SHA1, SPI, UART függvények, függvények lebegőpontos, AES, parancsok dolgozó memóriát, a printf, az alacsony szintű input-output eszközök, és még egy rendezvényszervező mód valós időben, és ami a legfontosabb, ... 802.11!

A chip ROM-on található funkciók teljes listája megtalálható az eagle.rom.addr.v6.ld fájlban.

Ezek a funkciók a ROM-ban, ez nem minden API. Számos további eszközt látunk. Az ESP8266 hozzáférési pontként vagy ügyfélként (vagy mindkettőként) működhet. Alapértelmezés szerint az ESP8266 saját AP IP-jével és SSID-jével rendelkezik. Vagyis, amikor kikapcsolja a dobozból, a natív API be van töltve, a chip a saját DHCP-kiszolgálóján fogadó üzemmódban indul. A Wi-Fi hálózatok beolvasásával megtalálható, a hozzáférési pont neve lesz az "ESP8266" karakterlánc.

Egyes vélemények szerint az AT parancsokkal rendelkező firmware hibás. Opcióként NodeMcu is létezik - ez a firmware képes értelmezni a Lua nyelv parancsát. És nem csak a terminálon, mint például az AT parancsok, hanem fájlokat hoznak létre az ESP8266 flash memóriában és végrehajtják azokat.

Az ESP8266 csatlakoztatása egy hozzáférési ponthoz 8 sornyi kóddal

Miután az ESP8266 indításra került, és szüksége van rá, hogy csatlakozzon egy meglévő WIFI hálózathoz, írja be a következő egyszerű kódot:

Adatok küldése - espconn_sent. Zárja be a kapcsolatot - espconn_disconnect. Amikor adatokat kap, akkor átkerül a recv visszahíváshoz.

Valószínűleg észrevette, hogy az ICACHE_FLASH_ATTR irányelvet használták. Mint emlékszünk, az IRAM-nak nincs sok memóriája. Ez az irányelv menteni fogja a funkciót a flash memóriában. A betöltés után a flash utasítások gyorsítótárba kerülnek, de nem túl hosszúak.

A GPIO-val való munkavégzés

A cikk utolsó kulcsa GPIO.

A csapok további belső húzással (GPIO0..15) és lefelé húzható ellenállásokkal (GPIO16) rendelkeznek. Forrás. Mindegyik lehet bemenet vagy kimenet. Vannak szoftverfunkciók a GPIO használatához.

Meg kell hívni gpio_init (...), néhány makrót, mint PIN_PULLDWN_DIS (...), PIN_PULLUP_EN (...) és mások találtak az SDK. Beállíthatja a bemeneteket / kimeneteket a gpio_output_set segítségével. Sok a GPIO is több funkciójuk van, ezek közül néhány alapértelmezés szerint engedélyezve vannak, úgy, hogy például, ha a letöltés, akkor nem csinál semmit a GPIO12 és GPIO14, amíg azok választották GPIO.