Tartalomjegyzék:

ESP-01 vaku (ESP8266) USB-soros adapter nélkül Raspberry Pi használatával: 3 lépés
ESP-01 vaku (ESP8266) USB-soros adapter nélkül Raspberry Pi használatával: 3 lépés

Videó: ESP-01 vaku (ESP8266) USB-soros adapter nélkül Raspberry Pi használatával: 3 lépés

Videó: ESP-01 vaku (ESP8266) USB-soros adapter nélkül Raspberry Pi használatával: 3 lépés
Videó: Полный контроль над двигателем постоянного тока с помощью ESP8266 NodeMCU D1 Mini через Wi-Fi 2024, December
Anonim
ESP-01 vaku (ESP8266) USB-soros adapter nélkül, Raspberry Pi használatával
ESP-01 vaku (ESP8266) USB-soros adapter nélkül, Raspberry Pi használatával

Ez az útmutató tartalmazza az ESP8266 mikrokontroller programozásának megkezdését egy ESP-01 WIFI modulon. A kezdéshez csak annyit kell tennie (természetesen az ESP-01 modulon kívül)

  • Raspberry Pi
  • Jumper vezetékek
  • 10K ellenállás

Fel akartam újítani egy régi éjjeli lámpát modern Alexa vezérlésű LED éjszakai lámpává. Semmi különös csak be-/kikapcsolni hangutasítással. Rendeltem online a legegyszerűbb ESP-01 WIFI modult, relét és vezetéket LED-ekkel, és teljesen elfelejtettem megrendelni az USB-soros adaptert az ESP8266 mikrokontroller programozásához. De mivel nekem volt egy Raspberry Pi-m, és mind a Raspberry Pi-nek, mind az ESP-01-nek UART-érintkezői voltak, úgy gondoltam, hogy az RPi-m segítségével az ESP8266 programozható az adapter nélkül.

1. lépés: A Rapberry Pi konfigurálása

A Rapberry Pi konfigurálása
A Rapberry Pi konfigurálása

A Raspberry Pi 3 B+modellt használtam, azonban az utasításoknak más verziókra is működniük kell, különösen a B modellre.

Tehát először is - engedélyeznünk kell az UART -ot a Pi -n.

Lépjen az RPi konfigurációs beállításaihoz. Futtassa a terminál ablakban

$ sudo raspi-config

Lépjen az 5 interfész opcióra, majd válassza a P6 soros lehetőséget. Ezt követően megkérdezte: Szeretné, hogy egy bejelentkezési héj elérhető legyen soros kapcsolaton keresztül? Válassza ki, mivel nem az UART -ot akarjuk használni a Pi fej nélküli futtatásához, hanem más eszközökkel való kommunikációhoz, ezért a következő képernyőn, amikor megkérdezi, szeretné -e engedélyezni a soros port hardverét? válassza ki. Indítsa újra a Pi -t a kérésre. Az UART -nak most engedélyezni kell a Raspberry Pi 3 RX és TX pin soros kommunikációját. Megjegyzés: ezután egy új bejegyzésnek kell megjelennie

2. lépés: Csatlakoztassa az ESP-01-t a Raspberry Pi-hez

Csatlakoztassa az ESP-01-t a Raspberry Pi-hez
Csatlakoztassa az ESP-01-t a Raspberry Pi-hez

Most kezdünk mindent összekötni.

Először is azonosítsa az RPi 3.3V -os tápellátását és a GND (földelt) csapjait az ESP8266 mikrokontroller, a TXD (küldés) és az RXD (fogadó) érintkezők táplálásához, és két általános célú tűt az ESP8266 működtetéséhez (nagy vagy alacsony). Keresse meg a pinout elrendezést a pinout.xyz webhelyen, vagy írja be a terminált:

$ pinout

Másodsorban határozza meg az ESP-01 szükséges csapjait. De kezdetben meg kell értenünk az ESP-01 csapokat. Az interneten számos hasznos forrást találtam, amelyek segítenek ebben. Ez a legrövidebb, míg ez sokkal jobb magyarázatot ad. Röviden: 8 érintkező van, ezekből 7 -re lesz szükségünk, nevezetesen VCC táp és GND (földi) csapok a tápellátáshoz, TXD és RXD csapok a kommunikációhoz, és RST (reset), CH_PD (Chip Power Down, néha feliratos) CH_EN vagy chip engedélyezése) és GPIO0 a modul működtetéséhez. Általában az ESP8266 normál módban működik, de amikor feltölt egy kódot az ESP8266 -ba, ügyeljen arra, hogy vaku módban legyen. Normál vagy normál üzemmód esetén a modult áramhoz kell csatlakoztatni (nyilvánvalóan), de a CH_PD csapot is 10K-n keresztül kell csatlakoztatni a VCC-hez (ez az érték különböző módokon változik, 3K-ig értékeket találtam) ellenállás indításkor. a másik oldalon villogó vagy programozási módba lépéshez a GPIO0 érintkezőt földelni kell indításkor. Annak érdekében, hogy megakadályozza a GPIO0 -n keresztüli korlátlan áramlást, amikor földelve van, ajánlott a GPIO0 -t a földre csatlakoztatni valamilyen 300Ω - 470Ω kis ellenállású ellenálláson keresztül (erről bővebben itt). Az RST pin, ahogy a neve is sugallja, alaphelyzetbe állítja (vagy újraindítja) az MCU -t. Normál működés közben csatlakoztatható a VCC-hez egy 10K felhúzó ellenálláson keresztül, de földelni kell a mikrokontroller alaphelyzetbe állításához. Bár mindig lehet fizikai gombokat használni az RST és GPIO0 érintkezők földelésére (vagy akár manuálisan össze kell kötni a vezetékeket a gomb szimulálásához), sokkal kellemesebb élmény a Raspberry Pi csapok használata a modul RST és GPIO0 feszültségének magas és alacsony beállítására csapok. Szintén nincs szükség 10K és 470Ω ellenállásokra.

