Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:44
Tämä opas opastaa sinua aloittamaan ESP8266-mikrokontrollerin ohjelmoinnin ESP-01 WIFI -moduuliin. Kaikki mitä tarvitset aloittaaksesi (tietysti ESP-01-moduulin lisäksi) on
- Raspberry Pi
- Hyppyjohdot
- 10K vastus
Halusin kunnostaa vanhan yölampun moderniksi Alexa -ohjattavaksi LED -yölampuksi. Ei mitään hienoa vain kytkeä se päälle/pois äänikomennolla. Tilasin netistä yksinkertaisimman ESP-01 WIFI -moduulin, releen ja johtimen LED-valolla, ja unohdin tilata USB-sarjasovittimen ohjelmoimaan ESP8266-mikro-ohjaimen. Mutta koska minulla oli Raspberry Pi ja sekä Raspberry Pi että ESP-01 -levyillä oli UART-nastat, ajattelin, että voisin käyttää RPi: tä ESP8266: n ohjelmointiin ilman sovitinta.
Vaihe 1: Määritä Rapberry Pi
Käytin Raspberry Pi 3 Model B+: ta, mutta ohjeiden pitäisi toimia muissa versioissa, erityisesti mallissa B.
Joten ensinnäkin - meidän on otettava UART käyttöön Pi: ssä.
Siirry RPi -määritysasetuksiin. Pääteikkunassa
$ sudo raspi-config
Siirry kohtaan 5 Liitäntäasetukset ja valitse sitten P6 -sarja. Kysyit sitten Haluaisitko, että kirjautumiskuori on käytettävissä sarjaliikenteen kautta? valitse, koska emme halua käyttää UARTia Pi: n ajamiseen ilman päätä, vaan kommunikoimaan muiden laitteiden kanssa, joten seuraavassa näytössä kysytään Haluatko sarjaportin laitteiston olevan käytössä? valitse. Käynnistä Pi uudelleen pyydettäessä. UART: n pitäisi nyt olla käytössä Raspberry Pi 3: n RX- ja TX -pin -sarjaliikenteessä. Huomaa: tämän jälkeen /boot/config.txt -tiedoston lopussa pitäisi näkyä uusi merkintä enable_uart = 1.
Vaihe 2: Yhdistä ESP-01 Raspberry Pi -laitteeseen
Nyt alamme johdottaa kaikki yhteen.
Tunnista ensin RPi 3.3V -teho- ja GND -maadoitusliittimet ESP8266 -mikrokontrollerin, TXD (lähetys) ja RXD (vastaanotto) -tapit kommunikointia varten ja kaksi yleiskäyttöistä nastaa ESP8266: n käyttämiseksi (nastat, jotka voidaan asettaa korkeiksi tai matala). Etsi nastajärjestely pinout.xyz -tiedostosta tai kirjoita terminaali:
$ pinout
Toiseksi tunnista ESP-01: n tarvittavat nastat. Mutta alussa meidän on ymmärrettävä ESP-01-nastat. Löysin Internetistä useita hyödyllisiä resursseja, jotka auttavat sinua tässä asiassa. Tämä on lyhin, kun taas tämä antaa paljon paremman selityksen. Lyhyesti sanottuna: on 8 nastaa, tarvitsemme 7 niistä, nimittäin VCC -tehon ja GND (maadoitus) nastat teholle, TXD- ja RXD -nastat viestinnälle ja RST (nollaus), CH_PD (Chip Power Down, joskus merkitty CH_EN tai sirun käyttöönotto) ja GPIO0 moduulin käyttämiseksi. Yleensä ESP8266 toimii tavallisessa tilassa, mutta kun lataat koodin ESP8266: een, sen on oltava salamatilassa. Normaalia tai normaalia toimintatilaa varten moduuli on kytkettävä virtalähteeseen (ilmeisesti), mutta myös nasta CH_PD on liitettävä VCC: hen 10K: n kautta (tämä arvo vaihtelee eri tavoilla, löysin arvot jopa 3K) vastus käynnistyksen yhteydessä. toisella puolella, jotta voit siirtyä vilkkuvaan tai ohjelmointitilaan, sinun on maadoitettava GPIO0 -nasta käynnistyksen yhteydessä. Jotta estettäisiin rajoittamaton virta GPIO0: n kautta maadoitettuna, on suositeltavaa liittää GPIO0 maahan jonkin pienen vastuksen 300Ω - 470Ω vastuksen kautta (lisää tästä). Kuten nimestä voi päätellä, RST -nasta nollaa (tai käynnistää uudelleen) MCU: n. Normaalikäytön aikana se voidaan liittää VCC: hen 10K: n vetovastusvastuksen kautta, mutta se on maadoitettava mikro-ohjaimen nollaamiseksi. Vaikka on aina mahdollista käyttää fyysisiä painikkeita RST- ja GPIO0 -nastojen maadoitukseen (tai jopa liittämään johdot manuaalisesti napin simuloimiseksi), on paljon miellyttävämpää käyttää Raspberry Pi -tappien käyttöä jännitteen asettamiseen korkealle ja matalalle moduulin RST- ja GPIO0 -laitteissa nastat. Silloin ei myöskään tarvita 10K- ja 470Ω -vastuksia.
Nyt kun olemme tietoisia ESP-01-nastojen erityispiirteistä, voimme alkaa yhdistää kaiken yhteen. Voit käyttää seuraavaa taulukkoa viitteenä yllä olevan piirustuksen ohella:
ESP-01 Raspberry Pi
- VCC (3.3V) nasta #1 (3.3V)
- GND -nasta #6 (GND)
- TXD -nasta #10 (RXD / BCM 15)
- RXD -nasta #8 (TXD / BCM 14)
- CH_PD -nasta #1 (3.3V)
- RST -nasta #3 (BCM 2)
- GPIO 0 nasta #5 (BMC 5)
Liitä VCC -nasta viimeiseksi. Ilmentymä, johon liitit VCC-nastan, Wi-Fi-moduulisi käynnistyy. Tarkista näytön tai minicomin avulla, voivatko RPi ja ESP8266 kommunikoida UART: n avulla (Huomaa: sinun on ehkä asennettava näyttö tai minicom ensin, koska niitä ei näytä olevan asennettu Raspbianiin oletusarvoisesti).
Näyttöajon käyttäminen:
$ sudo screen /dev /serial0 115200
Minicom -suorituksen käyttäminen:
$ sudo minicom -b 115200 -o -D /dev /serial0
Huomautus: monet verkkoresurssit suosittelevat yhteyden muodostamista ESP8266: een /dev /ttyAMA0 -sivustolla, mutta tämä ei toimi RPi 3: n tai uudemman (mukaan lukien nolla W) RPi -dokumentaation mukaan. Yhdistä sen sijaan /dev /serial0 tai /dev /ttyS0.
Kun olet siirtynyt näyttöön tai minicomiin, käytä AT -komentoja kommunikoidaksesi ESP8266: n kanssa. Kirjoita AT, paina sitten Enter ja lähetä komento painamalla Ctrl+J. Sinun pitäisi saada OK vastaukseksi. Luettelo käytettävissä olevista AT -komennoista löytyy espressiff.com -sivustolta tai täältä.
Kun laitteet on liitetty fyysisesti ja puhutaan keskenään, voimme alkaa ohjelmoida RPi GPIO -nastat ja lopulta itse ESP8266.
Vaihe 3: Ohjelmiston asennus (Python to Operate ja Arduino IDE to Program)
OSA 1. ESP8266 -tilan vaihtaminen pythonilla
Kuten edellä mainittiin, on kätevää käyttää RPI: n GPIO -nastoja ESP8266: n toimintatilojen vaihtamiseen. Kirjoitin kaksi peruspython -koodia, jotka asettivat ESP8266: n tavalliseen tai ohjelmointitilaan.
Normaali tila: Jotta mikrokontrolleri saataisiin normaaliin toimintatilaan, meidän on vain kytkettävä siihen virta ja kytkettävä CH_PD vetovastusvastuksen kautta VCC: hen. Tätä varten RPi: ssä aiomme vetää lyhyesti alas RPi: n GPIO: n, joka on kytketty RST-nastaan ESP-01: ssä (oletusarvoisesti nollaamiseen käytetty RPi-nasta on asetettu HIGH). Kuinka lyhyesti? Minulle tämä on spekulatiivinen kysymys. Voit kokeilla eri aikavälejä, mutta huomasin, että 200-500 ms toimivat hyvin. Kirjoita kommentteihin, jos sinulla on parempi idea. Tallenna koodi nimellä reset.py
#!/usr/bin/python
tuoda RPi. GPIO GPIO: ksi tuontiaika GPIO.setmode (GPIO. BOARD) # asettaa GPIO -tunnistuksen fyysisten nastan numeroiden perusteella resetPin = 3 # tunnista RPi -fyysinen nasta, joka on kytketty ESP8266 RST -tapaan GPIO.setup (resetPin, GPIO. OUT) # aseta nollaus nasta ulosmenona GPIO.output (resetPin, GPIO. LOW) # pudota jännite RST -nastassa time.sleep (.2) # odota.2 s GPIO. output (resetPin, GPIO. HIGH) # palauta jännite RST -nastassa GPIO. cleanup () # nollaa nastat RPI: ssä estääkseen ajonaikaiset varoitukset
-
Ohjelmointitila: Jotta MCU saataisiin ohjelmointitilaan, meidän on kytkettävä ESP8266 virtalähteeseen GPIO0 -maadoituksella tai vaihtoehtoisesti nollattava se ja maadoitettava GPIO0 käynnistyksen aikana (taas jännitehäviöiden tarkka kesto ei ole minulle täysin tiedossa, joten älä ole tiukasti käytettyjen arvojen perusteella). Tallenna koodi flash.py -muodossa tai lataa se alta. Toimien peräkkäisyys on seuraava:
- vedä RST -tappi alas
- vedä GPIO0 -nasta alas
- vedä RST -tappi ylös
- vedä GPIO0 -nasta ylös
#!/usr/bin/python
tuoda RPi. GPIO GPIO: ksi tuontiaika GPIO.setmode (GPIO. BOARD) # asettaa GPIO -tunnistuksen fyysisten nastan numeroiden perusteella resetPin = 3 # tunnista RPi -fyysinen nasta, joka on kytketty ESP8266 RST -tappiin flashPin = 5 # tunnista RPi -fyysinen nasta, joka on kytketty ESP8266 GPIO0 -tapaan GPIO.setup (resetPin, GPIO. OUT) # aseta nollausnasta lähtöksi GPIO.setup (flashPin, GPIO. OUT) # aseta flash -nasta lähtöksi GPIO.output (resetPin, GPIO. LOW) # pudota jännite RST -nasta -ajalle. lepotila (.2) # odottamisen tarve on spekulatiivinen GPIO. lähtö (flashPin, GPIO. LOW)) # aloita ESP8266: n käynnistäminen time.sleep (.5) # odota, että ESP8266 käynnistyy GPIO.ouput (flashPin. GPIO. HIGH) # palauta jännite GPIO pinGPIO.cleanup () # nollaa nastat RPI: ssä estääksesi ajonaikaiset varoitukset
Päätelaitteen muutosoikeudet:
$ sudo chmod +x flash.py
$ sudo chmod +x reset.py
Tästä lähtien aina, kun haluat siirtyä ohjelmointitilaan, suorita terminaali:
$ python /flash.py
koodin lataamisen jälkeen siirtyäksesi normaaliin toimintatilaan:
$ python /reset.py
Tässä vaiheessa saatat haluta myös päivittää ESP8266 -laiteohjelmiston. On olemassa monia online -opetusohjelmia siitä, miten se tehdään, joten en mene yksityiskohtiin siitä, miten se tehdään.
OSA 2. Arduino IDE: n määrittäminen
jos sinulla on jo asennettu Arduino IDE, voit silti selata osion varmistaaksesi, että IDE on valmis ESP8266: lle.
Rapberry Pi -laitteella voit ohjelmoida ESP8266: n Arduino IDE: n avulla. IDE voidaan asentaa RPi: lle kahdella tavalla:
- komentorivin kautta arkistoista apt-get install -ohjelmalla
- lataa ja asenna manuaalisesti osoitteesta arduino.cc.
Suosittelen vahvasti jälkimmäistä tietä. Varastojen IDE -versio näyttää vanhentuneelta, ja sinun on varmasti tehtävä enemmän, ennen kuin olet valmis aloittamaan ESP8266: n ohjelmoinnin. Välttääksesi vaivaa, siirry Arduino.cc -lataussivulle ja lataa Linux ARM -versio. Pura seuraavaksi ja asenna: Jos ladatun tiedoston nimi näyttää tältä: arduino-X. Y. Z-linuxarm.tar.xz, suorita latauskansio seuraavasti:
$ tar -xvf arduino-X. Y. Z-linuxarm.tar.xz
Tämän pitäisi purkaa tiedosto arduino-X. Y. Z-kansioon. Juosta:
$ sudo./arduino-X. Y. Z/install.sh
Tämän pitäisi asentaa IDE. Kun asennus on valmis, käynnistä IDE.
- Valitse Arduino IDE: stä Tiedosto> Asetukset. Etsi”Hallituksen ylimääräiset URL -osoitteet” asetusikkunan alareunasta. Kirjoita https://arduino.esp8266.com/stable/package_esp8266com_index.json "Hallituksen ylimääräiset URL -osoitteet" -kenttään ja napsauta "OK" -painiketta.
- Valitse Työkalut> Hallitus: XXX> Taulujen hallinta. Käytä ikkunassa hakua tai vieritä alaspäin, valitse ESP8266 -kortin valikko ja napsauta asennusta. Odota asennuksen päättymistä ja sulje ikkuna.
- Siirry jälleen kohtaan Työkalut> Taulu: XXX ja etsi ESP8266 -levyt. Valitse yleinen ESP8266 -moduuli.
Nyt IDE on valmis ohjelmoimaan ESP8266. Kirjoita tai liitä haluamasi koodi IDE -ikkunaan ja tallenna se. Napsauta Lataa. Päätelaitteesta ajaa flash.py, tämän pitäisi laittaa korttisi ohjelmointitilaan. Odota muutama minuutti, kunnes IDE lopettaa kokoamisen ja lataamisen (Huomaa: ESP-01 sisältää tyypillisesti 2 LEDiä, sininen LED vilkkuu koodin lataamisen aikana) ja suorita reset.py. Nyt ESP-01-korttisi on valmis suorittamaan tehtävänsä.
Suositeltava:
Useiden ESP-keskustelujen tekeminen ESP-NOW: n avulla ESP32: n ja ESP8266: n avulla: 8 vaihetta
Useiden ESP-keskustelujen tekeminen ESP-NYT: n avulla ESP32: n ja ESP8266: n avulla: Käynnissä olevassa projektissani tarvitsen useita ESP: itä puhuakseni keskenään ilman reititintä. Tätä varten käytän ESP-NOW-ohjelmaa langattoman viestinnän tekemiseen keskenään ilman ESP: n reititintä
Käyttö ilman näyttöä / näyttöä (ilman päätä) Raspberry Pi- tai muilla Linux- / unix -pohjaisilla tietokoneilla: 6 vaihetta
Juoksu ilman näyttöä / näyttöä (ilman päätä) Raspberry Pi: llä tai muilla Linux / unix -pohjaisilla tietokoneilla: Kun useimmat ihmiset ostavat Vadelma PI: n, he luulevat tarvitsevansa tietokoneen näytön. Älä tuhlaa rahaa turhiin tietokonenäyttöihin ja näppäimistöihin. Älä tuhlaa aikaasi näppäimistöjen ja näyttöjen siirtämiseen tietokoneiden välillä. Älä sido televisiota, kun se ei ole
Esp 8266 Esp-01: n käytön aloittaminen Arduino IDE: n kanssa Esp -levyjen asentaminen Arduino Ide -ohjelmaan ja Esp -ohjelmointi: 4 vaihetta
Esp 8266 Esp-01: n käytön aloittaminen Arduino IDE: n kanssa Esp-levyjen asentaminen Arduino Ide -ohjelmaan ja Esp-ohjelmointi: Tässä ohjeessa opimme asentamaan esp8266-levyt Arduino IDE: hen ja kuinka ohjelmoida esp-01 ja ladata koodi siihen. tämä ja useimmat ihmiset kohtaavat ongelmia
Navigointi robotissa kenkäanturien kanssa, ilman GPS: ää, ilman karttaa: 13 vaihetta (kuvilla)
Navigoi robotissa kenkäantureilla, ilman GPS: ää, ilman karttaa: Robotti liikkuu esiohjelmoidulla reitillä ja lähettää (bluetoothin kautta) todelliset liikennetietonsa puhelimeen reaaliaikaista seurantaa varten. Arduino on esiohjelmoitu polulla ja oblu käytetään robotin liikkeen havaitsemiseen. oblu lähettää liiketietoja
Pieni sitruuna -akku ja muut mallit ilman sähköä ja led -valoa ilman paristoja: 18 vaihetta (kuvilla)
Pieni sitruuna-akku ja muut mallit ilman sähköä ja led-valoa ilman paristoja: Hei, luultavasti tiedät jo sitruuna- ja bioakkuista. Niitä käytetään normaalisti opetustarkoituksiin, ja ne käyttävät sähkökemiallisia reaktioita, jotka tuottavat alhaisia jännitteitä, jotka yleensä näytetään led- tai hehkulampun muodossa. Nämä