Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-23 15:06
Tento návod vás prevedie tým, ako začať programovať mikrokontrolér ESP8266 na module ESP-01 WIFI. Všetko, čo potrebujete, aby ste mohli začať (okrem modulu ESP-01, samozrejme) je
- Malinový koláč
- Prepojovacie vodiče
- 10K odpor
Chcel som zrekonštruovať starú nočnú lampu na modernú nočnú lampu LED ovládanú Alexom. Nie je nič fantastické, iba ho zapnúť/vypnúť pomocou hlasového ovládania. Objednal som online najjednoduchší modul ESP-01 WIFI, relé a drôt s LED diódami, a úplne som zabudol objednať adaptér USB-sériový na programovanie mikrokontroléra ESP8266. Ale pretože som mal Raspberry Pi a Raspberry Pi aj doska ESP-01 mali kolíky UART, zistil som, že môžem použiť svoj RPi na programovanie ESP8266 bez adaptéra.
Krok 1: Konfigurujte Rapberry Pi
Použil som Raspberry Pi 3 Model B+, návod by však mal fungovať na iných verziách, najmä na modeli B.
Najprv teda - musíme povoliť UART na Pi.
Prejdite na nastavenia konfigurácie RPi. V okne terminálu spustite
$ sudo raspi-config
Prejdite na 5 možností rozhrania a potom vyberte P6 Sériové. Potom ste sa pýtali, či chcete, aby bol prihlasovací shell prístupný cez sériové číslo? vyberte, pretože nechceme používať UART na spustenie systému Pi bez hlavy, ale na komunikáciu s inými zariadeniami, preto na nasledujúcej obrazovke na otázku Chcete, aby bol povolený hardvér sériového portu? vyberte. Podľa výzvy reštartujte Pi. Teraz by mal byť UART povolený pre sériovú komunikáciu na kolíku RX a TX Raspberry Pi 3. Poznámka: Potom by sa mal objaviť nový záznam enable_uart = 1 na konci súboru /boot/config.txt.
Krok 2: Pripojte ESP-01 k Raspberry Pi
Teraz pristúpime k zapojeniu všetkého dohromady.
Najprv na svojich RPi identifikujte napájacie 3,3 V a kolíky GND (uzemnenie) na napájanie mikrokontroléra ESP8266, piny TXD (vysielanie) a RXD (príjem) na komunikáciu a dva piny na všeobecné použitie na ovládanie ESP8266 (piny, ktoré je možné nastaviť buď vysoko alebo nízka). Vyhľadajte usporiadanie pinov na pinout.xyz alebo napíšte do terminálu:
$ pinout
Za druhé, identifikujte potrebné kolíky na ESP-01. Na začiatku však musíme porozumieť kolíkom ESP-01. Na internete som našiel množstvo užitočných zdrojov, ktoré vám v tejto súvislosti pomôžu. Tento je najkratší, zatiaľ čo tento poskytuje oveľa lepšie vysvetlenie. Stručne povedané: Existuje 8 pinov, budeme ich potrebovať 7, konkrétne napájacie VCC a GND (uzemňovacie) piny pre napájanie, piny TXD a RXD pre komunikáciu a RST (reset), CH_PD (Chip Power Down, niekedy označené) CH_EN alebo povolenie čipu) a GPIO0 na ovládanie modulu. ESP8266 zvyčajne pracuje v pravidelnom režime, ale pri odosielaní kódu do ESP8266 je dôležité, aby bol v režime blesku. Pre normálny alebo normálny prevádzkový režim musí byť modul pripojený k napájaniu (samozrejme), ale tiež pin CH_PD musí byť pripojený k VCC cez 10K (táto hodnota sa líši v rôznych zdrojoch, zistil som hodnoty až do 3K) odpor pri štarte. na druhej strane, aby ste vstúpili do blikajúceho alebo programovacieho režimu, musíte pri štarte uzemniť pin GPIO0. Aby sa zabránilo neobmedzenému toku prúdu cez GPIO0, keď je uzemnený, odporúča sa pripojiť GPIO0 k zemi pomocou odporu s nízkym odporom 300Ω - 470Ω (viac o tom tu). Kolík RST, ako naznačuje názov, resetuje (alebo reštartuje) MCU. Počas normálnej prevádzky môže byť pripojený k VCC pomocou 10K výsuvného odporu, ale na resetovanie mikrokontroléra by mal byť uzemnený. Aj keď je vždy možné použiť fyzické tlačidlá na uzemnenie pinov RST a GPIO0 (alebo dokonca manuálne spojiť drôty na simuláciu tlačidla), je oveľa príjemnejšie použiť piny Raspberry Pi na nastavenie vysokého a nízkeho napätia na moduloch RST a GPIO0 špendlíky. Potom nie sú potrebné ani odpory 10K a 470Ω.
Teraz, keď si uvedomujeme zvláštnosti pinov ESP-01, môžeme začať spájať všetko dohromady. Nasledujúcu tabuľku môžete použiť ako referenciu spolu s vyššie uvedeným výkresom:
ESP-01 Raspberry Pi
- VCC (3,3 V), kolík č. 1 (3,3 V)
- GND pin #6 (GND)
- TXD pin #10 (RXD / BCM 15)
- RXD pin #8 (TXD / BCM 14)
- CH_PD pin #1 (3,3 V)
- Kolík RST č. 3 (BCM 2)
- GPIO 0 pin #5 (BMC 5)
Pripojte pin VCC ako posledný. Inštancia, kedy ste pripojili VCC pin svoj modul Wi-Fi, sa zapne. Pomocou obrazovky alebo minicom skontrolujte, či môžu RPi a ESP8266 komunikovať pomocou UART (poznámka: možno bude potrebné najskôr nainštalovať obrazovku alebo minicom, pretože sa zdá, že v predvolenom nastavení nie sú nainštalované na Raspbian).
Použitie spustenia obrazovky:
$ sudo screen /dev /serial0 115200
Použitie spustenia minicom:
$ sudo minicom -b 115200 -o -D /dev /serial0
Poznámka: mnoho online zdrojov navrhuje pripojenie k ESP8266 na /dev /ttyAMA0, ale to nefunguje s RPi 3 alebo novším (vrátane nulového W) podľa dokumentácie RPi. Pripojte sa namiesto toho cez /dev /serial0 alebo /dev /ttyS0.
Keď ste zadali obrazovku alebo minicom, pomocou príkazov AT komunikujte s ESP8266. Zadajte AT, potom stlačte Enter a potom stlačením klávesov Ctrl+J odošlite príkaz. Odpoveď by ste mali dostať v poriadku. Zoznam dostupných AT príkazov nájdete na espressiff.com alebo len tu.
V prípade, že sú zariadenia fyzicky prepojené a hovoria si navzájom, môžeme sa pustiť do programovania pinov RPi GPIO a nakoniec samotného ESP8266.
Krok 3: Nastavenie softvéru (Python na ovládanie a Arduino IDE na programovanie)
ČASŤ 1. Použitie pythonu na prepínanie režimov ESP8266
Ako je uvedené vyššie, na prepínanie režimov prevádzky ESP8266 je vhodné použiť GPIO piny RPI. Napísal som dva základné kódy pythonu, ktoré uviedli ESP8266 do bežného alebo programovacieho režimu.
Pravidelný režim: Na uvedenie mikrokontroléra do normálneho prevádzkového režimu ho stačí napájať a pripojiť CH_PD pomocou výsuvného odporu k VCC, ale na prepnutie MCU z programovania do normálneho režimu ho musíme resetovať (premýšľať o reštarte). Aby sme to urobili na RPi, krátko stiahneme GPIO RPi pripojené k pinu RST na ESP-01 (v predvolenom nastavení je kolík RPi, ktorý som použil na resetovanie, nastavený na HIGH). Ako krátko? Pre mňa je to špekulatívna otázka. Môžete skúsiť rôzne časové intervaly, ale zistil som, že 200 - 500 ms funguje dobre. Napíšte do komentárov, ak máte lepší nápad. Uložte kód ako reset.py
#!/usr/bin/python
import RPi. GPIO as GPIO import time GPIO.setmode (GPIO. BOARD) # sets GPIO identification by physical pin numbers resetPin = 3 # identify RPi physical pin connected to ESP8266 RST pin GPIO.setup (resetPin, GPIO. OUT) # set reset pin ako výstup GPIO.output (resetPin, GPIO. LOW) # pokles napätia na kolíku RST time.sleep (.2) # počkajte 0,2 s GPIO.output (resetPin, GPIO. HIGH) # obnovte napätie na RST pine GPIO. cleanup () # reset pinov na RPI, aby sa zabránilo budúcim upozorneniam za behu
-
Programovací režim: Aby sme MCU uviedli do programovacieho režimu, musíme napájať ESP8266 s uzemneným GPIO0, alebo ho alternatívne resetovať a uzemniť GPIO0 počas zavádzania (presná dĺžka poklesu napätia mi opäť nie je celkom známa, takže nebuďte striktne podľa použitých hodnôt). Uložte kód ako flash.py alebo ho stiahnite nižšie. Postupnosť akcií je nasledovná:
- potiahnite kolík RST
- potiahnite kolík GPIO0
- vytiahnite kolík RST
- vytiahnite kolík GPIO0
#!/usr/bin/python
importovať RPi. GPIO ako čas importu GPIO GPIO.setmode (GPIO. BOARD) # nastaví identifikáciu GPIO fyzickými číslami pinov resetPin = 3 # identifikuje fyzický pin RPi pripojený k ESP8266 pin RST flashPin = 5 # identifikuje fyzický pin RPi pripojený k pinu ESP8266 GPIO0 GPIO.setup (resetPin, GPIO. OUT) # nastaviť resetovací kolík ako výstup GPIO.setup (flashPin, GPIO. OUT) # nastaviť bleskový pin ako výstup GPIO.output (resetPin, GPIO. LOW) # poklesnúť napätie na RST pine. spánok (.2) # potreba tohto čakania je špekulatívny GPIO.output (flashPin, GPIO. LOW) # pokles napätia v čase GPIO0.sleep (.2) # potreba tohto čakania je špekulatívny GPIO.output (resetPin, GPIO. HIGH) # spustenie bootovania ESP8266 time.sleep (.5) # počkajte, kým ESP8266 zavedie GPIO.ouput (flashPin. GPIO. HIGH) # obnovte napätie na GPIO pinGPIO.cleanup () # resetujte piny na RPI, aby ste predišli budúcim výstrahám za behu
Povolenia na zmenu terminálu:
$ sudo chmod +x flash.py
$ sudo chmod +x reset.py
Odteraz vždy, keď potrebujete vstúpiť do režimu programovania, spustite terminál:
$ python /flash.py
po nahraní kódu do normálneho prevádzkového režimu spustite:
$ python /reset.py
V tomto mieste možno budete chcieť tiež aktualizovať firmvér ESP8266. Existuje mnoho online návodov, ako to urobiť, takže sa nebudem zaoberať podrobnosťami o tom, ako to urobiť.
ČASŤ 2. Nastavenie Arduino IDE
Ak už máte nainštalované Arduino IDE, možno budete chcieť sekciu preletieť a uistiť sa, že je vaše IDE pripravené na ESP8266.
Na Rapberry Pi môžete na programovanie svojho ESP8266 použiť Arduino IDE. Existujú dva spôsoby, ako nainštalovať IDE na RPi:
- cez príkazový riadok z úložísk pomocou apt-get install
- stiahnuť a nainštalovať ručne z arduino.cc.
Dôrazne odporúčam ísť druhou cestou. Zdá sa, že verzia IDE z úložísk je zastaraná a určite budete musieť urobiť viac, než budete pripravení začať programovať ESP8266. Aby ste sa vyhli problémom, navštívte stránku sťahovania Arduino.cc a stiahnite si verziu Linux ARM. Ďalej dekomprimujte a nainštalujte: Ak názov stiahnutého súboru vyzerá takto arduino-X. Y. Z-linuxarm.tar.xz, v priečinku na stiahnutie spustite:
$ tar -xvf arduino-X. Y. Z-linuxarm.tar.xz
Tým by ste mali dekomprimovať súbor do priečinka arduino-X. Y. Z. Beh:
$ sudo./arduino-X. Y. Z/install.sh
To by malo nainštalovať IDE. Po dokončení inštalácie spustite IDE.
- Z Arduino IDE prejdite na Súbor> Predvoľby. V spodnej časti okna predvolieb vyhľadajte položku „Ďalšie adresy URL správcu rady“. Do poľa „Ďalšie adresy URL správcu“zadajte https://arduino.esp8266.com/stable/package_esp8266com_index.json a kliknite na tlačidlo „OK“.
- Prejdite na Nástroje> Doska: XXX> Správca dosiek. V okne použite vyhľadávanie alebo prejdite nadol, vyberte ponuku dosky ESP8266 a kliknite na nainštalovať. Počkajte na dokončenie inštalácie a zatvorte okno.
- Znova prejdite na položku Nástroje> Doska: XXX a vyhľadajte dosky ESP8266. Vyberte všeobecný modul ESP8266.
Teraz je IDE pripravené na programovanie ESP8266. Zadajte alebo prilepte požadovaný kód do okna IDE a uložte ho. Kliknite na položku Odovzdať. Z terminálu run. flash by sa mala vaša doska dostať do režimu programovania. Počkajte niekoľko minút, kým IDE dokončí kompiláciu a nahrávanie (poznámka: ESP-01 je obvykle dodávaný s 2 LED diódami, počas nahrávania kódu bliká modrá LED) a spustite reset.py. Teraz je vaša doska ESP-01 pripravená vykonávať svoje povinnosti.
Odporúča:
Prerobenie USB portu dosiek na báze SAMD21 na hardvérový sériový port !: 3 kroky
Vytvorenie USB portu dosiek na báze SAMD21 v hardvérovom sériovom porte!: V dnešnej dobe je štandardné používať ako emulovaný sériový port USB port na doske Arduino (alebo akúkoľvek inú kompatibilnú). To je veľmi užitočné pre ladenie, odosielanie a prijímanie údajov z našich obľúbených dosiek. Pracoval som na uChipwhen, prechádzal som údajom
Využitie RAM počítača z Arduina cez sériový port: 7 krokov
Využitie pamäte RAM počítača na Arduino cez sériový port: Môj priateľ ma inšpiroval v jeho malom projekte Arduino. Tento malý projekt zahŕňa Arduino UNO R3, ktoré číta údaje programom vyrobeným v Arduino IDE odoslaným na sériový port (port USB) programom C# vyrobeným vo vizuálnom štúdiu. Ako tento
Sériový port cez WiFi: 10 krokov
Sériový port cez WiFi: Dátová komunikácia medzi elektronickými zariadeniami je v mnohých elektronických projektoch nevyhnutná a prináša veľa výhod pre váš projekt, tj. Pripojenie mikrokontroléra k počítaču a monitorovanie údajov na veľkom farebnom displeji namiesto malého monochromatického
Sériový port - Nastavenie softvéru: 8 krokov
Sériový port - Nastavenie softvéru: Ak sa pokúšate ovládať niečo v reálnom svete pomocou počítača, sériový port je možno najľahším komunikačným prostriedkom. Prevediem vás procesom nastavenia sériového portu a hyperterminálu na počítači so systémom Win
Nulový chladič / stojan na notebook (bez lepidla, bez vŕtania, bez matíc a skrutiek, bez skrutiek): 3 kroky
Nulový chladič / stojan na notebook (bez lepidla, bez vŕtania, bez matíc a skrutiek, bez skrutiek): AKTUALIZÁCIA: PROSÍM DRUHÉ HLASUJTE ZA MOJE INŠTRUKTÍVNE, VĎAKA ĎAKUJEME AJ INÉ VSTUPTE NA www.instructables.com/id/Zero-Cost-Aluminium-Furnace-No-Propane-No-Glue-/ ALEBO MOŽNO HLASUJTE O NAJLEPŠIEHO PRIATEĽA