Мазмуну:
- 1 -кадам: Rapberry Pi конфигурациялаңыз
- 2-кадам: ESP-01ди Raspberry Pi менен туташтырыңыз
- 3 -кадам: Программаны орнотуу (Python иштетүү үчүн жана Arduino IDE программасы үчүн)
Video: Flash ESP-01 (ESP8266) Raspberry Pi колдонгон USB-сериялык адаптерсиз: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул көрсөтмө 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 конфигурациялаңыз
Мен 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 менен туташтырыңыз
Эми биз бардыгын чогуу зымга өткөрө баштадык.
Биринчиден, 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 тактаңыз милдеттерди аткарууга даяр.
Сунушталууда:
Өз рок -тобуңуздун экит адаптерин жасаңыз (мурас адаптерсиз), бузулбай! 10 кадам
Өзүңүздүн Rock Band Ekit адаптериңизди түзүңүз (Legacy адаптерсиз), бузулбай! . Ютубдагы DONINATOR мырзага рахмат, ага окшош видеолорду тарткан видео
ESP8266 жана OLEDди колдонгон Live Covid19 Tracker - Чыныгы убакыт Covid19 тактасы: 4 кадам
ESP8266 жана OLEDди колдонгон Live Covid19 Tracker | Realtime Covid19 тактасы: Techtronic Harsh веб -сайтына баш багыңыз: http: //techtronicharsh.com Бардык жерде роман Corona Virus (COVID19) чоң тутанышы бар. Дүйнөдө учурдагы COVID-19 сценарийине көз салып туруу керек болуп калды, ошондуктан үйдө болуп, бул биринчи
Wemos D1 ESP8266, Arduino IDE жана Blynk тиркемесин колдонгон Wi-Fi роботу: 11 кадам (сүрөттөр менен)
Wemos D1 ESP8266, Arduino IDE жана Blynk тиркемесин колдонгон Wi-Fi менен башкарылган робот: Бул окуу куралында мен сизге Blynk тиркемесин колдонуп смартфондон башкарылган Wi-Fi менен башкарылуучу робот танкты кантип жасоону көрсөтөм. Бул долбоордо ESP8266 Wemos D1 тактасы колдонулган, бирок башка табак моделдерин да колдонсо болот (NodeMCU, Firebeetle ж. Б.), Жана пр
ESP8266 тактасын колдонгон YouTube абоненттик эсептегич: 9 кадам (сүрөттөр менен)
ESP8266 тактасын колдонуу менен YouTube абоненттеринин эсептегичи: Урматтуу достор, дагы бир ESP8266 долбооруна кош келиңиздер, бүгүн биз чоң LCD дисплейи жана 3D басылган корпусу бар DIY YouTube абоненттик эсептегичин курабыз. Келгиле, баштайлы! Бул үйрөткүчтө биз муну жасайбыз: DIYдин YouTube абоненти
Адаптерсиз клавиатураны Dinден Mini-Dinге айландыруу: 5 кадам
Клавиатураны Динден Мини-Динге Адаптерсиз Которуу: Ошентип, эки клавиатура, ширетүүчү жана CS сынактарынын ортосунда бош убакытты эмне кылуу керек. Клавиатура кабелин трансплантациялоо жөнүндө эмне айтууга болот? Сизге керек: Эки клавиатура, бири DIN туташтыргычы бар, экинчиси мини DIN / PS2 туташтыргычы бар