Most, hogy tisztában vagyunk az ESP-01 csapok sajátosságaival, elkezdhetünk mindent összekapcsolni. Az alábbi táblázatot használhatja referenciaként a fenti rajz mellett:

ESP-01 Raspberry Pi

  • VCC (3.3V) #1 -es tüske (3,3 V)
  • GND pin #6 (GND)
  • TXD #10 csap (RXD / BCM 15)
  • RXD pin #8 (TXD / BCM 14)
  • CH_PD pin #1 (3.3V)
  • RST #3 (BCM 2)
  • GPIO 0 pin #5 (BMC 5)

Csatlakoztassa a VCC tűt az utolsóhoz. A példány, amelyhez csatlakoztatta a VCC PIN-kódot, a Wi-Fi modul bekapcsol. A képernyő vagy a minicom használatával ellenőrizze, hogy az RPi és az ESP8266 tudnak -e kommunikálni az UART használatával (megjegyzés: előfordulhat, hogy először telepítenie kell a képernyőt vagy a minicom -ot, mivel úgy tűnik, hogy alapértelmezés szerint nincs telepítve a Raspbianra).

A képernyőfuttatás használata:

$ sudo screen /dev /serial0 115200

A minicom run használata:

$ sudo minicom -b 115200 -o -D /dev /serial0

Megjegyzés: sok online forrás azt javasolja, hogy csatlakozzon az ESP8266 -hoz a /dev /ttyAMA0 -n, de ez nem működik az RPi 3 vagy újabb verziója esetén (beleértve a nulla W -ot) az RPi dokumentáció szerint. Csatlakozzon a /dev /serial0 vagy a /dev /ttyS0 segítségével.

Miután belépett a képernyőbe vagy a minicomba, használja az AT parancsokat az ESP8266 kommunikációjához. Írja be az AT -t, majd nyomja le az Enter billentyűt, majd nyomja meg a Ctrl+J billentyűt a parancs elküldéséhez. Válaszul rendben kell lennie. Az elérhető AT parancsok listája megtalálható az espressiff.com webhelyen vagy csak itt.

Ha az eszközök fizikailag össze vannak kötve, és beszélnek egymással, akkor kezdjük el programozni az RPi GPIO csapokat, és végül magát az ESP8266 -ot.

3. lépés: Szoftver beállítása (Python az üzemeltetéshez és az Arduino IDE programozása)

RÉSZ 1. Python használata az ESP8266 módok közötti váltáshoz

Amint fentebb említettük, kényelmes az RPI GPIO csapjai az ESP8266 üzemmódok közötti váltáshoz. Írtam két alapvető python kódot, amelyek az ESP8266 -at normál vagy programozási módba állították.

Normál üzemmód: Ahhoz, hogy a mikrokontrollert normál üzemmódba állítsuk, csak be kell kapcsolnunk, és a CH_PD-t felhúzó ellenálláson keresztül csatlakoztatni kell a VCC-hez, de ahhoz, hogy az MCU-t programozásról normál üzemmódra kapcsoljuk, vissza kell állítanunk (gondoljuk újra). Ehhez az RPi-n röviden lehúzzuk az RPi GPIO-ját, amely az ESP-01 RST csapjához van csatlakoztatva (alapértelmezés szerint az alaphelyzetbe állított RPi csap HIGH). Milyen röviden? Számomra ez egy spekulatív kérdés. Próbálkozhat különböző időintervallumokkal, de azt tapasztaltam, hogy a 200-500 ms tökéletesen működik. Írja meg kommentben, ha van jobb ötlete. Mentse a kódot reset.py néven

#!/usr/bin/python

importálja az RPi. GPIO -t GPIO -ként importálási időt GPIO.setmode (GPIO. BOARD) # beállítja a GPIO azonosítást fizikai PIN -számok alapján pin kimenetként GPIO.output (resetPin, GPIO. LOW) # csökkenő feszültség az RST pin time.sleep (.2) # várjon.2 s GPIO.output (resetPin, GPIO. HIGH) # visszaállítja a feszültséget az RST pin GPIO -n. cleanup () # visszaállítja a csapokat az RPI -n, hogy megelőzze a futásidejű figyelmeztetéseket

  • Programozási mód: Ahhoz, hogy az MCU programozási módba kerüljön, be kell kapcsolnunk az ESP8266 -at földelt GPIO0 -val, vagy alternatívaként alaphelyzetbe kell állítanunk és GPIO0 -t földelnünk kell indítás közben (a feszültségcsökkenések pontos időtartama számomra még nem teljesen ismert, ezért ne legyünk szigorúak használt értékek alapján). Mentse el a kódot flash.py néven, vagy töltse le alább. A műveletek sorrendje a következő:

    • húzza le az RST csapot
    • húzza le a GPIO0 tűt
    • húzza fel az RST csapot
    • húzza fel a GPIO0 tűt

#!/usr/bin/python

RPi. GPIO importálása GPIO -ként importálási idő GPIO.setmode (GPIO. BOARD) # beállítja a GPIO azonosítást fizikai PIN -számok alapján GPIO.setup (resetPin, GPIO. OUT) # állítsa a reset pin -t kimenetként GPIO.setup (flashPin, GPIO. OUT) # a flash pin -t állítsa kimenetként GPIO.output (resetPin, GPIO. LOW) # csökkenő feszültség az RST pin időn. alvás (.2) # erre a várakozásra spekulatív GPIO szükséges. kimenet (flashPin, GPIO. LOW)) # indítsa el az ESP8266 indítását time.sleep (.5) # várjon, amíg az ESP8266 elindul GPIO.ouput (flashPin. GPIO. HIGH) # visszaállítja a feszültséget a GPIO pin -n

A terminálváltási engedélyekben:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

Mostantól kezdve, amikor programozási módba kell lépnie, futtassa a terminált:

$ python /flash.py

a kód feltöltése után a normál működési módba való belépéshez:

$ python /reset.py

Ezen a ponton érdemes frissíteni az ESP8266 firmware -t is. Számos online oktatóanyag létezik, hogyan kell ezt megtenni, ezért nem részletezem, hogyan kell ezt megtenni.

RÉSZ 2. Az Arduino IDE beállítása

ha már telepítette az Arduino IDE -t, akkor is érdemes végigolvasni a részt, és meggyőződni arról, hogy az IDE készen áll az ESP8266 használatára.

A Rapberry Pi rendszeren az Arduino IDE segítségével programozhatja ESP8266 készülékét. Kétféle módon telepítheti az IDE -t az RPi -re:

  • parancssorból a tárolókból az apt-get install használatával
  • töltse le és telepítse manuálisan az arduino.cc webhelyről.

Határozottan azt javaslom, hogy az utóbbi utat válassza. Az adattárakból származó IDE verzió elavultnak tűnik, és minden bizonnyal többet kell tennie, mielőtt készen áll az ESP8266 programozásának megkezdésére. A gondok elkerülése érdekében lépjen az Arduino.cc letöltési oldalára, és töltse le a Linux ARM verzióját. Következő kibontás és telepítés: Ha a letöltött fájl neve valahogy így néz ki: arduino-X. Y. Z-linuxarm.tar.xz, a letöltési mappában futtassa:

$ tar -xvf arduino-X. Y. Z-linuxarm.tar.xz

Ezzel ki kell tömörítenie a fájlt az arduino-X. Y. Z mappába. Fuss:

$ sudo./arduino-X. Y. Z/install.sh

Ennek telepítenie kell az IDE -t. A telepítés befejezése után indítsa el az IDE -t.

  • Az Arduino IDE -ből lépjen a Fájl> Beállítások menüpontra. Keresse meg a „További fórumkezelő URL -címek” lehetőséget a beállítások ablak alján. Írja be a https://arduino.esp8266.com/stable/package_esp8266com_index.json fájlt a „További fórumkezelő URL -ek” mezőbe, majd kattintson az „OK” gombra.
  • Lépjen az Eszközök> Tábla: XXX> Táblakezelő menüpontba. Az ablakban használja a keresést vagy görgessen lefelé, válassza ki az ESP8266 panel menüjét, majd kattintson a telepítés gombra. Várja meg, amíg a telepítés befejeződik, és zárja be az ablakot.
  • Ismét lépjen az Eszközök> Tábla: XXX elemre, és keresse meg az ESP8266 táblákat. Válassza az általános ESP8266 modult.

Most az IDE készen áll az ESP8266 programozására. Írja be vagy illessze be a kívánt kódot az IDE ablakba, és mentse el. Kattintson a Feltöltés gombra. A flash.py terminál futtatásakor ennek programozási módba kell állítania az alaplapot. Várjon néhány percet, amíg az IDE befejezi a fordítást és a feltöltést (megjegyzés: az ESP-01 rendszerint 2 LED-et tartalmaz, a kék LED villog a kód feltöltése közben), és futtassa a reset.py fájlt. Most az ESP-01 táblája készen áll a feladatok elvégzésére.

Ajánlott: