Sadržaj:

Bljeskalica ESP-01 (ESP8266) Bez USB-serijskog adaptera pomoću Raspberry Pi: 3 koraka
Bljeskalica ESP-01 (ESP8266) Bez USB-serijskog adaptera pomoću Raspberry Pi: 3 koraka

Video: Bljeskalica ESP-01 (ESP8266) Bez USB-serijskog adaptera pomoću Raspberry Pi: 3 koraka

Video: Bljeskalica ESP-01 (ESP8266) Bez USB-serijskog adaptera pomoću Raspberry Pi: 3 koraka
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Studeni
Anonim
Flash ESP-01 (ESP8266) bez USB-serijskog adaptera pomoću Raspberry Pi
Flash ESP-01 (ESP8266) bez USB-serijskog adaptera pomoću Raspberry Pi

Ovaj Instructable vodi vas o tome kako započeti programiranje vašeg ESP8266 mikrokontrolera na ESP-01 WIFI modulu. Sve što vam je potrebno za početak rada (osim modula ESP-01, naravno) je

  • Malina Pi
  • Kratkospojne žice
  • 10K otpornik

Htio sam preurediti staru noćnu svjetiljku u modernu Alexa noćnu LED svjetiljku. Ništa lijepo nije samo uključivanje/isključivanje glasovne naredbe. Naručio sam najjednostavniji ESP-01 WIFI modul, relej i žicu sa LED diodama na mreži, a potpuno sam zaboravio naručiti USB-serijski adapter za programiranje mikrokontrolera ESP8266. No, budući da sam imao Raspberry Pi, a i Raspberry Pi i ESP-01 ploča su imale UART pinove, zaključio sam da bih mogao koristiti svoj RPi za programiranje ESP8266 bez adaptera.

Korak 1: Konfigurirajte Rapberry Pi

Konfigurirajte Rapberry Pi
Konfigurirajte Rapberry Pi

Koristio sam Raspberry Pi 3 Model B+, međutim, upute bi trebale djelovati na drugim verzijama, posebno na modelu B.

Dakle, prvo prvo - moramo omogućiti UART na Pi.

Idite na konfiguracijske postavke RPi. U terminal prozoru pokrenite

$ sudo raspi-config

Idite na 5 Opcije sučelja, a zatim odaberite P6 serijski. Zatim ste upitali Želite li da ljuska za prijavu bude dostupna serijski? odaberite jer ne želimo koristiti UART za pokretanje Pi -a bez glave, već za komunikaciju s drugim uređajima, stoga se na sljedećem ekranu na pitanje želite li omogućiti hardver za serijski priključak? Odaberi. Ponovno pokrenite Pi prema zahtjevu. UART bi sada trebao biti omogućen za serijsku komunikaciju na RX i TX pin -u Raspberry Pi 3. Napomena: nakon ovoga trebao bi se pojaviti novi unos enable_uart = 1 na kraju /boot/config.txt.

Korak 2: Spojite ESP-01 na Raspberry Pi

Spojite ESP-01 na Raspberry Pi
Spojite ESP-01 na Raspberry Pi

Sada prelazimo na ožičenje svega zajedno.

Prvo, identificirajte na svojim RPi 3.3V napajačkim i GND (uzemljenim) pinovima za napajanje ESP8266 mikrokontrolera, TXD (odašiljač) i RXD (primanje) pinovima za komunikaciju i dva pina opće namjene za rad ESP8266 (pinovi koji se mogu postaviti na visoki ili na niska). Potražite raspored pinova na pinout.xyz ili upišite terminal:

$ pinout

Zatim identificirajte potrebne pinove na ESP-01. No, na početku moramo imati razumijevanja o pinovima ESP-01. Našao sam na internetu brojne korisne izvore koji će vam pomoći u tom pogledu. Ovaj je najkraći, dok ovaj daje mnogo bolje objašnjenje. Ukratko: Postoji 8 pinova, trebat će nam 7 njih, naime VCC napajanje i GND (uzemljenje) pinovi za napajanje, TXD i RXD pinovi za komunikaciju te RST (reset), CH_PD (Chip Power Down, ponekad označeni) CH_EN ili omogućavanje čipa) i GPIO0 za upravljanje modulom. Obično ESP8266 radi u uobičajenom načinu rada, ali prilikom učitavanja koda u ESP8266 mora biti u flash modu. Za redovan ili normalan način rada modul mora biti priključen na napajanje (očito), ali i pin CH_PD mora biti spojen na VCC putem 10K (ova vrijednost varira u različitim izvorima, našao sam vrijednosti do 3K) pull-up otpornik pri pokretanju. s druge strane, za ulazak u treperenje ili programiranje morate uzemljiti pin GPIO0 pri pokretanju. Kako bi se spriječio neograničeni protok struje preko GPIO0 kada je uzemljen, preporučuje se spajanje GPIO0 na masu putem nekog otpornika niskog otpora 300Ω - 470Ω (više o tome ovdje). RST pin, kako naziv govori, resetira (ili ponovno pokreće) MCU. Tijekom normalnog rada može se spojiti na VCC preko 10K pull-up otpornika, ali treba biti uzemljen za resetiranje mikrokontrolera. Iako je uvijek moguće koristiti fizičke tipke za uzemljenje pinova RST i GPIO0 (ili čak ručno spajanje žica za simulaciju tipke), mnogo je ugodnije iskustvo koristiti pinove Raspberry Pi za postavljanje visokog i niskog napona na modulima RST i GPIO0 igle. Također nema potrebe za 10K i 470Ω otpornicima.

Budući da smo svjesni posebnosti pinova ESP-01, možemo početi povezivati sve zajedno. Sljedeću tablicu možete koristiti kao referencu uz gornji crtež:

ESP-01 Malina Pi

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

Spojite VCC pin zadnji. Instanca na koju ste spojili VCC pin vašeg Wi-Fi modula će se uključiti. Pomoću zaslona ili minicom provjerite mogu li RPi i ESP8266 komunicirati pomoću UART -a (napomena: možda ćete prvo morati instalirati zaslon ili minicom, jer izgleda da nisu zadano instalirani na Raspbian).

Korištenje pokretanja zaslona:

$ sudo screen /dev /serial0 115200

Korištenje minicom run:

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

Napomena: mnogi mrežni resursi predlažu povezivanje s ESP8266 na /dev /ttyAMA0, ali to ne radi za RPi 3 ili noviji (uključujući nula W) prema RPi dokumentaciji. Umjesto toga povežite putem /dev /serial0 ili /dev /ttyS0.

Nakon što ste unijeli zaslon ili minicom, koristite AT naredbe za komunikaciju s ESP8266. Upišite AT, zatim pritisnite Enter, a zatim pritisnite Ctrl+J za slanje naredbe. Trebali biste dobiti OK kao odgovor. Popis dostupnih AT naredbi možete pronaći na espressiff.com ili samo ovdje.

Ako su uređaji fizički povezani i međusobno razgovaraju, možemo pristupiti programiranju RPi GPIO pinova i, konačno, samog ESP8266.

Korak 3: Postavljanje softvera (Python za rad i Arduino IDE za programiranje)

DIO 1. Korištenje pythona za promjenu načina rada ESP8266

Kao što je gore spomenuto, prikladno je koristiti RPI GPIO pinove za promjenu načina rada ESP8266. Napisao sam dva osnovna python koda koji stavljaju ESP8266 u običan ili programski način.

Redoviti način rada: Da bismo mikrokontroler prebacili u uobičajeni način rada, samo ga moramo napajati i spojiti CH_PD preko pull-up otpornika na VCC, ali za prebacivanje MCU-a iz programiranja u normalni način rada moramo ga resetirati (razmislite o ponovnom pokretanju). Da bismo to učinili na RPi-u, nakratko ćemo povući RPi-jev GPIO spojen na RST pin na ESP-01 (prema zadanim postavkama RPi pin koji sam koristio za resetiranje postavljen je na HIGH). Kako kratko? Za mene je to spekulativno pitanje. Možete isprobati različite vremenske intervale, ali otkrio sam da 200 - 500 ms rade sasvim u redu. Napišite u komentarima ako imate bolju ideju. Spremite svoj kôd kao reset.py

#!/usr/bin/python

uvoz RPi. GPIO kao GPIO Vrijeme uvoza GPIO.setmode (GPIO. BOARD) # postavlja GPIO identifikaciju prema fizičkim brojevima pinova resetPin = 3 # identificira fizički pin RPi spojen na ESP8266 RST pin GPIO.setup (resetPin, GPIO. OUT) # set reset pin kao output GPIO.output (resetPin, GPIO. LOW) # pad napona na RST pin time.sleep (.2) # pričekajte.2 s GPIO.izlaz (resetPin, GPIO. HIGH) # vratite napon na RST pin GPIO. cleanup () # pinovi za resetiranje na RPI kako bi se spriječila buduća upozorenja za vrijeme izvođenja

  • Način programiranja: Da bismo MCU prebacili u način programiranja, moramo napajati ESP8266 s GPIO0 uzemljenim ili ga alternativno resetirati i uzemljiti GPIO0 tijekom pokretanja (opet točno trajanje padova napona nije mi poznato, stoga nemojte biti strogo strogi vođeni korištenim vrijednostima). Spremite kôd kao flash.py ili preuzmite u nastavku. Slijed radnji je sljedeći:

    • povucite prema dolje RST klin
    • povucite GPIO0 iglu prema dolje
    • povucite RST klin prema gore
    • izvucite pin GPIO0

#!/usr/bin/python

uvoz RPi. GPIO kao GPIO Vrijeme uvoza GPIO.setmode (GPIO. BOARD) # postavlja GPIO identifikaciju prema fizičkim brojevima pinova resetPin = 3 # identificira fizički pin RPi spojen na ESP8266 RST pin flashPin = 5 # identificira fizički pin RPi spojen na ESP8266 pin GPIO0 GPIO.setup (resetPin, GPIO. sleep (.2) # potreba za ovim čekanjem je spekulativni GPIO.izlaz (flashPin, GPIO. LOW) # pad napona na GPIO0 time.sleep (.2) # potreba za ovim čekanjem je spekulativni GPIO.output (resetPin, GPIO. HIGH) # početak dizanja ESP8266 time.sleep (.5) # pričekajte da se ESP8266 pokrene GPIO.ouput (flashPin. GPIO. HIGH) # vrati napon na GPIO pinGPIO.cleanup () # pinovi za resetiranje na RPI za sprečavanje budućih upozorenja za vrijeme izvođenja

Dopuštenja za promjenu terminala:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

Od sada, kad god trebate ući u način programiranja pokrenite u terminalu:

$ python /flash.py

nakon učitavanja koda za ulazak u normalan način rada pokrenite:

$ python /reset.py

U ovom trenutku možda ćete htjeti ažurirati i firmver ESP8266. Postoji mnogo internetskih vodiča o tome kako to učiniti, pa neću ulaziti u detalje o tome kako to učiniti.

DIO 2. Postavljanje Arduino IDE -a

ako već imate instaliran Arduino IDE, možda ćete htjeti pregledati odjeljak provjeravajući je li vaš IDE spreman za ESP8266.

Na Rapberry Pi -u možete koristiti Arduino IDE za programiranje svog ESP8266. Postoje dva načina za instaliranje IDE -a na RPi:

  • putem naredbenog retka iz spremišta pomoću apt-get install
  • preuzmite i instalirajte ručno s arduino.cc.

Snažno predlažem da krenete ovim drugim putem. Čini se da je IDE verzija iz spremišta zastarjela i da ćete zasigurno morati učiniti više prije nego budete spremni za početak programiranja ESP8266. Da biste izbjegli gnjavažu, idite na stranicu za preuzimanje Arduino.cc i preuzmite Linux ARM verziju. Slijedeće raspakirajte i instalirajte: Ako naziv preuzete datoteke izgleda otprilike ovako arduino-X. Y. Z-linuxarm.tar.xz, pokrenite mapu za preuzimanje:

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

Ovo bi trebalo dekomprimirati datoteku u mapu arduino-X. Y. Z. Trčanje:

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

Ovo bi trebalo instalirati IDE. Nakon dovršetka instalacije pokrenite IDE.

  • Iz Arduino IDE -a idite na Datoteka> Postavke. Potražite "Dodatni URL -ovi upravitelja ploče" pri dnu prozora postavki. Unesite https://arduino.esp8266.com/stable/package_esp8266com_index.json u polje "Dodatni URL -ovi upravitelja ploče", kliknite gumb "U redu".
  • Idite na Alati> Ploča: XXX> Upravitelj ploča. U prozoru upotrijebite pretraživanje ili se pomaknite prema dolje, odaberite izbornik ploče ESP8266 i kliknite Instaliraj. Pričekajte da se instalacija dovrši i zatvorite prozor.
  • Ponovno idite na Alati> Ploča: XXX i potražite ploče ESP8266. Odaberite Opći modul ESP8266.

Sada je IDE spreman za programiranje ESP8266. Upišite ili zalijepite željeni kôd u IDE prozor i spremite ga. Pritisnite Upload. S terminala flash.py, ovo bi trebalo vašu ploču staviti u način programiranja. Pričekajte nekoliko minuta da IDE dovrši sastavljanje i prijenos (napomena: ESP-01 obično dolazi s 2 LED diode, plava LED dioda će bljeskati dok se kôd prenosi) i pokrenite reset.py. Sada je vaša ploča ESP-01 spremna za obavljanje dužnosti.

Preporučeni: