Mundarija:

Raspberry Pi yordamida USB-seriyali adaptersiz Flash ESP-01 (ESP8266): 3 qadam
Raspberry Pi yordamida USB-seriyali adaptersiz Flash ESP-01 (ESP8266): 3 qadam

Video: Raspberry Pi yordamida USB-seriyali adaptersiz Flash ESP-01 (ESP8266): 3 qadam

Video: Raspberry Pi yordamida USB-seriyali adaptersiz Flash ESP-01 (ESP8266): 3 qadam
Video: SKR 1.4 - TMC2209 v1.2 2024, Noyabr
Anonim
Flash ESP-01 (ESP8266) Raspberry Pi yordamida USB-seriyali adaptersiz
Flash ESP-01 (ESP8266) Raspberry Pi yordamida USB-seriyali adaptersiz

Bu ko'rsatma sizga ESP8266 mikrokontrolerini ESP-01 WIFI modulida dasturlashni boshlash haqida ko'rsatma beradi. Siz boshlashingiz kerak bo'lgan narsa (albatta ESP-01 modulidan tashqari)

  • Raspberry Pi
  • Jumper simlari
  • 10K qarshilik

Men eski ko'rpa -to'shak chiroqini Alexa tomonidan boshqariladigan zamonaviy LED tungi chiroqqa yangilamoqchi edim. Hech narsa ovozli buyruq yordamida uni yoqish/o'chirishni xohlamaydi. Men Internetda eng oddiy ESP-01 WIFI modulini, o'rni va svetodiodli LEDni buyurtma qildim va ESP8266 mikrokontrollerini dasturlash uchun USB-ketma-ket adapterga buyurtma berishni umuman unutdim. Ammo menda Raspberry Pi bor edi va Raspberry Pi va ESP-01 kartalarida UART pinlari bor edi, men ESP8266-ni adaptersiz dasturlash uchun RPi-dan foydalanishim mumkin deb o'yladim.

1 -qadam: Rapberry Pi -ni sozlang

Rapberry Pi -ni sozlash
Rapberry Pi -ni sozlash

Men Raspberry Pi 3 Model B+dan foydalanardim, ammo ko'rsatmalar boshqa versiyalarda, ayniqsa B modelida ishlashi kerak.

Shunday qilib, birinchi navbatda, biz Pi -da UART -ni yoqishimiz kerak.

RPi konfiguratsiya sozlamalariga o'ting. Terminal oynasida ishga tushiring

$ sudo raspi-config

5 ta interfeysga o'ting, so'ngra P6 seriyasini tanlang. Keyin siz kirish qobig'iga ketma -ket kirishni xohlaysizmi? tanlang, chunki biz Pi -ni boshsiz ishlatish uchun UART -dan foydalanishni xohlamaymiz, lekin boshqa qurilmalar bilan aloqa o'rnatamiz, shuning uchun keyingi ekranda so'ralganda ketma -ket port uskunasi yoqilganmi? tanlang. Talab qilinganidek, Pi -ni qayta ishga tushiring. UART endi Raspberry Pi 3 ning RX va TX pinlarida ketma -ket aloqa uchun yoqilgan bo'lishi kerak. Eslatma: bundan keyin /boot/config.txt oxirida yangi faollik_uart = 1 yozuvi paydo bo'lishi kerak.

2-qadam: ESP-01 ni Raspberry Pi-ga ulang

ESP-01 ni Raspberry Pi-ga ulang
ESP-01 ni Raspberry Pi-ga ulang

Endi biz hamma narsani bir -biriga ulashga o'tamiz.

Birinchidan, RPi 3.3V quvvat va GND (er) pinlarini ESP8266 mikrokontrolerini, TXD (uzatish) va RXD (qabul qilish) pinlarini va ESP8266 bilan ishlash uchun ikkita umumiy maqsadli pinni aniqlang. past). Pinout.xyz -da pin tartibini qidiring yoki terminalga kiriting:

$ pinout

Ikkinchidan, ESP-01 uchun kerakli pinlarni aniqlang. Lekin boshida biz ESP-01 pinlarini tushunishimiz kerak. Men Internetda sizga bu borada yordam beradigan bir qancha foydali manbalarni topdim. Bu eng qisqa, lekin bu juda yaxshi tushuntirish beradi. Qisqacha aytganda: 8 ta pin bor, ulardan 7 tasi kerak bo'ladi, ya'ni quvvat uchun VCC quvvati va GND (er), aloqa uchun TXD va RXD pinlari va RST (reset), CH_PD (Chip Power Down, ba'zan etiketli) CH_EN yoki chip yoqish) va GPIO0 modulni ishlatish uchun. Odatda ESP8266 oddiy rejimda ishlaydi, lekin ESP8266 -ga kod yuklashda u flesh rejimda bo'lishini hisobga oladi. Oddiy yoki normal ish rejimida modul quvvatga ulanishi kerak (aniq), lekin CH_PD pinini VCC ga 10K orqali ulash kerak (bu qiymat har xil manbalarda farq qiladi, men 3Kgacha bo'lgan qiymatlarni topdim) tortish. yuklash paytida qarshilik. boshqa tomondan, miltillovchi yoki dasturlash rejimiga o'tish uchun yuklashda GPIO0 pinini erga ulash lozim. Topraklama paytida GPIO0 orqali cheklanmagan oqim oqimining oldini olish uchun, GPIO0 ni past qarshilikli 300Ω - 470Ω rezistor orqali erga ulash tavsiya etiladi (bu haqda batafsil). RST pin, nomidan ko'rinib turibdiki, MCUni qayta o'rnatadi (yoki qayta ishga tushiradi). Oddiy ish paytida u VCC-ga 10K tortish qarshiligi orqali ulanishi mumkin, lekin mikrokontrollerni qayta o'rnatish uchun uni erga ulash lozim. RST va GPIO0 pinlarini erga ulash uchun har doim jismoniy tugmachalarni ishlatish mumkin bo'lsa -da (yoki tugmani taqlid qilish uchun simlarni qo'lda ulash mumkin bo'lsa ham), Raspberry Pi pinlarini RST va GPIO0 -ga yuqori va past kuchlanishni o'rnatish ancha yoqimli tajriba. pinlar. Bundan tashqari, 10K va 470Ω rezistorlarga ehtiyoj yo'q.

Endi ESP-01 pinlarining o'ziga xos xususiyatlaridan xabardor bo'lib, biz hamma narsani bir-biriga ulashni boshlashimiz mumkin. Yuqoridagi rasm bilan bir qatorda quyidagi jadvaldan ma'lumot sifatida foydalanishingiz mumkin:

ESP-01 Raspberry Pi

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

VCC pinini oxirgi marta ulang. Wi-Fi moduli VCC-ga ulangan bo'lsa, u yoqiladi. RPi va ESP8266 UART orqali muloqot qila oladimi -yo'qligini tekshirish uchun ekran yoki minicom -dan foydalaning (eslatma: avval ekran yoki minicomni o'rnatish kerak bo'lishi mumkin, chunki ular sukut bo'yicha Raspbian -da o'rnatilmagan ko'rinadi).

Ekran ishlashidan foydalanish:

$ sudo screen /dev /serial0 115200

Minicom run -dan foydalanish:

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

E'tibor bering: ko'plab onlayn manbalar /dev /ttyAMA0 da ESP8266 ga ulanishni taklif qiladi, lekin bu RPi hujjatlariga muvofiq 3 yoki undan keyingi RPi (nol Vt) bilan ishlamaydi. Buning o'rniga /dev /serial0 yoki /dev /ttyS0 orqali ulaning.

Ekran yoki minikomga kirganingizdan so'ng, ESP8266 bilan bog'lanish uchun AT buyruqlaridan foydalaning. AT ni kiriting, so'ng Enter tugmasini bosing va buyruq yuborish uchun Ctrl+J tugmalarini bosing. Bunga javoban OK ni olishingiz kerak. AT -ning mavjud buyruqlari ro'yxatini espressiff.com saytida yoki bu erda topishingiz mumkin.

Qurilmalar jismonan bog'langan va bir -birlari bilan gaplashganda, biz RPi GPIO pinlarini va nihoyat, ESP8266 ni dasturlashni boshlashimiz mumkin.

3 -qadam: Dasturiy ta'minotni sozlash (Python to Operate va Arduino IDE to Program)

QISM 1. ESP8266 rejimini almashtirish uchun pythondan foydalanish

Yuqorida aytib o'tilganidek, ESP8266 ish rejimlarini o'zgartirish uchun RPI GPIO pinlaridan foydalanish qulay. Men ESP8266 ni oddiy yoki dasturlash rejimiga o'tkazadigan ikkita asosiy python kodini yozdim.

Muntazam rejim: Mikrokontrollerni normal ishlash rejimiga o'tkazish uchun biz uni quvvat bilan to'ldirishimiz va CH_PD-ni tortish qarshiligi orqali VCC-ga ulashimiz kerak, lekin MCU-ni dasturlashdan normal rejimga o'tkazish uchun uni qayta o'rnatishimiz kerak (qayta boshlashni o'ylab ko'ring). Buni RPi-da amalga oshirish uchun biz ESP-01-dagi RST piniga ulangan RPi-ning GPIO-ni qisqartirib tashlaymiz (sukut bo'yicha men asl holatini tiklash uchun ishlatgan RPi PIN-kodi "YUQORI" ga o'rnatiladi). Qisqacha? Men uchun bu spekulyativ savol. Siz har xil vaqt oralig'ini sinab ko'rishingiz mumkin, lekin men 200-500 ms tezlikda ishlashini aniqladim. Agar sizda yaxshiroq fikr bo'lsa, izohlarda yozing. Kodni reset.py sifatida saqlang

#!/usr/bin/python

RPi. GPIO -ni GPIO sifatida import qilish GPIO.setmode (GPIO. BOARD) # GPIO identifikatorini fizik pin raqamlari bilan o'rnatadi resetPin = 3 # ESP8266 ga ulangan RPi jismoniy pinini aniqlash GPIO.setup (resetPin, GPIO. OUT) # qayta o'rnatish pin sifatida chiqish GPIO.output (resetPin, GPIO. LOW) # RST pin vaqtida kuchlanish tushishi cleanup () # kelgusi ish vaqti ogohlantirishlarini oldini olish uchun RPI -dagi pinlarni qayta o'rnatish

  • Dasturlash rejimi: MCU -ni dasturlash rejimiga o'tkazish uchun biz ESP8266 -ni GPIO0 -ga ulangan holda yoqishimiz yoki yuklash paytida GPIO0 -ni qayta o'rnatishimiz kerak (yana kuchlanish pasayishining aniq davomiyligi men uchun noma'lum, shuning uchun qat'iy emas). ishlatilgan qiymatlarni hisobga olgan holda). Kodni flash.py sifatida saqlang yoki quyida yuklab oling. Amallar ketma -ketligi quyidagicha:

    • RST pinini torting
    • GPIO0 pinini torting
    • RST pinini torting
    • GPIO0 pinini torting

#!/usr/bin/python

RPi. GPIO -ni GPIO -ga import qilish vaqti GPIO.setmode (GPIO. BOARD) # GPIO identifikatorini jismoniy pin raqamlari bilan o'rnatadi resetPin = 3 # ESP8266 ga ulangan RPi jismoniy pinini aniqlash FlashPin = 5 # ESP8266 GPIO0 piniga ulangan RPi jismoniy pinini aniqlash GPIO.setup (resetPin, GPIO. OUT) # qayta o'rnatish pinini chiqish sifatida belgilash GPIO.setup (flashPin, GPIO. OUT) # flesh -pinni chiqish GPIO.output (resetPin, GPIO. LOW) sifatida belgilash # RST pin vaqtida kuchlanish tushishi. uxlash (.2) # bu kutish uchun spekulyativ GPIO.output (flashPin, GPIO. LOW) # GPIO0 vaqtidagi tushish voltaji. uyqu (.2)) # ESP8266 yuklashni boshlang time.sleep (.5) # ESP8266 GPIO.ouput (flashPin. GPIO. HIGH) yuklanishini kuting # GPIO pinGPIO.cleanup () # kelgusi ish vaqti ogohlantirishlarini oldini olish uchun pinlarni tiklash.

Terminalni o'zgartirish ruxsatnomalarida:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

Bundan buyon, dasturlash rejimiga kirishingiz kerak bo'lganda, terminalda ishga tushiring:

$ python /flash.py

Oddiy ish rejimiga o'tish uchun kodni yuklaganingizdan so'ng:

$ python /reset.py

Bu vaqtda siz ESP8266 dasturiy ta'minotini yangilashingiz mumkin. Buni qanday qilish bo'yicha ko'plab onlayn darsliklar bor, shuning uchun men buni qanday qilish haqida batafsil ma'lumot bermayman.

2 -QISM. Arduino IDE ni sozlash

Agar sizda allaqachon Arduino IDE o'rnatilgan bo'lsa, siz IDE ESP8266 uchun tayyorligiga ishonch hosil qilish uchun bo'limni ko'rib chiqishingiz mumkin.

Rapberry Pi -da siz ESP8266 -ni dasturlash uchun Arduino IDE -dan foydalanishingiz mumkin. IDEni RPi -ga o'rnatishning ikki yo'li mavjud:

  • apt-get install yordamida omborlardan buyruq satri orqali
  • arduino.cc saytidan qo'lda yuklab oling va o'rnating.

Men oxirgi yo'ldan borishni qat'iy tavsiya qilaman. Ma'lumotlar omboridagi IDE versiyasi eskirgan ko'rinadi va siz ESP8266 dasturlashni boshlashdan oldin, albatta, ko'proq narsani qilishingiz kerak bo'ladi. Muammolarni oldini olish uchun Arduino.cc yuklash sahifasiga o'ting va Linux ARM versiyasini yuklab oling. Keyin oching va o'rnating: Agar yuklab olingan fayl nomi arduino-X. Y. Z-linuxarm.tar.xz ga o'xshasa, yuklash papkasida ishga tushiring:

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

Bu faylni arduino-X. Y. Z jildiga ochishi kerak. Yugurish:

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

Bu IDE -ni o'rnatishi kerak. O'rnatish tugagandan so'ng, IDE -ni ishga tushiring.

  • Arduino IDE -dan Fayl> Tanlovlar -ga o'ting. Sozlamalar oynasining pastki qismidagi "Qo'shimcha boshqaruv menejeri URL -lari" ni toping. Http://arduino.esp8266.com/stable/package_esp8266com_index.json -ni "Kengash menejerining qo'shimcha URL -lari" maydoniga kiriting va "OK" tugmasini bosing.
  • Asboblar> Kengash: XXX> Kengashlar menejeri -ga o'ting. Oynada qidirishni ishlating yoki pastga aylantiring, ESP8266 karta menyusini tanlang va o'rnatish -ni bosing. O'rnatish tugashini kuting va oynani yoping.
  • Yana Tools> Board: XXX ga o'ting va ESP8266 taxtalarini qidiring. Umumiy ESP8266 modulini tanlang.

Endi IDE ESP8266 dasturiga tayyor. IDE oynasiga kerakli kodni kiriting yoki joylashtiring va saqlang. Yuklash -ni bosing. Flash.py terminalini ishga tushirgandan so'ng, bu sizning kartangizni dasturlash rejimiga o'tkazishi kerak. IDE kompilyatsiya va yuklashni tugatguncha bir necha daqiqa kutib turing (eslatma: ESP-01 odatda 2 ta LED bilan birga keladi, kod yuklanayotganda ko'k LED yonadi) va reset.py-ni ishga tushiring. Endi sizning ESP-01 taxtangiz vazifalarni bajarishga tayyor.

Tavsiya: