Sisukord:

Välk ESP-01 (ESP8266) ilma USB-jadaadapterita Raspberry Pi abil: 3 sammu
Välk ESP-01 (ESP8266) ilma USB-jadaadapterita Raspberry Pi abil: 3 sammu

Video: Välk ESP-01 (ESP8266) ilma USB-jadaadapterita Raspberry Pi abil: 3 sammu

Video: Välk ESP-01 (ESP8266) ilma USB-jadaadapterita Raspberry Pi abil: 3 sammu
Video: New Arduino Ballistic Chronograph Project: ESP-01 WiFi, Arduino Nano and Smartphone 2024, November
Anonim
Välk ESP-01 (ESP8266) ilma USB-jadaadapterita Raspberry Pi abil
Välk ESP-01 (ESP8266) ilma USB-jadaadapterita Raspberry Pi abil

See juhend juhendab teid, kuidas alustada ESP8266 mikrokontrolleri programmeerimist ESP-01 WIFI moodulis. Alustamiseks on vaja ainult (muidugi peale ESP-01 mooduli)

  • Vaarika Pi
  • Jumper juhtmed
  • 10K takisti

Tahtsin vana öölambi renoveerida kaasaegseks Alexa juhitavaks LED -öölambiks. Pole midagi väljamõeldud, kui lülitate selle häälkäskluse abil sisse/välja. Tellisin veebist lihtsaima ESP-01 WIFI mooduli, relee ja juhtme koos LED-idega ning unustasin täielikult tellida USB-jadaadapteri ESP8266 mikrokontrolleri programmeerimiseks. Aga kuna mul oli Raspberry Pi ja nii Raspberry Pi kui ka ESP-01 plaadil olid UART-tihvtid, arvasin, et saan oma RPi abil ESP8266 programmeerida ilma adapterita.

Samm: seadistage Rapberry Pi

Rapberry Pi seadistamine
Rapberry Pi seadistamine

Kasutasin Raspberry Pi 3 mudelit B+, kuid juhised peaksid töötama ka teiste versioonide, eriti mudeli B puhul.

Niisiis, kõigepealt - peame lubama UART -i Pi -s.

Avage RPi konfiguratsiooniseaded. Käivitage terminaliaknas

$ sudo raspi-config

Minge 5 liidesevaliku juurde, seejärel valige P6 jada. Seejärel küsisite, kas soovite, et sisselogimiskest oleks ligipääsetav jada kaudu? valige, kuna me ei taha kasutada UART -i Pi peata käitamiseks, vaid teiste seadmetega suhtlemiseks, seega järgmisel ekraanil, kui küsitakse Kas soovite, et jadaporti riistvara oleks lubatud? vali. Taaskäivitage Pi vastavalt juhistele. Nüüd peaks UART olema lubatud Raspberry Pi 3 RX- ja TX -pin -jadakommunikatsiooni jaoks. Märkus: pärast seda peaks faili /boot/config.txt lõpus ilmuma uus kirje enable_uart = 1.

Samm: ühendage ESP-01 Raspberry Pi-ga

Ühendage ESP-01 Raspberry Pi-ga
Ühendage ESP-01 Raspberry Pi-ga

Nüüd hakkame kõike kokku ühendama.

Esiteks tuvastage oma RPi 3.3V toite- ja GND (maandus) tihvtid, et toita ESP8266 mikrokontrollerit, TXD (saatmine) ja RXD (vastuvõtmine) kontakte ja kaks üldotstarbelist tihvti ESP8266 kasutamiseks (tihvtid, mida saab seadistada kas kõrgeks või madal). Otsige tihvtide paigutust aadressilt pinout.xyz või sisestage terminal:

$ pinout

Teiseks määrake ESP-01 jaoks vajalikud tihvtid. Kuid alguses peame mõistma ESP-01 tihvte. Leidsin Internetist mitmeid kasulikke ressursse, mis teid selles osas abistavad. See on lühim, samas kui see annab palju parema selgituse. Lühidalt: on 8 tihvti, me vajame neist 7, nimelt VCC toite- ja GND (maandatud) tihvte toite jaoks, TXD ja RXD kontakte side jaoks ning RST (lähtestamine), CH_PD (Chip Power Down, mõnikord märgistatud) CH_EN või kiibi lubamine) ja GPIO0 mooduli käitamiseks. Tavaliselt töötab ESP8266 tavalises režiimis, kuid koodi üleslaadimisel ESP8266 -le peab see olema välgurežiimis. Tavalise või normaalse töörežiimi korral peab moodul olema vooluvõrku ühendatud (ilmselgelt), kuid ka tihvt CH_PD tuleb ühendada VCC-ga 10K kaudu (see väärtus varieerub erinevatel viisidel, leidsin väärtused kuni 3K) takisti alglaadimisel. teiselt poolt, vilkuva või programmeerimisrežiimi sisenemiseks peate GPIO0 tihvti käivitamisel maandama. Piiramatu voolu vältimiseks GPIO0 kaudu, kui see on maandatud, on soovitatav GPIO0 ühendada maandusega mõne väikese takistusega takisti 300Ω - 470Ω kaudu (sellest lähemalt siin). RST -tihvt, nagu nimigi ütleb, lähtestab (või taaskäivitab) MCU. Normaalse töö ajal võib selle ühendada VCC-ga 10K tõmbetakistuse kaudu, kuid see peaks olema maandatud, et lähtestada mikrokontroller. Kuigi alati on võimalik kasutada füüsilisi nuppe RST ja GPIO0 tihvtide maandamiseks (või isegi juhtmete käsitsi ühendamiseks, et simuleerida nuppu), on palju meeldivam kogemus kasutada Raspberry Pi tihvte, et seadistada mooduli RST ja GPIO0 pinge kõrgeks ja madalaks tihvtid. Samuti pole vaja 10K ja 470Ω takisteid.

Olles nüüd teadlik ESP-01 tihvtide iseärasustest, saame hakata kõike omavahel ühendama. Koos ülaltoodud joonisega saate viitena kasutada järgmist tabelit:

ESP-01 Vaarika Pi

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

Ühendage VCC tihvt viimasena. Kui ühendasite VCC PIN-i, lülitub teie WiFi-moodul sisse. Kasutage ekraani või minikomplekti, et kontrollida, kas RPi ja ESP8266 suudavad UART -i abil suhelda (märkus: peate võib -olla esmalt installima ekraani või minicomi, kuna need ei tundu olevat vaikimisi Raspbianile installitud).

Ekraanipildi kasutamine:

$ sudo screen /dev /serial0 115200

Minicom run kasutamine:

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

Märkus: paljud võrguressursid soovitavad ühendada seadmega ESP8266 seadmes /dev /ttyAMA0, kuid see ei tööta RPi 3 või uuema versiooni korral (sh null W) vastavalt RPi dokumentidele. Ühendage selle asemel /dev /serial0 või /dev /ttyS0.

Pärast ekraani või minikomplekti sisenemist kasutage ESP8266 -ga suhtlemiseks AT -käske. Sisestage AT, seejärel vajutage sisestusklahvi ja seejärel käsu saatmiseks Ctrl+J. Peaksite vastuseks OK saama. Saadaolevate AT -käskude loendi leiate aadressilt espressiff.com või lihtsalt siit.

Kui seadmed on füüsiliselt ühendatud ja üksteisega rääkides, saame hakata programmeerima RPi GPIO kontakte ja lõpuks ka ESP8266 ise.

Samm 3: Tarkvara seadistamine (Python käivitamiseks ja Arduino IDE programmeerimiseks)

OSA 1. Pythoni kasutamine ESP8266 režiimide vahetamiseks

Nagu eespool mainitud, on ESP8266 töörežiimide vahetamiseks mugav kasutada RPI GPIO kontakte. Kirjutasin kaks põhilist pythoni koodi, mis viisid ESP8266 tavalisse või programmeerimisrežiimi.

Tavaline režiim: mikrokontrolleri tavapäraseks töörežiimiks seadmiseks peame selle lihtsalt sisse lülitama ja ühendama CH_PD tõmbetakistuse kaudu VCC-ga, kuid MCU lülitamiseks programmeerimisest tavarežiimi peame selle lähtestama (mõtle taaskäivitamisele). Selleks RPi-s tõmbame lühidalt alla RPi GPIO, mis on ühendatud ESP-01 RST-tihvtiga (vaikimisi on lähtestamiseks kasutatud RPi-tihvt HIGH). Kui lühidalt? Minu jaoks on see spekulatiivne küsimus. Võite proovida erinevaid ajavahemikke, kuid leidsin, et 200–500 ms töötavad suurepäraselt. Kirjutage kommentaaridesse, kui teil on parem idee. Salvestage oma kood nimega reset.py

#!/usr/bin/python

RPi. GPIO importimine GPIO -ks importimisaeg GPIO.setmode (GPIO. BOARD) # määrab GPIO identifitseerimise füüsiliste pin -numbrite alusel resetPin = 3 # identifitseeri RPi füüsiline tihvt, mis on ühendatud ESP8266 RST pin GPIO.setup (resetPin, GPIO. OUT) # set reset pin kui väljund GPIO.output (resetPin, GPIO. LOW) # langege pinge RST pin pin.sleep (.2) # oodake.2 s GPIO. output (resetPin, GPIO. HIGH) # taastage pinge RST pin GPIO -l. cleanup () # RPI nööpnõelad, et vältida tulevasi käitusaja hoiatusi

  • Programmeerimisrežiim: MCU programmeerimisrežiimi lülitamiseks peame toite ESP8266 maandama GPIO0 -ga või alternatiivselt lähtestama ja GPIO0 maandama käivitamise ajal (pingelanguste täpne kestus pole mulle veel täpselt teada, seega ärge olge rangelt juhinduda kasutatud väärtustest). Salvestage kood nimega flash.py või laadige alla. Toimingute järjestus on järgmine:

    • tõmmake RST tihvt alla
    • tõmmake GPIO0 tihvt alla
    • tõmmake RST tihvt üles
    • tõmmake GPIO0 tihvt üles

#!/usr/bin/python

RPi. GPIO importimine GPIO -ks importimisaeg GPIO.setmode (GPIO. BOARD) # määrab GPIO identifitseerimise füüsiliste pin -numbrite järgi resetPin = 3 # identifitseeri RPi füüsiline tihvt, mis on ühendatud ESP8266 RST -tihvtiga GPIO.setup (resetPin, GPIO. OUT) # määrake lähtestusnõel väljundiks GPIO.setup (flashPin, GPIO. OUT) # määrake välklambi väljundiks GPIO. väljund (resetPin, GPIO. LOW) # langevad pinged RST -pin ajale. unerežiim (.2) # selle ootamise vajadus on spekulatiivne GPIO.väljund (flashPin, GPIO. LOW) # pinge langus GPIO0 ajal) # käivitage ESP8266 käivitamine time.sleep (.5) # oodake, kuni ESP8266 käivitab GPIO.ouput (flashPin. GPIO. HIGH) # taastage GPIO pin pinGPIO.cleanup () # lähtestage tihvtid RPI -l, et vältida tulevasi käitusaja hoiatusi

Terminali muutmise õigustes:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

Nüüdsest, kui peate sisenema programmeerimisrežiimi, käivitage terminal:

$ python /flash.py

pärast koodi üleslaadimist sisenema tavalisse töörežiimi:

$ python /reset.py

Siinkohal võiksite värskendada ka ESP8266 püsivara. Internetis on palju õpetusi selle kohta, kuidas seda teha, nii et ma ei hakka selle üksikasju üksikasjalikult kirjeldama.

OSA 2. Arduino IDE seadistamine

kui teil on juba Arduino IDE installitud, võiksite siiski selle jaotise läbi vaadata, veendudes, et teie IDE on ESP8266 jaoks valmis.

Rapberry Pi -l saate oma ESP8266 programmeerimiseks kasutada Arduino IDE -d. IDE installimiseks RPi -le on kaks võimalust:

  • käsurea kaudu hoidlatest, kasutades apt-get install
  • laadige alla ja installige käsitsi saidilt arduino.cc.

Soovitan tungivalt minna viimasele teele. Hoidlate IDE versioon näib olevat vananenud ja enne ESP8266 programmeerimise alustamist peate kindlasti rohkem tegema. Tülide vältimiseks minge Arduino.cc allalaadimislehele ja laadige alla Linuxi ARM -i versioon. Järgmine lahtipakkimine ja installimine: kui allalaaditud faili nimi näeb välja umbes selline: arduino-X. Y. Z-linuxarm.tar.xz, käivitage allalaadimiskaust:

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

See peaks faili pakkima arduino-X. Y. Z kausta. Käivita:

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

See peaks installima IDE. Pärast installimise lõpetamist käivitage IDE.

  • Avage Arduino IDE -st Fail> Eelistused. Otsige eelistuste akna allosast välja „Täiendavad juhatusehalduri URL -id“. Sisestage väljale „Täiendavad juhatusehalduri URL -id” https://arduino.esp8266.com/stable/package_esp8266com_index.json, klõpsake nuppu „OK”.
  • Avage Tööriistad> Tahvel: XXX> Tahvlite haldur. Valige aknas otsing või kerige alla, valige ESP8266 tahvli menüü ja klõpsake nuppu Installi. Oodake installimise lõpuleviimist ja sulgege aken.
  • Minge uuesti jaotisse Tööriistad> Tahvel: XXX ja otsige ESP8266 tahvleid. Valige üldine ESP8266 moodul.

Nüüd on IDE valmis ESP8266 programmeerimiseks. Sisestage või kleepige soovitud kood IDE aknasse ja salvestage see. Klõpsake nuppu Laadi üles. Alates terminalist käivitage flash.py, see peaks teie plaadi programmeerimisrežiimi viima. Oodake mõni minut, kuni IDE lõpetab koostamise ja üleslaadimise (märkus: ESP-01-l on tavaliselt 2 LED-i, sinine LED vilgub koodi üleslaadimise ajal) ja käivitage reset.py. Nüüd on teie ESP-01 plaat ülesannete täitmiseks valmis.

Soovitan: