Мазмуну:

Flash ESP-01 (ESP8266) Raspberry Pi колдонгон USB-сериялык адаптерсиз: 3 кадам
Flash ESP-01 (ESP8266) Raspberry Pi колдонгон USB-сериялык адаптерсиз: 3 кадам

Video: Flash ESP-01 (ESP8266) Raspberry Pi колдонгон USB-сериялык адаптерсиз: 3 кадам

Video: Flash ESP-01 (ESP8266) Raspberry Pi колдонгон USB-сериялык адаптерсиз: 3 кадам
Video: $5 WiFi Camera Setup | ESP32 Wifi Setup view on Mobile phone 2024, Июль
Anonim
Flash ESP-01 (ESP8266) Raspberry Pi колдонгон USB сериялык адаптери жок
Flash ESP-01 (ESP8266) Raspberry Pi колдонгон USB сериялык адаптери жок

Бул көрсөтмө ESP-01 WIFI модулунда ESP8266 микроконтроллерин программалоону кантип баштоо керектигин көрсөтөт. Баштоо үчүн сизге керектүү нерсенин баары (албетте, ESP-01 модулунан тышкары)

  • Raspberry Pi
  • Өткөргүч зымдар
  • 10K каршылыгы

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

1 -кадам: Rapberry Pi конфигурациялаңыз

Rapberry Pi конфигурациялоо
Rapberry Pi конфигурациялоо

Мен Raspberry Pi 3 Model B+колдондум, бирок көрсөтмөлөр башка версияларда, айрыкча В моделинде иштеши керек.

Ошентип, биринчи кезекте - биз Pi боюнча UARTти иштетишибиз керек.

Go RPi конфигурация орнотуулары. Терминал терезесинде иштетүү

$ sudo raspi-config

5 Interfacing Options барып, андан кийин P6 Serial тандоо. Сиз андан кийин кирүү кабыгынын сериал аркылуу жеткиликтүү болушун каалайсызбы? тандаңыз, анткени биз 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 микроконтроллерин, TXD (берүү) жана RXD (алуу) түйүндөрүн иштетүү үчүн RPi 3.3V кубаттуулугу менен GND (жер) төөнөгүчтөрүн жана 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 пини VCCге 10K аркылуу туташтырылышы керек (бул маани ар кандай жолдордо өзгөрөт, мен 3Kга чейин баалуулуктарды таптым) тартуу жүктөө учурунда резистор. экинчи жагынан, жарк этип же программалоо режимине кирүү үчүн жүктөө учурунда GPIO0 пинин жерге коюу керек. GPIO0 аркылуу чектөөсүз токтун агымын болтурбоо үчүн, жерге отургузулганда GPIO0ну жерге каршылыгы аз 300Ω - 470Ω резистору аркылуу туташтыруу сунушталат (бул жөнүндө кененирээк бул жерде). Аталышынан көрүнүп тургандай, RST пини MCUду баштапкы абалга келтирет (же кайра баштайт). Кадимки иштөө учурунда VCCге 10K тартма каршылык аркылуу туташтырылышы мүмкүн, бирок микроконтроллерди баштапкы абалга келтирүү үчүн негизделиши керек. RST жана GPIO0 казыктарын жерге салуу үчүн физикалык баскычтарды колдонуу дайыма эле мүмкүн болсо да (же баскычты симуляциялоо үчүн зымдарды кол менен кошуу), модулдун RST жана GPIO0 чыңалуусун жогорку жана төмөн орнотуу үчүн Raspberry Pi казыктарын колдонуу алда канча жагымдуу тажрыйба. казыктар. Ошондой эле анда 10K жана 470Ω резисторлордун кереги жок.

Эми ESP-01 пиндеринин өзгөчөлүктөрүн билип, биз бардыгын бириктирип баштасак болот. Сиз төмөнкү таблицаны жогорудагы чийме менен бирге шилтеме катары колдоно аласыз:

ESP-01 Raspberry Pi

  • VCC (3.3V) pin #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 пин акыркы туташтыруу. Wi-Fi модулуңузду VCC туташтырган мисал күйгүзүлөт. RPi менен ESP8266 UART аркылуу байланыша аларын текшерүү үчүн экранды же minicomду колдонуңуз (эскертүү: экранды же minicomду биринчи орнотушуңуз керек болот, анткени алар демейки боюнча Raspbianде орнотулган эмес окшойт).

Экран иштетүүнү колдонуу:

$ sudo screen /dev /serial0 115200

Minicom run колдонуу:

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

Эскертүү: көптөгөн онлайн булактары /dev /ttyAMA0 боюнча ESP8266га туташууну сунушташат, бирок бул RPi документтерине ылайык RPi 3 же андан кийин (нөлдүк Вт) иштебейт. Анын ордуна /dev /serial0 же /dev /ttyS0 аркылуу туташыңыз.

Экранга же minicomго киргенден кийин, ESP8266 менен байланышуу үчүн AT буйруктарын колдонуңуз. AT терип, Enter баскычын басып, Ctrl+J баскычын басыңыз. Сиз жооп катары ОК алышыңыз керек. Жеткиликтүү 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 пини БИЙИК деп коюлган). Кыскача? Мен үчүн бул спекулятивдүү суроо. Сиз ар кандай убакыт аралыгын колдонсоңуз болот, бирок мен 200 - 500 мс жакшы иштээрин байкадым. Эгерде сизде жакшы идея болсо, комментарийге жазыңыз. Кодуңузду reset.py катары сактаңыз

#!/usr/bin/python

GPIO импорттоо убактысы катары RPi. GPIO импорттоо GPIO.setmode (GPIO. BOARD) # физикалык пин сандары боюнча GPIO идентификациясын орнотот resetPin = 3 # аныктоо RPi физикалык пин чыгуу GPIO.output (PIN cleanup () # келечектеги иштөө эскертүүлөрүн болтурбоо үчүн RPIдеги төөнөгүчтөрдү

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

    • RST пинин түшүрүү
    • GPIO0 төөнөгүчтү түшүрүү
    • RST кодун көтөрүңүз
    • GPIO0 пинти көтөрүңүз

#!/usr/bin/python

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

Терминалды өзгөртүү уруксаттарында:

$ 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де сиз ESP8266 программаңызды Arduino IDE аркылуу колдоно аласыз. 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 тактаңыз милдеттерди аткарууга даяр.

Сунушталууда: