Satura rādītājs:
- 1. darbība: konfigurējiet Rapberry Pi
- 2. darbība. Savienojiet ESP-01 ar Raspberry Pi
- 3. darbība: programmatūras iestatīšana (Python darbināšanai un Arduino IDE programmēšanai)
Video: Zibspuldze ESP-01 (ESP8266) bez USB sērijas adaptera, izmantojot Raspberry Pi: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šī pamācība sniedz norādījumus, kā sākt programmēt savu ESP8266 mikrokontrolleri ESP-01 WIFI modulī. Viss, kas jums nepieciešams, lai sāktu darbu (protams, papildus ESP-01 modulim) ir
- Raspberry Pi
- Jumper vadi
- 10K rezistors
Es gribēju atjaunot veco gultas lampu par mūsdienīgu Alexa vadāmu LED naktslampu. Nekas izdomāts, vienkārši ieslēdzot/izslēdzot to, izmantojot balss komandu. Es tiešsaistē pasūtīju vienkāršāko ESP-01 WIFI moduli, releju un vadu ar gaismas diodēm, un pavisam aizmirsu pasūtīt USB seriālo adapteri, lai programmētu ESP8266 mikrokontrolleru. Bet, tā kā man bija Raspberry Pi un gan Raspberry Pi, gan ESP-01 plāksnei bija UART tapas, es sapratu, ka es varētu izmantot savu RPi, lai programmētu ESP8266 bez adaptera.
1. darbība: konfigurējiet Rapberry Pi
Es izmantoju Raspberry Pi 3 B+modeli, tomēr instrukcijām vajadzētu darboties arī citās versijās, īpaši B modelī.
Tātad, vispirms - mums ir jāiespējo UART pakalpojumā Pi.
Atveriet RPi konfigurācijas iestatījumus. Palaist termināļa logā
$ sudo raspi-config
Atveriet 5 saskarnes opcijas, pēc tam atlasiet P6 Serial. Pēc tam jūs jautāja Vai vēlaties, lai pieteikšanās apvalks būtu pieejams sērijveidā? izvēlieties, jo mēs nevēlamies izmantot UART, lai palaistu Pi bez galvas, bet lai sazinātos ar citām ierīcēm, tādēļ nākamajā ekrānā, kad tiek jautāts Vai vēlaties, lai seriālā porta aparatūra būtu iespējota? izvēlieties. Restartējiet Pi, kā tiek prasīts. Tagad ir jāiespējo UART seriālajai komunikācijai Raspberry Pi 3 RX un TX tapā. Piezīme. Pēc tam /boot/config.txt beigās vajadzētu parādīties jaunam ierakstam enable_uart = 1.
2. darbība. Savienojiet ESP-01 ar Raspberry Pi
Tagad mēs sākam visu savienot kopā.
Pirmkārt, identificējiet RPi 3.3V barošanas un GND (zemes) tapas, lai darbinātu ESP8266 mikrokontrolleru, TXD (pārraides) un RXD (uztveršanas) tapas, lai sazinātos, un divas vispārējas nozīmes tapas, lai darbinātu ESP8266 (tapas, kuras var iestatīt vai nu augstu, vai zems). Meklējiet tapu izvietojumu vietnē pinout.xyz vai ierakstiet terminālī:
$ pinout
Otrkārt, identificējiet nepieciešamās tapas ESP-01. Bet sākumā mums ir jābūt izpratnei par ESP-01 tapām. Internetā es atradu vairākus noderīgus resursus, kas jums palīdzēs. Šis ir īsākais, bet šis sniedz daudz labāku skaidrojumu. Īsumā: ir 8 tapas, mums būs vajadzīgas 7 no tām, proti, VCC barošanas un GND (zemes) tapas barošanai, TXD un RXD tapas saziņai un RST (atiestatīšana), CH_PD (mikroshēmas izslēgšana, dažreiz apzīmēta) CH_EN vai mikroshēmas iespējošana) un GPIO0, lai darbinātu moduli. Parasti ESP8266 darbojas parastajā režīmā, bet, augšupielādējot kodu ESP8266, jāņem vērā zibspuldzes režīms. Parastam vai normālam darbības režīmam modulis ir jāpievieno strāvas avotam (acīmredzot), bet arī tapa CH_PD ir jāpievieno VCC, izmantojot 10K (šī vērtība atšķiras dažādos veidos, es atklāju vērtības līdz 3K) pull-up rezistors pie boot. no otras puses, lai pārietu uz mirgojošu vai programmēšanas režīmu, sāknēšanas laikā jāiezemē GPIO0 tapa. Lai novērstu neierobežotu strāvas plūsmu caur GPIO0, kad tas ir iezemēts, ieteicams GPIO0 savienot ar zemi, izmantojot zemas pretestības 300Ω - 470Ω rezistoru (vairāk par to šeit). RST tapa, kā norāda nosaukums, atiestata (vai restartē) MCU. Normālas darbības laikā to var savienot ar VCC, izmantojot 10K pievilkšanas rezistoru, bet tam jābūt iezemētam, lai atiestatītu mikrokontrolleru. Lai gan vienmēr ir iespējams izmantot fiziskas pogas, lai iezemētu RST un GPIO0 tapas (vai pat manuāli savienotu vadus, lai simulētu pogu), daudz patīkamāka pieredze ir izmantot Raspberry Pi tapas, lai iestatītu augsts un zems spriegums moduļa RST un GPIO0 tapas. Tad arī nav nepieciešami 10K un 470Ω rezistori.
Tagad, apzinoties ESP-01 tapas īpatnības, mēs varam sākt savienot visu kopā. Jūs varat izmantot šo tabulu kā atsauci kopā ar zīmējumu iepriekš:
ESP-01 Raspberry Pi
- VCC (3.3V) pin #1 (3.3V)
- GND tapa #6 (GND)
- TXD tapa #10 (RXD / BCM 15)
- RXD tapa #8 (TXD / BCM 14)
- CH_PD pin #1 (3.3V)
- RST tapa #3 (BCM 2)
- GPIO 0 tapa #5 (BMC 5)
Pievienojiet VCC tapu pēdējo. Gadījumā, kad pievienojāt VCC tapu, jūsu Wi-Fi modulis tiks ieslēgts. Izmantojiet ekrānu vai minicom, lai pārbaudītu, vai RPi un ESP8266 var sazināties, izmantojot UART (piezīme: iespējams, vispirms būs jāinstalē ekrāns vai minicom, jo šķiet, ka tie pēc noklusējuma nav instalēti Raspbian).
Izmantojot ekrāna palaišanu:
$ sudo screen /dev /serial0 115200
Izmantojot minicom run:
$ sudo minicom -b 115200 -o -D /dev /serial0
Piezīme: daudzi tiešsaistes resursi iesaka izveidot savienojumu ar ESP8266 uz /dev /ttyAMA0, taču tas nedarbojas RPi 3 vai jaunākā versijā (ieskaitot nulles W) saskaņā ar RPi dokumentāciju. Tā vietā izveidojiet savienojumu, izmantojot /dev /serial0 vai /dev /ttyS0.
Pēc ekrāna vai minikoma ievadīšanas izmantojiet AT komandas, lai sazinātos ar ESP8266. Ievadiet AT, pēc tam nospiediet taustiņu Enter un pēc tam nospiediet Ctrl+J, lai nosūtītu komandu. Jums vajadzētu atbildēt uz jautājumu. Pieejamo AT komandu sarakstu var atrast vietnē espressiff.com vai tikai šeit.
Ja ierīces ir fiziski savienotas un runā viena ar otru, mēs varam sākt programmēt RPi GPIO tapas un, visbeidzot, pašu ESP8266.
3. darbība: programmatūras iestatīšana (Python darbināšanai un Arduino IDE programmēšanai)
DAĻA 1. Python izmantošana ESP8266 režīmu pārslēgšanai
Kā minēts iepriekš, ir ērti izmantot RPI GPIO tapas, lai pārslēgtu ESP8266 darbības režīmus. Es uzrakstīju divus pamata python kodus, kas ievietoja ESP8266 parastajā vai programmēšanas režīmā.
Regulārais režīms: lai mikrokontrolleru ieslēgtu parastajā darbības režīmā, mums tas vienkārši jāieslēdz un jāpievieno CH_PD, izmantojot uzvilkšanas rezistoru, ar VCC, bet, lai pārslēgtu MCU no programmēšanas uz parasto režīmu, mums tas ir jāatiestata (domājiet, restartējiet). Lai to izdarītu RPi, mēs īsi nojauksim RPi GPIO, kas savienots ar RST tapu ESP-01 (pēc noklusējuma RPi tapa, kuru izmantoju atiestatīšanai, ir iestatīta uz HIGH). Cik īsi? Man tas ir spekulatīvs jautājums. Jūs varat izmēģināt dažādus laika intervālus, bet es atklāju, ka 200–500 ms darbojas lieliski. Rakstiet komentāros, ja jums ir labāka ideja. Saglabājiet savu kodu kā reset.py
#!/usr/bin/python
importēt RPi. GPIO kā GPIO importa laiku GPIO.setmode (GPIO. BOARD) # iestata GPIO identifikāciju pēc fizisko tapu numuriem resetPin = 3 # identificēt RPi fizisko tapu, kas savienota ar ESP8266 RST pin GPIO.setup (resetPin, GPIO. OUT) # set reset pin kā izeja GPIO.output (resetPin, GPIO. LOW) # kritiena spriegums uz RST pin time.sleep (.2) # gaidiet.2 s GPIO.output (resetPin, GPIO. HIGH) # atjaunojiet spriegumu uz RST pin GPIO. cleanup () # atiestatīt tapas uz RPI, lai novērstu brīdinājumus par izpildlaiku nākotnē
-
Programmēšanas režīms: Lai ieslēgtu MCU programmēšanas režīmā, mums ir jāieslēdz ESP8266 ar iezemētu GPIO0, vai arī alternatīvi atiestatiet to un iezemējiet GPIO0, veicot palaišanu (atkal precīzs sprieguma kritumu ilgums man nav zināms, tāpēc neesiet stingri vadoties pēc izmantotajām vērtībām). Saglabājiet kodu kā flash.py vai lejupielādējiet zemāk. Darbību secība ir šāda:
- pavelciet uz leju RST tapu
- velciet uz leju GPIO0 tapu
- izvelciet RST tapu
- pavelciet uz augšu GPIO0 tapu
#!/usr/bin/python
importēt RPi. GPIO kā GPIO importa laiku GPIO.setmode (GPIO. BOARD) # nosaka GPIO identifikāciju pēc fizisko tapu numuriem resetPin = 3 # identificēt RPi fizisko tapu, kas savienota ar ESP8266 RST pin flashPin = 5 # identificēt RPi fizisko tapu, kas savienota ar ESP8266 GPIO0 tapu GPIO.setup (resetPin, GPIO. OUT) # iestatiet atiestatīšanas tapu kā izeju GPIO.setup (flashPin, GPIO. OUT) # iestatiet zibspuldzes tapu kā izeju GPIO.output (resetPin, GPIO. LOW) # kritiena spriegums RST tapas laikā. miega režīms (.2) # šīs gaidīšanas nepieciešamība ir spekulatīva GPIO. izvade (flashPin, GPIO. LOW)) # sākt boot ESP8266 time.sleep (.5) # gaidīt, kamēr ESP8266 sāk GPIO.ouput (flashPin. GPIO. HIGH) # atjaunot spriegumu GPIO pinGPIO.cleanup () # atiestatīt tapas uz RPI, lai novērstu brīdinājumus par izpildlaiku nākotnē
Termināļa maiņas atļaujās:
$ sudo chmod +x flash.py
$ sudo chmod +x reset.py
Turpmāk, kad jums jāievada programmēšanas režīms, palaidiet termināli:
$ python /flash.py
pēc koda augšupielādes, lai ieietu normālā darbības režīmā:
$ python /reset.py
Šajā brīdī, iespējams, vēlēsities atjaunināt arī ESP8266 programmaparatūru. Ir daudz tiešsaistes apmācību, kā to izdarīt, tāpēc es neiedziļināšos detaļās par to, kā to izdarīt.
2. DAĻA Arduino IDE iestatīšana
ja jums jau ir instalēta Arduino IDE, iespējams, vēlēsities izlaist sadaļu, pārliecinoties, ka jūsu IDE ir gatava ESP8266.
Programmā Rapberry Pi varat izmantot Arduino IDE, lai ieprogrammētu savu ESP8266. Ir divi veidi, kā instalēt IDE RPi:
- izmantojot komandrindu no krātuvēm, izmantojot apt-get install
- lejupielādējiet un instalējiet manuāli no arduino.cc.
Es ļoti iesaku iet pēdējo ceļu. Šķiet, ka IDE versija no krātuvēm ir novecojusi, un jums noteikti būs jādara vairāk, pirms esat gatavs sākt programmēt ESP8266. Lai izvairītos no problēmām, dodieties uz Arduino.cc lejupielādes lapu un lejupielādējiet Linux ARM versiju. Pēc tam saspiediet un instalējiet: ja lejupielādētā faila nosaukums izskatās apmēram šādi: arduino-X. Y. Z-linuxarm.tar.xz, lejupielādes mapē palaidiet:
$ tar -xvf arduino-X. Y. Z-linuxarm.tar.xz
Tam vajadzētu atspiest failu mapē arduino-X. Y. Z. Palaist:
$ sudo./arduino-X. Y. Z/install.sh
Tam vajadzētu instalēt IDE. Kad instalēšana ir pabeigta, sāciet IDE.
- No Arduino IDE dodieties uz Fails> Preferences. Preferenču loga apakšdaļā meklējiet “Papildu valdes pārvaldnieka vietrāži URL”. Laukā “Papildu pārvaldnieka vietrāži URL” ievadiet vietni https://arduino.esp8266.com/stable/package_esp8266com_index.json, noklikšķiniet uz pogas “Labi”.
- Atveriet Rīki> Padome: XXX> Dēļu pārvaldnieks. Logā izmantojiet meklēšanu vai ritiniet uz leju, atlasiet ESP8266 tāfeles izvēlni un noklikšķiniet uz instalēt. Pagaidiet, līdz instalēšana ir pabeigta, un aizveriet logu.
- Atkal dodieties uz Rīki> Padome: XXX un meklējiet ESP8266 dēļus. Izvēlieties vispārējo moduli ESP8266.
Tagad IDE ir gatavs programmēt ESP8266. Ievadiet vai ielīmējiet vēlamo kodu IDE logā un saglabājiet to. Noklikšķiniet uz Augšupielādēt. No termināļa palaist flash.py, tam vajadzētu pārvietot savu dēli programmēšanas režīmā. Pagaidiet dažas minūtes, līdz IDE pabeidz apkopot un augšupielādēt (piezīme: ESP-01 parasti nāk ar 2 gaismas diodēm, zilā gaismas diode mirgos, kamēr kods tiek augšupielādēts) un palaidiet reset.py. Tagad jūsu ESP-01 dēlis ir gatavs pildīt pienākumus.
Ieteicams:
Kā izveidot vairākas ESP sarunas, izmantojot ESP-NOW, izmantojot ESP32 un ESP8266: 8 soļi
Kā izveidot vairākas ESP sarunas, izmantojot ESP-NOW, izmantojot ESP32 un ESP8266: Manā notiekošajā projektā man ir nepieciešami vairāki ESP, lai sarunātos viens ar otru bez maršrutētāja. Lai to izdarītu, es izmantošu ESP-NOW, lai bezvadu sazinātos savā starpā bez ESP maršrutētāja
Arduino toņu ģenerators bez bibliotēkas vai sērijas funkcijām (ar pārtraukumiem): 10 soļi
Arduino toņu ģenerators bez bibliotēkas vai seriālām funkcijām (ar pārtraukumiem): tas nav kaut kas tāds, ko es parasti padarītu par pamācāmu, es dodu priekšroku saviem metālapstrādes darbiem, bet, tā kā esmu elektrotehnikas students un jāapmeklē mikrokontrolleri ( Iebūvēto sistēmu dizains), es domāju, ka izveidošu pamācību vienā no savām p
Step Servo motora iekapsulēšana ar sērijas vadību, izmantojot Arduino, izmantojot 3D printeri - Pt4: 8 soļi
Step Servo motora iekapsulēšana ar sērijas vadību, izmantojot Arduino, izmantojot 3D printeri - Pt4: Šajā sērijas Motor Step ceturtajā videoklipā mēs izmantosim iepriekš uzzināto, lai izveidotu pakāpenisku servomotoru ar vadību, izmantojot seriālo komunikāciju un reālu pozīcijas atgriezenisko saiti, izmantojot pretestības kodētāju, ko uzrauga Arduino. In
HRV temperatūra līdz OpenHAB, izmantojot ESP8266 (sērijas koda piemērs!): 3 soļi
HRV temperatūra līdz OpenHAB, izmantojot ESP8266 (sērijas koda piemērs!): HRV - bezvadu savienojums ar OpenHAB TTL sērijas dati) varētu būt h
Bezmaksas klēpjdatora dzesētājs / statīvs (bez līmes, bez urbšanas, bez uzgriežņiem un skrūvēm, bez skrūvēm): 3 soļi
Nulles klēpjdatora dzesētājs / statīvs (bez līmes, bez urbšanas, bez uzgriežņiem un skrūvēm, bez skrūvēm): ATJAUNINĀT: LŪDZU, LŪDZU, BALSOT, PAR MANU MĀCĪBU, PALDIES Ieeja www.instructables.com/id/Zero-Cost-Aluminium-Chnace-No-Propane-No-Glue-/ VAI VAR BALSOT PAR LABĀKO DRAUGU