Sadržaj:
- Korak 1: Konfigurirajte Rapberry Pi
- Korak 2: Spojite ESP-01 na Raspberry Pi
- Korak 3: Postavljanje softvera (Python za rad i Arduino IDE za programiranje)
Video: Bljeskalica ESP-01 (ESP8266) Bez USB-serijskog adaptera pomoću Raspberry Pi: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
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
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
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:
Postavljanje Raspberry Pi 4 preko prijenosnog računala/računala pomoću Ethernet kabela (bez monitora, bez Wi-Fi-ja): 8 koraka
Postavljanje Raspberry Pi 4 putem prijenosnog računala/računala pomoću Ethernet kabela (bez monitora, bez Wi-Fi-ja): U ovom ćemo radu raditi s Raspberry Pi 4 Model-B od 1 GB RAM-a za postavljanje. Raspberry-Pi je jednokrilno računalo koje se koristi u obrazovne svrhe i DIY projekte po pristupačnoj cijeni, zahtijeva napajanje od 5V 3A. Operacijski sustavi poput
Napravite vlastiti adapter za rock bend Ekit (bez naslijeđenog adaptera), bez razaranja!: 10 koraka
Učinite svoj vlastiti Ekit adapter rock benda (bez nasljednog adaptera), bez razaranja !: Nakon što sam čuo da popularni voditelj podcasta spominje svoju zabrinutost zbog umiranja ožičenog USB naslijeđenog adaptera, otišao sam tražiti DIY rješenje za povezivanje boljeg/prilagođenog eKita na RB . Hvala gospodinu DONINATORU na Youtubeu koji je snimio video u kojem opisuje svoju sličnu stranicu
Programabilni policijski LED bljeskalica pomoću STM8 [72 LED]: 9 koraka
Programabilna policijska LED bljeskalica pomoću STM8 [72 LED-a]: STM8S001J3 je 8-bitni mikrokontroler koji nudi 8 Kbajta flash programske memorije, plus integrirani istinski podatkovni EEPROM. Naziva se uređajem niske gustoće u obitelji mikrokontrolera STM8S. Ovaj MCU se nudi u malom SO8N pakiranju
Bljeskalica žarulje bez tranzistora: 6 koraka
Žarulja za bljeskanje bez tranzistora: Na internetu postoji mnogo svjetlosnih krugova LightBulb/LED koji trepere, ali gotovo svi koriste tranzistore ili IC -ove. Ideja ovog instruktora je napraviti bljeskalicu žarulje bez tranzistora ili IC -a
Hladnjak / stalak za prijenosno računalo bez troškova (bez ljepila, bez bušenja, bez matica i vijaka, bez vijaka): 3 koraka
Hladnjak / postolje za prijenosno računalo nula troškova (bez ljepila, bez bušenja, bez matica i vijaka, bez vijaka): AŽURIRAJTE: MOLIM VAS LJUBAV GLAS ZA MOJE INSTRUKCIJE, HVALA ^ _ ^ MOŽETE SE I VI GLAVATI ULAZITE NA www.instructables.com/id/Zero-Cost-Aluminium-Furnace-No-Propane-No-Glue-/ ILI MOŽDA GLASATE ZA NAJBOLJEG PRIJATELJA