Агуулгын хүснэгт:

Flash ESP-01 (ESP8266) Raspberry Pi ашиглан USB-сериал адаптергүй бол: 3 алхам
Flash ESP-01 (ESP8266) Raspberry Pi ашиглан USB-сериал адаптергүй бол: 3 алхам

Видео: Flash ESP-01 (ESP8266) Raspberry Pi ашиглан USB-сериал адаптергүй бол: 3 алхам

Видео: Flash ESP-01 (ESP8266) Raspberry Pi ашиглан USB-сериал адаптергүй бол: 3 алхам
Видео: SKR 1.4 - TMC2209 v1.2 2024, Долдугаар сарын
Anonim
Flash ESP-01 (ESP8266) Raspberry Pi-ийг ашигладаг USB-сериал адаптергүй
Flash ESP-01 (ESP8266) Raspberry Pi-ийг ашигладаг USB-сериал адаптергүй

Энэхүү зааварчилгаа нь ESP8266 микроконтроллерийг ESP-01 WIFI модуль дээр хэрхэн програмчлах талаар зааварчилгаа өгөх болно. Эхлэхийн тулд танд хэрэгтэй бүх зүйл (мэдээж ESP-01 модулийн гадна)

  • Raspberry Pi
  • Холбогч утас
  • 10K эсэргүүцэл

Би хуучин орны дэнлүүг орчин үеийн Alexa удирдлагатай LED шөнийн чийдэн болгон шинэчлэхийг хүссэн юм. Дуут командыг ашиглан асаах/унтраах ямар ч сонирхолтой зүйл байхгүй. Би хамгийн энгийн ESP-01 WIFI модуль, реле, утсыг LED-ээр онлайнаар захиалж, ESP8266 микроконтроллерыг програмчлахын тулд USB-ээс цуваа адаптер захиалахаа мартжээ. Гэхдээ би Raspberry Pi-тэй байсан бөгөөд Raspberry Pi болон ESP-01 самбар хоёулаа UART зүүтэй байсан тул би RPi-ийг ашиглан адаптергүйгээр ESP8266 програмчлах боломжтой гэж бодсон.

Алхам 1: Rapberry Pi -ийг тохируулна уу

Rapberry Pi -ийг тохируулах
Rapberry Pi -ийг тохируулах

Би Raspberry Pi 3 Model B+-г ашигласан боловч заавар нь бусад хувилбар дээр, ялангуяа B загвар дээр ажиллах ёстой.

Тиймээс, юуны түрүүнд бид Pi дээр UART -ийг идэвхжүүлэх хэрэгтэй.

RPi тохиргооны тохиргоо руу очно уу. Терминал цонхонд ажиллуулна уу

$ sudo raspi-config

5 интерфэйс сонголт руу очоод P6 цувралыг сонгоно уу. Дараа нь та нэвтрэх бүрхүүлийг цувралаар үзэх боломжтой байхыг хүсч байна уу? Pi -г толгойгүй ажиллуулахын тулд UART -ийг ашиглахыг хүсэхгүй байгаа тул бусад төхөөрөмжтэй харилцахыг хүсэхгүй байгаа тул сонгоно уу, ингэснээр дараах цуврал портын техник хангамжийг идэвхжүүлэхийг хүсч байна уу? сонгох Хүссэний дагуу Pi -г дахин эхлүүлнэ үү. UART нь Raspberry Pi 3 -ийн RX ба TX зүү дээрх Цуваа холболтыг идэвхжүүлсэн байх ёстой. Анхаарна уу: үүний дараа /boot/config.txt -ийн төгсгөлд enable_uart = 1 гэсэн шинэ оруулга гарч ирэх ёстой.

Алхам 2: ESP-01-ийг Raspberry Pi руу холбоно уу

ESP-01-ийг Raspberry Pi руу холбоно уу
ESP-01-ийг Raspberry Pi руу холбоно уу

Одоо бид бүх зүйлийг утастай холбож эхлэв.

Нэгдүгээрт, ESP8266 микроконтроллерыг тэжээх RPi 3.3V хүч ба GND (газардуулгын) зүү, харилцах TXD (дамжуулах) ба RXD (хүлээн авах) зүү, ESP8266 (өндөр эсвэл бага). Pinout.xyz дээрээс пин зохицуулалтыг хайж олох эсвэл терминал дээр бичнэ үү.

$ pinout

Хоёрдугаарт, ESP-01 дээрх шаардлагатай тээглүүрийг тодорхойл. Гэхдээ эхэндээ бид ESP-01 тээглүүрийн талаар ойлголттой байх хэрэгтэй. Энэ тал дээр танд туслах хэд хэдэн ашигтай эх сурвалжийг интернетээс олж авлаа. Энэ бол хамгийн богино нь бөгөөд энэ нь илүү сайн тайлбар өгдөг. Товчхондоо: 8 тээглүүр байгаа тул бидэнд 7 ширхэг хэрэгтэй болно, тухайлбал VCC цахилгаан ба GND (газрын) зүү, харилцаа холбооны TXD ба RXD зүү, RST (дахин тохируулах), CH_PD (Chip Power Down, заримдаа шошготой) CH_EN эсвэл чип идэвхжүүлэх) болон GPIO0 модулийг ажиллуулах. Ихэвчлэн ESP8266 нь ердийн горимд ажилладаг боловч ESP8266 руу код оруулахдаа флаш горимд байхыг анхаардаг. Тогтмол эсвэл хэвийн ажиллагааны горимын хувьд модулийг цахилгаан тэжээлд холбох шаардлагатай (мэдээжийн хэрэг), гэхдээ CH_PD зүү нь 10K-ээр дамжуулан VCC-тэй холбогдсон байх ёстой (энэ утга нь өөр өөр эх сурвалжид өөр өөр байдаг, би 3K хүртэлх утгыг олсон) татах. ачаалах үед эсэргүүцэл. Нөгөө талаас, анивчих эсвэл програмчлалын горимд орохын тулд ачаалахдаа GPIO0 зүүг газардуулах хэрэгтэй. Газардуулга хийх үед GPIO0 -ээр хязгаарлагдмал гүйдэл дамжихаас урьдчилан сэргийлэхийн тулд бага эсэргүүцэлтэй 300Ω - 470Ω эсэргүүцэлээр дамжуулан GPIO0 -ийг газард холбохыг зөвлөж байна. Нэрээс нь үзэхэд RST зүү нь MCU -ийг дахин тохируулах (эсвэл дахин эхлүүлэх) болно. Хэвийн ажиллагааны үед үүнийг VCC-т 10K татах эсэргүүцэлээр холбож болох боловч микроконтроллерийг дахин тохируулахын тулд газардуулгатай байх ёстой. RST ба GPIO0 тээглүүрийг залгахын тулд физик товчлуурыг ашиглах боломжтой байдаг (эсвэл товчлуурыг дуурайхын тулд утсыг гараар холбож болно), Raspberry Pi тээглүүрийг ашиглан модулийн RST ба GPIO0 дээр хүчдэлийн өндөр ба доод түвшинг тохируулах нь илүү тааламжтай туршлага юм. тээглүүр. Түүнчлэн 10K ба 470Ω эсэргүүцэлтэй байх шаардлагагүй болно.

ESP-01 тээглүүрийн онцлог шинж чанарыг мэддэг болсон тул бид бүх зүйлийг хооронд нь холбож эхэлж болно. Та доорх хүснэгтийг дээрх зургийн хамт лавлагаа болгон ашиглаж болно.

ESP-01 Raspberry Pi

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

VCC зүүг хамгийн сүүлд холбоно уу. Таны VCC холбосон жишээ таны Wi-Fi модулийг асаах болно. RPi болон ESP8266 нь UART ашиглан харилцах боломжтой эсэхийг шалгахын тулд дэлгэц эсвэл minicom ашиглана уу (анхаарна уу: та анх дэлгэц эсвэл миникомыг Raspbian дээр суулгаагүй байгаа тул эхлээд суулгах хэрэгтэй байж магадгүй).

Дэлгэц ажиллуулахыг ашиглах:

$ sudo дэлгэц /dev /serial0 115200

Minicom run ашиглах:

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

Анхаарна уу: олон онлайн нөөцүүд /dev /ttyAMA0 дээр ESP8266 -тай холбогдохыг санал болгодог боловч энэ нь RPi баримт бичгийн дагуу RPi 3 ба түүнээс дээш (тэг Вт -ийг оруулаад) ажиллахгүй байна. Оронд нь /dev /serial0 эсвэл /dev /ttyS0 -ээр холбогдоно уу.

Дэлгэц эсвэл миником руу орсны дараа AT тушаалуудыг ашиглан ESP8266 -тай холбогдоорой. AT гэж бичээд Enter дараад Ctrl+J дарж командыг илгээнэ үү. Та хариуд нь OK авах ёстой. Боломжтой AT командуудын жагсаалтыг espressiff.com дээрээс эсвэл эндээс олж болно.

Төхөөрөмжүүд бие биетэйгээ холбогдсон бөгөөд хоорондоо ярилцаж бид RPi GPIO тээглүүр, эцэст нь ESP8266 өөрөө програмчлах боломжтой болно.

Алхам 3: Програм хангамжийн тохиргоо (Python -ийг ажиллуулах, Arduino IDE -ийг програмчлах)

Хэсэг 1. ESP8266 горимыг солихын тулд python ашиглан

Дээр дурдсанчлан ESP8266 -ийн ажиллах горимыг өөрчлөхийн тулд RPI -ийн GPIO тээглүүрийг ашиглах нь тохиромжтой. Би ESP8266 -ийг ердийн эсвэл програмчлалын горимд оруулсан хоёр үндсэн питон кодыг бичсэн.

Ердийн горим: Микроконтроллерийг ердийн горимд оруулахын тулд бид үүнийг асааж, CH_PD-ийг татах резистороор VCC-тэй холбох хэрэгтэй, гэхдээ MCU-ийг програмчлалаас хэвийн горимд шилжүүлэхийн тулд бид үүнийг дахин тохируулах хэрэгтэй (дахин эхлүүлэхийг бодоорой). Үүнийг RPi дээр хийхийн тулд бид ESP-01 дээрх RST зүүтэй холбогдсон RPi-ийн GPIO-г товчхон буулгах гэж байна (анхдагчаар миний дахин тохируулахад ашигладаг RPi зүү нь HIGH гэж тохируулагдсан байдаг). Хэр товчхон? Миний хувьд энэ бол таамаглалын асуулт юм. Та өөр өөр хугацааны интервалыг туршиж үзэж болно, гэхдээ би 200-500 мс сайн ажилладаг болохыг олж мэдсэн. Илүү сайн санаа байвал коммент хэсэгт бичээрэй. Кодоо reset.py болгон хадгална уу

#!/usr/bin/python

RPi. GPIO -ийг GPIO болгон импортлох хугацаа GPIO.setmode (GPIO. BOARD) # нь GPIO танихыг физик зүү тоогоор тохируулна ResetPin = 3 # ESP8266 RST зүүтэй холбогдсон RPi физик зүүг тодорхойлох GPIO.setup (resetPin, GPIO. OUT) # дахин тохируулах GPIO.output (resetPin, GPIO. LOW) гаралт болгон оруулах cleanup () # ирээдүйн ажиллах цагийн анхааруулгаас урьдчилан сэргийлэхийн тулд RPI дээрх тээглүүрийг дахин тохируулна

  • Програмчлалын горим: MCU -ийг програмчлалын горимд оруулахын тулд бид ESP8266 -ийг GPIO0 газардуулгатай асаах, эсвэл ачаалах үед GPIO0 -ийг дахин тохируулах, газардуулах шаардлагатай (дахин хүчдэлийн уналтын үргэлжлэх хугацаа надад тийм ч сайн мэдэгдэхгүй байгаа тул үүнийг бүү хатуу хэлээрэй. ашигласан утгыг удирддаг). Кодыг flash.py хэлбэрээр хадгалах буюу доороос татаж авна уу. Үйлдлийн дараалал дараах байдалтай байна.

    • RST зүүг доошлуул
    • GPIO0 зүүг татаж ав
    • RST зүү татах
    • GPIO0 зүү татаж аваарай

#!/usr/bin/python

GPIO импортлох хугацаа GPIO.setmode (GPIO. BOARD) болгон импортлох RPi. GPIO # нь GPIO танихыг физик зүү тоогоор тохируулна resetPin = 3 # ESP8266 RST зүүтэй холбогдсон RPi физик зүүг тодорхойлох FlashPin = 5 # ESP8266 GPIO0 зүүтэй холбогдсон RPi физик зүүг тодорхойлох GPIO.setup (resetPin, GPIO. OUT) # дахин тохируулах зүүг GPIO.setup (flashPin, GPIO. OUT) гаралт болгон тохируулна унтах (.2) # энэ хүлээлтийн хэрэгцээ нь таамаглалын GPIO.output (flashPin, GPIO. LOW) # GPIO0 цаг дээр унах хүчдэл юм. унтах (.2)) # ESP8266 -ийг ачаалж эхлээрэй time.sleep (.5) # ESP8266 -г GPIO.ouput (flashPin. GPIO. HIGH) ачаалахыг хүлээнэ үү # GPIO pinGPIO.cleanup дээрх хүчдэлийг сэргээнэ

Терминал өөрчлөх зөвшөөрлүүд:

$ sudo chmod +x flash.py

$ sudo chmod +x reset.py

Одооноос эхлэн програмчлалын горимд орох шаардлагатай бол терминал дээр ажиллуулна уу.

$ python /flash.py

кодыг байршуулсны дараа хэвийн ажиллах горимд орно уу:

$ python /reset.py

Энэ үед та ESP8266 програмыг шинэчлэхийг хүсч магадгүй юм. Үүнийг хэрхэн хийх талаар олон онлайн заавар байдаг тул би үүнийг хэрхэн хийх талаар дэлгэрэнгүй ярихгүй.

Хэсэг 2. Arduino IDE -ийг тохируулах

Хэрэв та аль хэдийн Arduino IDE -ийг суулгасан бол IDE -ийг ESP8266 -д бэлэн байгаа эсэхийг шалгахын тулд энэ хэсгийг гүйлгэж үзэхийг хүсч магадгүй юм.

Rapberry Pi дээр Arduino IDE -ийг ашиглан ESP8266 -г програмчлах боломжтой. IDE -ийг RPi дээр суулгах хоёр арга бий.

  • apt-get install ашиглан репозиторуудын тушаалын мөрөөр
  • arduino.cc дээрээс гараар татаж суулгаарай.

Би сүүлчийн замыг сонгохыг зөвлөж байна. Репозиторуудын IDE хувилбар хуучирсан бололтой, та ESP8266 програмчлахаасаа өмнө илүү ихийг хийх хэрэгтэй болно. Асуудал гарахгүйн тулд Arduino.cc татаж авах хуудас руу ороод Linux ARM хувилбарыг татаж аваарай. Дараагийн задлах ба суулгах: Хэрэв татаж авсан файлын нэр arduino-X. Y. Z-linuxarm.tar.xz шиг харагдаж байвал татаж авах фолдерт ажиллуулна уу.

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

Энэ нь файлыг arduino-X. Y. Z фолдерт задлах ёстой. Ажиллуулах:

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

Энэ нь IDE -ийг суулгах ёстой. Суулгалт дууссаны дараа IDE -г эхлүүлнэ үү.

  • Arduino IDE -ээс Файл> Тохиргоо руу очно уу. Тохиргооны цонхны доод хэсэгт байгаа "Нэмэлт зөвлөлийн менежерийн URL" -ыг хайж олоорой. Http://arduino.esp8266.com/stable/package_esp8266com_index.json -ийг "Удирдах зөвлөлийн менежерийн нэмэлт URL" талбарт оруулаад "OK" товчийг дарна уу.
  • Багаж хэрэгсэл> Удирдах зөвлөл: XXX> Самбарын менежер рүү очно уу. Цонхонд хайлт эсвэл доош гүйлгэж ашиглахдаа ESP8266 самбарын цэсийг сонгоод суулгах дээр дарна уу. Суулгалт дуусахыг хүлээгээд цонхыг хаа.
  • Дахин Tools> Board: XXX руу очоод ESP8266 самбарыг хайж олоорой. Ерөнхий ESP8266 модулийг сонгоно уу.

Одоо IDE нь ESP8266 програмчлахад бэлэн боллоо. IDE цонхонд хүссэн кодоо оруулаад оруулаад хадгална уу. Байршуулах дээр дарна уу. Flash.py терминалыг ажиллуулснаар энэ нь таны самбарыг програмчлалын горимд оруулах ёстой. IDE-ийг хөрвүүлж, байршуулж дуустал хэдэн минут хүлээнэ үү (анхаарна уу: ESP-01 нь ихэвчлэн 2 LED-тэй ирдэг, кодыг байршуулж байх үед цэнхэр LED анивчдаг) reset.py-ийг ажиллуулна уу. Одоо таны ESP-01 самбар үүргээ гүйцэтгэхэд бэлэн боллоо.

Зөвлөмж болгож буй: