Cov txheej txheem:

Flash ESP-01 (ESP8266) Tsis muaj USB-rau-serial Adapter Siv Raspberry Pi: 3 Cov Kauj Ruam
Flash ESP-01 (ESP8266) Tsis muaj USB-rau-serial Adapter Siv Raspberry Pi: 3 Cov Kauj Ruam

Video: Flash ESP-01 (ESP8266) Tsis muaj USB-rau-serial Adapter Siv Raspberry Pi: 3 Cov Kauj Ruam

Video: Flash ESP-01 (ESP8266) Tsis muaj USB-rau-serial Adapter Siv Raspberry Pi: 3 Cov Kauj Ruam
Video: How to Upgrade ESP-01 Module Firmware and test AT Commands 2024, Kaum ib hlis
Anonim
Flash ESP-01 (ESP8266) Tsis muaj USB-rau-serial Adapter Siv Raspberry Pi
Flash ESP-01 (ESP8266) Tsis muaj USB-rau-serial Adapter Siv Raspberry Pi

Cov Lus Qhia no qhia koj yuav pib ua haujlwm li cas koj li ESP8266 microcontroller ntawm ESP-01 WIFI module. Txhua yam koj xav tau kom pib (ntxiv rau ESP-01 tus qauv, tau kawg) yog

  • Raspberry Pi
  • Jumper xov hlau
  • 10K tiv thaiv

Kuv xav rov kho lub teeb qub ntawm lub txaj qub rau niaj hnub Alexa tswj LED hmo teeb. Tsis muaj dab tsi zoo nkauj tsuas yog tig nws rau/tawm siv lub suab hais kom ua. Kuv xaj qhov yooj yim ESP-01 WIFI module, xa tawm thiab xaim nrog LEDs online, thiab tsis nco qab tag nrho kom xaj USB-rau-serial adapter rau program ESP8266 microcontroller. Tab sis txij li thaum kuv muaj Raspberry Pi thiab ob qho Raspberry Pi thiab ESP-01 pawg thawj coj muaj UART pins, Kuv xav tias kuv tuaj yeem siv kuv RPi rau program ESP8266 yam tsis muaj lub adapter.

Kauj Ruam 1: Kho Rapberry Pi

Configure Rapberry Pi
Configure Rapberry Pi

Kuv siv Raspberry Pi 3 Qauv B+, txawm li cas los xij, cov lus qhia yuav tsum ua haujlwm ntawm lwm cov qauv, tshwj xeeb tshaj yog ntawm tus qauv B.

Yog li, thawj yam ua ntej - peb yuav tsum pab kom UART ntawm Pi.

Mus RPi kev teeb tsa kev teeb tsa. Nyob rau hauv davhlau ya nyob twg qhov rai khiav

$ sudo raspi-teeb tsa

Mus rau 5 Qhov Kev Xaiv Ua Haujlwm, tom qab ntawd xaiv P6 Serial. Tom qab ntawv koj puas xav Koj puas xav tau lub plhaub nkag mus kom nkag tau yooj yim dua cov ntawv? xaiv txij li peb tsis xav siv UART los ua haujlwm Pi lub taub hau, tab sis sib txuas lus nrog lwm cov khoom siv, yog li ntawm lub vijtsam hauv qab no thaum nug Koj puas xav kom lub khoos phis tawj serial chaw nres nkoj kom qhib? xaiv Pib dua Pi raws li tau hais tseg. UART yuav tsum tam sim no tau qhib rau Kev Sib Txuas Lus ntawm RX thiab TX tus pin ntawm Raspberry Pi 3. Nco tseg: tom qab qhov no yuav tsum tshwm sim qhov nkag tshiab enable_uart = 1 thaum kawg ntawm /boot/config.txt.

Kauj Ruam 2: Txuas ESP-01 rau Raspberry Pi

Txuas ESP-01 rau Raspberry Pi
Txuas ESP-01 rau Raspberry Pi

Tam sim no peb tau nqes los txuas txhua yam ua ke.

Ua ntej tshaj, txheeb xyuas koj lub RPi 3.3V lub zog thiab GND (hauv av) pins rau lub zog ESP8266 microcontroller, TXD (xa) thiab RXD (txais) tus pin los sib txuas lus, thiab ob lub hom phiaj tseem ceeb los ua haujlwm ESP8266 (pins uas tuaj yeem teeb tsa siab lossis qis). Saib tus pin kev teeb tsa ntawm pinout.xyz lossis ntaus hauv lub davhlau ya nyob twg:

$ pinout

Qhov thib ob txheeb tus pin tsim nyog ntawm ESP-01. Tab sis thaum pib peb yuav tsum muaj kev nkag siab ntawm ESP-01 tus pin. Kuv pom ntau tus peev txheej muaj txiaj ntsig muaj nyob hauv is taws nem los pab koj txog qhov ntawd. Qhov no yog qhov luv tshaj, thaum qhov no muab cov lus piav qhia zoo dua. Hauv ntej: Muaj 8 tus pin, peb yuav xav tau 7 ntawm lawv, uas yog VCC lub zog thiab GND (hauv av) pins rau lub zog, TXD thiab RXD tus pin rau kev sib txuas lus, thiab RST (rov pib dua), CH_PD (Chip Power Down, qee zaum sau npe) CH_EN lossis nti pab tau) thiab GPIO0 los ua haujlwm tus qauv. Feem ntau ESP8266 ua haujlwm nyob rau hauv ib txwm ua, tab sis thaum rub tus lej rau ESP8266 nws yuav tsum nyob hauv hom nyem. Rau kev ua haujlwm ib txwm lossis ib txwm ua qauv yuav tsum tau txuas nrog lub zog (pom tseeb), tab sis kuj tseem tus pin CH_PD yuav tsum txuas nrog VCC ntawm 10K (tus nqi no sib txawv hauv kev rov nrhiav dua, kuv pom qhov muaj nqis mus rau 3K) rub tawm resistor ntawm khau raj. ntawm qhov tod tes, txhawm rau nkag mus nyem lossis hom kev ua haujlwm koj xav tau hauv av GPIO0 tus pin ntawm khau raj. Txhawm rau tiv thaiv kev txwv tsis pub hla ntawm GPIO0 thaum hauv av nws tau pom zoo kom txuas GPIO0 mus rau hauv av ntawm qee qhov tsis kam tiv taus 300Ω - 470Ω (ntau ntxiv ntawm qhov no). RST tus pin raws li lub npe qhia rov pib dua (lossis rov pib dua) MCU. Thaum lub sijhawm ua haujlwm ib txwm nws tuaj yeem txuas nrog VCC ntawm 10K rub tawm tus neeg tawm tsam, tab sis yuav tsum tau muab tsaws kom rov pib dua lub microcontroller. Thaum nws ib txwm muaj peev xwm siv lub cev lub cev rau hauv av RST thiab GPIO0 tus pin (lossis txawm tias koom nrog cov xov hlau los sim lub pob), nws muaj kev txaus siab ntau dua los siv Raspberry Pi pins los teeb hluav taws xob siab thiab qis ntawm tus qauv RST thiab GPIO0 tus pin Tsis tas li tsis muaj qhov xav tau hauv 10K thiab 470Ω resistors ces.

Tam sim no tau paub txog ESP-01 tus lej tshwj xeeb, peb tuaj yeem pib txuas txhua yam ua ke. Koj tuaj yeem siv cov lus hauv qab no ua qhov siv nrog rau daim duab saum toj no:

ESP-01 Raspberry Pi

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

Txuas VCC tus pin kawg. Piv txwv li koj txuas VCC tus pin koj li Wi-nkaus module yuav qhib. Siv lub vijtsam lossis minicom txhawm rau txheeb xyuas yog tias RPi thiab ESP8266 tuaj yeem sib txuas lus siv UART (ceeb toom: koj yuav xav tau teeb tsa lub vijtsam lossis minicom ua ntej, vim tias lawv zoo li tsis tau teeb tsa ntawm Raspbian los ntawm lub neej ntawd).

Kev siv qhov screen khiav:

$ sudo screen /dev /serial0 115200

Siv minicom khiav:

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

Nco tseg: ntau qhov peev txheej hauv online qhia txuas rau ESP8266 ntawm /dev /ttyAMA0, tab sis qhov no tsis ua haujlwm ntawm RPi 3 lossis tom qab (suav nrog xoom W) raws li RPi cov ntaub ntawv. Txuas ntawm /dev /serial0 hloov lossis /dev /ttyS0.

Tom qab koj nkag mus rau lub vijtsam lossis minicom, siv AT cov lus txib los sib tham nrog ESP8266. Ntaus AT, tom qab ntawv nyem Enter thiab tom qab ntawd nias Ctrl+J kom xa cov lus txib. Koj yuav tsum tau txais lus teb OK. Cov npe ntawm AT cov lus txib tuaj yeem pom ntawm espressiff.com lossis tsuas yog ntawm no.

Ib qho ntawm cov khoom siv tau txuas nrog lub cev thiab tham nrog ib leeg peb tuaj yeem nqis mus rau lub phiaj xwm RPi GPIO pins thiab, thaum kawg, ESP8266 nws tus kheej.

Kauj Ruam 3: Teeb Software (Python kom Ua Haujlwm thiab Arduino IDE rau Txoj Haujlwm)

TSHOOJ 1. Siv nab nab los hloov ESP8266 hom

Raws li tau hais los saum toj no nws yooj yim siv RPI's GPIO pins los hloov kev ua haujlwm ntawm ESP8266. Kuv tau sau ob qhov lej nab npawb nab npawb uas tso ESP8266 rau hauv ib txwm lossis hom kev ua haujlwm.

Hom tsis tu ncua: Txhawm rau tso lub microcontroller rau hauv kev ua haujlwm tsis tu ncua peb tsuas yog xav tau lub zog thiab txuas CH_PD ntawm rub tawm tus tiv thaiv mus rau VCC, tab sis hloov MCU los ntawm kev ua haujlwm rau hom qub peb yuav tsum tau rov pib dua nws (xav rov pib dua). Txhawm rau ua qhov ntawd ntawm RPi peb yuav luv luv rub RPi's GPIO txuas nrog RST tus pin ntawm ESP-01 (los ntawm lub neej ntawd RPi tus pin kuv siv rau kev rov pib dua tau teeb tsa HIGH). Luv luv li cas? Rau kuv uas yog cov lus nug xav txog. Koj tuaj yeem sim ua lub sijhawm sib txawv, tab sis kuv pom tias 200 - 500 ms ua haujlwm tau zoo xwb. Sau hauv cov lus yog tias koj tau txais lub tswv yim zoo dua. Txuag koj cov cai li reset.py

#!/usr/bin/nab hab sej

ntshuam RPi. GPIO li GPIO lub sijhawm ntshuam GPIO.setmode (GPIO. BOARD) # teeb tsa GPIO kev txheeb xyuas los ntawm tus lej tus lej tus lej resetPin = 3 # txheeb xyuas RPi lub cev txuas nrog ESP8266 RST tus pin GPIO.setup (resetPin, GPIO. OUT) # teeb tsa dua tus pin raws li GPIO.output (resetPin, GPIO. LOW) # poob qhov hluav taws xob ntawm RST tus pin lub sijhawm.sleep (.2) # tos rau.2 s GPIO.output (resetPin, GPIO. HIGH) # rov ua hluav taws xob ntawm RST tus pin GPIO. ntxuav () # rov pib dua tus pin ntawm RPI txhawm rau tiv thaiv kev ceeb toom yav tom ntej ntawm kev ua haujlwm

  • Hom kev ua haujlwm: Txhawm rau tso MCU rau hauv hom phiaj kev ua haujlwm peb yuav tsum tau siv lub zog ESP8266 nrog GPIO0 hauv av, lossis hloov dua siab tshiab nws thiab hauv av GPIO0 thaum pib dua (rov ua tiav lub sijhawm tseeb ntawm qhov hluav taws xob poob qis tsis paub rau kuv, yog li tsis txhob nruj me ntsis coj los ntawm kev siv qhov tseem ceeb). Txuag cov cai li flash.py lossis rub tawm hauv qab no. Kev ua tiav ntawm kev ua yog cov hauv qab no:

    • rub tus pin RST
    • rub GPIO0 tus pin
    • rub tus pin RST
    • rub GPIO0 tus pin

#!/usr/bin/nab hab sej

ntshuam RPi. GPIO raws li GPIO lub sijhawm ntshuam GPIO.setmode (GPIO. BOARD) # teeb tsa GPIO kev txheeb xyuas los ntawm tus lej tus lej tus lej resetPin = 3 # txheeb xyuas RPi lub cev txuas nrog ESP8266 RST tus pin flashPin = 5 # txheeb xyuas RPi lub cev txuas nrog ESP8266 GPIO0 tus pin GPIO.setup (resetPin, GPIO. OUT) # teeb tsa tus pin raws li tso tawm GPIO.setup (flashPin, GPIO. OUT) # teeb nyem tus pin li tso zis GPIO.output (resetPin, GPIO. LOW) # poob qhov hluav taws xob ntawm RST tus pin lub sijhawm. pw tsaug zog (.2) # xav tau qhov kev tos no yog qhov xav tau GPIO.output (flashPin, GPIO. LOW) # poob qhov hluav taws xob ntawm GPIO0 lub sijhawm.sleep (.2) # xav tau rau qhov kev tos no yog speculative GPIO.output (resetPin, GPIO. HIGH) # pib booting ESP8266 lub sijhawm.sleep (.5) # tos ESP8266 rau khau raj GPIO.ouput (flashPin. GPIO. HIGH) # rov ua hluav taws xob ntawm GPIO pinGPIO.cleanup () # rov pib dua tus pin ntawm RPI txhawm rau tiv thaiv kev ceeb toom yav tom ntej

Hauv kev hloov pauv davhlau ya nyob twg tso cai:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

Txij tam sim no rau txhua lub sijhawm koj xav tau nkag mus rau hom kev ua haujlwm khiav hauv davhlau ya nyob twg:

$ nab hab sej /flash.py

tom qab uploading chaws nkag mus rau ib txwm ua haujlwm hom khiav:

$ python /reset.py

Txij ntawm no mus koj kuj tseem xav hloov kho ESP8266 firmware. Muaj ntau ntau cov lus qhia online yuav ua li cas, yog li kuv yuav tsis nkag mus rau hauv cov ntsiab lus yuav ua li cas.

TSHOOJ 2. Teeb tsa Arduino IDE

yog tias koj twb muaj Arduino IDE teeb tsa, koj tseem yuav xav hla hla ntu kom ntseeg tau tias koj li IDE tau npaj rau ESP8266.

Ntawm Rapberry Pi koj tuaj yeem siv Arduino IDE los teeb tsa koj li ESP8266. Muaj ob txoj hauv kev los teeb tsa IDE ntawm RPi:

  • ntawm kab hais kom ua los ntawm cov chaw cia khoom siv apt-tau nruab
  • rub tawm thiab teeb tsa tus kheej los ntawm arduino.cc.

Kuv xav kom qhia txoj hauv kev tom kawg. IDE version los ntawm cov chaw khaws khoom zoo li tsis muaj hnub nyoog thiab koj yuav tsum tau ua ntau dua ua ntej koj npaj pib pib ua haujlwm ESP8266. Txhawm rau kom tsis txhob muaj teeb meem, mus rau Arduino.cc nplooj ntawv rub tawm thiab rub Linux ARM version. Tom ntej uncompress thiab nruab: Yog tias lub npe ntawm cov ntawv rub tawm zoo ib yam li qhov no arduino-X. Y. Z-linuxarm.tar.xz, hauv cov ntawv rub tawm khiav:

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

Qhov no yuav tsum uncompress cov ntaub ntawv rau arduino-X. Y. Z nplaub tshev. Khiav:

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

Qhov no yuav tsum teeb tsa IDE. Tom qab kev teeb tsa tiav, pib IDE.

  • Los ntawm Arduino IDE mus rau File> Preferences. Saib rau "Tus Thawj Saib Xyuas Haujlwm Ntxiv URLs" hauv qab ntawm lub qhov rai nyiam. Nkag mus rau https://arduino.esp8266.com/stable/package_esp8266com_index.json rau hauv "Tus Thawj Saib Xyuas Haujlwm Ntxiv URLs" teb, nyem qhov "OK" khawm.
  • Mus rau Cov Cuab Yeej> Pawg Thawj Coj: XXX> Tus Thawj Saib Xyuas Haujlwm. Hauv lub qhov rai siv tshawb lossis nqes mus, xaiv ESP8266 cov ntawv qhia zaub mov thiab nyem rau nruab. Tos kom qhov kev teeb tsa ua tiav thiab kaw lub qhov rais.
  • Ib zaug ntxiv mus rau Cov Cuab Yeej> Pawg: XXX thiab saib rau ESP8266 cov laug cam. Xaiv Generic ESP8266 Module.

Tam sim no IDE tau npaj rau program ESP8266. Ntaus lossis muab cov cai xav tau rau hauv IDE qhov rai thiab khaws nws. Nyem Upload. Los ntawm lub davhlau ya nyob twg khiav flash.py, qhov no yuav tsum tso koj lub rooj tsavxwm rau hauv hom phiaj programming. Tos ob peb feeb rau IDE kom ua tiav kev xa tawm thiab xa tawm (ceeb toom: ESP-01 feem ntau tuaj nrog 2 LEDs, LED xiav yuav nyem thaum lub chaws tau muab tso rau) thiab khiav reset.py. Tam sim no koj li ESP-01 pawg thawj coj tau npaj ua lub luag haujlwm.

Pom zoo: