Բովանդակություն:
- Քայլ 1: Կարգավորեք Rapberry Pi- ն
- Քայլ 2. Միացրեք ESP-01- ը Raspberry Pi- ին
- Քայլ 3. Softwareրագրաշարի տեղադրում (Python- ը գործարկելու համար և Arduino IDE- ն `ծրագրին)
Video: Flash ESP-01 (ESP8266) Առանց USB- ի սերիական ադապտեր `օգտագործելով Raspberry Pi: 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս Instructable- ը ուղեկցում է ձեզ, թե ինչպես սկսել ձեր ESP8266 միկրոկառավարիչի ծրագրավորումը ESP-01 WIFI մոդուլի վրա: Սկսելու համար անհրաժեշտ է (իհարկե, ESP-01 մոդուլից բացի)
- Ազնվամորի Պի
- Jumper լարերը
- 10K դիմադրություն
Ես ցանկանում էի հին մահճակալի լամպը վերանորոգել ժամանակակից Alexa- ի կողմից վերահսկվող LED գիշերային լամպի մեջ: Ոչ մի արտառոց բան չկա ՝ պարզապես միացնել/անջատել ձայնային հրամանի միջոցով: Ես առցանց պատվիրեցի ամենապարզ ESP-01 WIFI մոդուլը, ռելեն և մետաղալարերը LED- ով, և ընդհանրապես մոռացա պատվիրել USB- սերիական ադապտեր ՝ ESP8266 միկրոկոնտրոլերը ծրագրավորելու համար: Բայց քանի որ ես ունեի Raspberry Pi, և Raspberry Pi- ն և ESP-01 տախտակն ունեին UART կապեր, ես մտածեցի, որ կարող եմ օգտագործել իմ RPi- ն ՝ ESP8266- ը առանց ադապտեր ծրագրելու համար:
Քայլ 1: Կարգավորեք Rapberry Pi- ն
Ես օգտագործեցի Raspberry Pi 3 Model B+, այնուամենայնիվ, հրահանգները պետք է աշխատեն այլ տարբերակների վրա, հատկապես B մոդելի վրա:
Այսպիսով, առաջին հերթին ՝ մենք պետք է միացնենք UART- ը Pi- ում:
Գնացեք RPi կազմաձևման կարգավորումներ: Տերմինալային պատուհանի գործարկում
$ sudo raspi-config
Գնացեք 5 Interfacing Options, այնուհետև ընտրեք P6 սերիան: Այնուհետև դուք հուշեցիք. Կցանկանա՞ք, որ մուտքի պատյանը հասանելի լինի սերիայի միջոցով: ընտրեք, քանի որ մենք չենք ցանկանում օգտագործել UART- ը Pi- ն անգլուխ գործարկելու համար, այլ շփվել այլ սարքերի հետ, ուստի հետևյալ էկրանին, երբ հարցնում են, կցանկանայի՞ք, որ սերիալային պորտի ապարատը միացված լինի: ընտրել. Վերագործարկեք Pi- ն, ինչպես հուշվում է: UART- ը այժմ պետք է միացված լինի Raspberry Pi 3.- ի RX և TX կապի սերիական հաղորդակցության համար: Նշում. Դրանից հետո /boot/config.txt- ի վերջում պետք է հայտնվի նոր գրառում enable_uart = 1:
Քայլ 2. Միացրեք ESP-01- ը Raspberry Pi- ին
Այժմ մենք սկսում ենք ամեն ինչ միասին միացնել:
Նախ, ձեր RPi 3.3V հոսանքի և GND (գրունտային) կապում նշեք ESP8266 միկրոկոնտրոլերը, 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 կապը պետք է միացված լինի VCC- ին 10K- ի միջոցով (այս արժեքը տատանվում է տարբեր աղբյուրներում, ես գտել եմ մինչև 3K արժեքներ) քաշքշուկ դիմադրություն բեռնման ժամանակ: Մյուս կողմից, ingրամեկուսացման կամ ծրագրավորման ռեժիմ մուտք գործելու համար հարկավոր է բեռնման ժամանակ հիմնավորել GPIO0 կապը: GPIO0- ի միջոցով անսահմանափակ ընթացիկ հոսքը կանխելու համար խորհուրդ է տրվում միացնել GPIO0- ին գետնին `ցածր դիմադրության 300Ω - 470Ω դիմադրության միջոցով (այս մասին ավելին այստեղ): RST կապը, ինչպես անունն է հուշում, վերականգնում (կամ վերագործարկում է) MCU- ն: Սովորական աշխատանքի ընթացքում այն կարող է միացվել VCC- ին 10K ձգվող դիմադրության միջոցով, սակայն պետք է հիմնավորված լինի `միկրոկոնտրոլերը վերակայելու համար: Թեև միշտ հնարավոր է օգտագործել ֆիզիկական կոճակներ RST և GPIO0 կապումներն ամրացնելու համար (կամ նույնիսկ ձեռքով միացնել լարերը ՝ կոճակը մոդելավորելու համար), շատ ավելի հաճելի փորձ է օգտագործել Raspberry Pi կապում ՝ մոդուլի RST և GPIO0 լարվածությունը բարձր և ցածր սահմանելու համար: քորոցներ: Նաև այդ դեպքում կարիք չկա 10K և 470Ω դիմադրիչների:
Այժմ տեղյակ լինելով ESP-01 կապում առանձնահատկություններին, մենք կարող ենք սկսել ամեն ինչ իրար միացնել: Դուք կարող եք օգտագործել հետևյալ աղյուսակը որպես հղում ՝ վերը նշված գծապատկերին զուգահեռ.
ESP-01 Ազնվամորի Պի
- 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 կապը վերջինը: Այն օրինակը, որը միացրել եք VCC- ին, ձեր Wi-Fi մոդուլը միացված կլինի: Օգտագործեք էկրանը կամ minicom- ը `ստուգելու համար, թե արդյոք RPi- ն և ESP8266- ը կարող են հաղորդակցվել UART- ի միջոցով (նշեք. Գուցե անհրաժեշտ լինի նախ տեղադրել էկրան կամ minicom, քանի որ դրանք ըստ երևույթին տեղադրված չեն Raspbian- ի վրա):
Էկրանի գործարկում օգտագործելով.
$ sudo էկրան /dev /serial0 115200
Օգտագործելով minicom run:
$ sudo minicom -b 115200 -o -D /dev /serial0
Նշում. Շատ առցանց ռեսուրսներ առաջարկում են միանալ ESP8266- ին /dev /ttyAMA0- ին, բայց դա չի գործում RPi 3 կամ ավելի ուշ (ներառյալ զրոյական W) համաձայն RPi փաստաթղթերի: Փոխարենը միացեք /dev /serial0- ի կամ /dev /ttyS0- ի միջոցով:
Էկրանի կամ փոքրիկի մուտքագրումից հետո ESP8266- ի հետ հաղորդակցվելու համար օգտագործեք AT հրամաններ: Մուտքագրեք AT, այնուհետև սեղմեք Enter և այնուհետև Ctrl+J ՝ հրաման ուղարկելու համար: Դուք պետք է ստանաք OK ի պատասխան: Մատչելի AT հրամանների ցանկը կարելի է գտնել espressiff.com կայքում կամ պարզապես այստեղ:
Սարքերը ֆիզիկապես կապված են և խոսում են միմյանց հետ: Մենք կարող ենք սկսել ծրագրավորումը RPi GPIO կապում և, վերջապես, բուն ESP8266- ը:
Քայլ 3. Softwareրագրաշարի տեղադրում (Python- ը գործարկելու համար և Arduino IDE- ն `ծրագրին)
ՄԱՍ 1. Պիտոնի օգտագործումը `ESP8266 ռեժիմները փոխելու համար
Ինչպես նշվեց վերևում, հարմար է օգտագործել RPI- ի GPIO կապում `ESP8266- ի շահագործման ռեժիմները փոխելու համար: Ես գրեցի երկու հիմնական պիթոնի ծածկագիր, որոնք ESP8266- ը դնում էին սովորական կամ ծրագրավորման ռեժիմի:
Սովորական ռեժիմ. Միկրոկոնտրոլերը կանոնավոր աշխատանքի ռեժիմի դնելու համար մենք պարզապես պետք է միացնենք այն և CH_PD- ն ձգվող ռեզիստորի միջոցով միացնենք VCC- ին, սակայն ծրագրավորումը MCU- ից նորմալ ռեժիմի անցնելու համար անհրաժեշտ է այն վերականգնել (մտածել վերագործարկման մասին): RPi- ով դա անելու համար մենք պատրաստվում ենք համառոտ իջեցնել RSP- ի GPIO- ն, որը միացված է RST կապին ESP-01- ի վրա (լռելյայն այն RPi կապը, որն օգտագործել եմ վերակայման համար, սահմանվում է HIGH): Որքան կարճ: Ինձ համար դա սպեկուլյատիվ հարց է: Կարող եք փորձել տարբեր ժամանակային ընդմիջումներ, բայց ես գտա, որ 200 - 500 մկսը լավ են աշխատում: Գրեք մեկնաբանություններում, եթե ավելի լավ գաղափար ունեք: Պահեք ձեր կոդը որպես reset.py:
#!/usr/bin/python
ներմուծել RPi. GPIO- ն որպես GPIO ներմուծման ժամանակը GPIO.setmode (GPIO. BOARD) # սահմանում է GPIO- ի նույնականացումը ըստ ֆիզիկական կապի համարների resetPin = 3 # նույնականացնել RPi ֆիզիկական կապը, որը միացված է ESP8266 RST քորոց GPIO.setup (resetPin, GPIO. OUT) # set reset կապել որպես ելք GPIO.output (resetPin, GPIO. LOW) # նվազեցնել լարումը RST pin time.sleep (.2) # սպասել.2 s GPIO.output (resetPin, GPIO. HIGH) # վերականգնել լարումը RST pin GPIO- ի վրա: cleanup () # վերականգնել RPI- ի կապում ՝ ապագա գործարկման նախազգուշացումները կանխելու համար
-
Mingրագրավորման ռեժիմ. MCU- ն ծրագրավորման ռեժիմի մեջ դնելու համար մենք պետք է սնուցենք ESP8266- ը GPIO0- ով հիմնավորված կամ բեռնման ընթացքում այլընտրանքաբար այն վերականգնենք և հիմնավորենք GPIO0- ով (կրկին լարման անկման ճշգրիտ տևողությունը ինձ այնքան էլ հայտնի չէ, այնպես որ խիստ մի եղեք: առաջնորդվելով օգտագործված արժեքներով): Պահեք կոդը որպես flash.py կամ ներբեռնեք ստորև: Գործողությունների հաջորդականությունը հետևյալն է.
- ներքև քաշեք RST քորոցը
- ներքև քաշեք GPIO0 կապը
- քաշեք RST քորոցը
- քաշեք GPIO0 կապը
#!/usr/bin/python
ներմուծել RPi. GPIO- ն որպես GPIO ներմուծման ժամանակը GPIO.setmode (GPIO. BOARD) # սահմանում է GPIO- ի նույնականացումը ֆիզիկական կապի համարների միջոցով resetPin = 3 # նույնականացնել ESP8266 RST- ի կապակցված RPi ֆիզիկական կապը flashPin = 5 # նույնականացնել ESP8266 GPIO0 կապին միացված RPi ֆիզիկական քորոցը GPIO.setup (resetPin, GPIO. OUT) # սահմանեք վերակայման քորոցը որպես ելք GPIO.setup (flashPin, GPIO. OUT) # նշեք ֆլեշ քորոցը որպես ելք GPIO.output (resetPin, GPIO. LOW) # լարման անկում RST փին ժամանակի վրա: քուն (.2) # այս սպասման կարիքը սպեկուլյատիվ GPIO.output (flashPin, GPIO. LOW) # լարման անկում է GPIO0 time.sleep (.2) # այս սպասման կարիքը սպեկուլյատիվ GPIO.output (resetPin, GPIO. HIGH) # սկսել բեռնաթափում ESP8266 time.sleep (:
Տերմինալային փոփոխությունների թույլտվություններում.
$ 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 ծրագիրը ծրագրավորելու համար: RPi- ի վրա IDE- ն տեղադրելու երկու եղանակ կա.
- apt-get install- ի միջոցով պահեստների հրամանի տողի միջոցով
- բեռնել և տեղադրել ձեռքով arduino.cc- ից:
Ես կտրականապես առաջարկում եմ գնալ վերջին ճանապարհով: Պահեստներից IDE տարբերակը կարծես հնացած է, և դուք, անշուշտ, պետք է ավելին անեք, նախքան պատրաստ կլինեք սկսել ծրագրավորումը ESP8266: Խնդիրներից խուսափելու համար գնացեք Arduino.cc ներբեռնման էջ և ներբեռնեք Linux ARM տարբերակը: Հաջորդը սեղմել և տեղադրել.
$ tar -xvf arduino-X. Y. Z-linuxarm.tar.xz
Սա պետք է ապամոնտաժի ֆայլը arduino-X. Y. Z պանակին: Գործարկել:
$ sudo./arduino-X. Y. Z/install.sh
Սա պետք է տեղադրի IDE- ն: Տեղադրման ավարտից հետո սկսեք IDE- ն:
- Arduino IDE- ից անցեք Ֆայլ> Նախապատվություններ: Նախընտրանքների պատուհանի ներքևում փնտրեք «Լրացուցիչ խորհրդի ղեկավարների հասցեներ»: Մուտքագրեք https://arduino.esp8266.com/stable/package_esp8266com_index.json «Տախտակի կառավարչի լրացուցիչ հասցեներ» դաշտում, կտտացրեք «Լավ» կոճակին:
- Գնացեք Գործիքներ> Տախտակ. XXX> Տախտակների կառավարիչ: Պատուհանում օգտագործեք որոնումը կամ ոլորեք ներքև, ընտրեք ESP8266 տախտակի ընտրացանկը և կտտացրեք տեղադրել: Սպասեք, մինչև տեղադրումը ավարտվի և փակվի պատուհանը:
- Կրկին գնացեք Գործիքներ> Տախտակ. XXX և փնտրեք ESP8266 տախտակներ: Ընտրեք ընդհանուր ESP8266 մոդուլ:
Այժմ IDE- ն պատրաստ է ծրագրավորել ESP8266 ծրագիրը: Մուտքագրեք կամ տեղադրեք ցանկալի կոդը IDE պատուհանում և պահեք այն: Սեղմեք Վերբեռնել: Flash.py տերմինալից սկսած, սա պետք է ձեր խորհուրդը դնի ծրագրավորման ռեժիմ: Սպասեք մի քանի րոպե, մինչև IDE- ն կավարտի կազմման և վերբեռնումը (նկատ. Այժմ ձեր ESP-01 խորհուրդը պատրաստ է կատարել պարտականությունները:
Խորհուրդ ենք տալիս:
Մեծ ֆորմատի ադապտեր ձեր առանց հայելային տեսախցիկի համար. 10 քայլ (նկարներով)
Խոշոր ձևաչափի ադապտեր ձեր առանց հայելային տեսախցիկի համար. Digitalամանակակից թվային տեսախցիկները տպավորիչ փոքր են, բայց երբեմն մեծերը գեղեցիկ են: Խոշոր ֆորմատի տեսախցիկներ, որոնք առավել հաճախ նախագծված են ընդունելու 4 " x5 " կտրել թերթիկ ֆիլմը, ունենալ որոշակի հմայք: Դա ոչ միայն այն պատճառով է, որ մեծ ֆիլմը թույն է, այլ նաև
Arduino տոնային գեներատոր `առանց գրադարանի կամ սերիական գործառույթների (ընդհատումներով). 10 քայլ
Arduino Tone Generator Առանց գրադարանի կամ սերիական գործառույթների (ընդհատումներով). Սա այն չէ, ինչին սովորաբար սովորեցնելու հնարավորություն ունեի, ես նախընտրում եմ իմ մետաղագործությունը, բայց քանի որ էլեկտրատեխնիկայի ուսանող եմ և պետք է դասեր անցնեմ միկրոկոնտրոլերների վրա ( Ներկառուցված համակարգերի ձևավորում), ես մտածեցի, որ իմ ձեռնարկներից մեկի վրա ուսանելի կդարձնեմ
Cisco Console to Null մոդեմի սերիական ադապտեր `4 քայլ
Cisco Console to Null Modem սերիական ադապտեր. Ներկայումս ես USB- ով անցնում եմ սերիական մալուխով (քանի որ նոութբուքումս սերիական նավահանգիստ չկա), Cisco վահանակի մալուխ և մոդեմի զրոյական մալուխ (ավելի հին անջատիչների և այլ սարքավորումների համար): Երբ ես աշխատում եմ ավելի հին սարքավորումների վրա, ես պետք է անջատեմ իմ Cisco- ն
RS232- ից TTL սերիական ադապտեր հավաքելը `8 քայլ
RS232- ի TTL սերիական ադապտերի հավաքում. RS232- ի TTL սերիական ադապտերների հավաքածուի քայլ առ քայլ հավաքում moderndevice.com- ից: Սա հիանալի տարբերակ է Arduino կամ Arduino կլոնը պարզ հին սերիական պորտին միացնելու համար: Այն ուղղակիորեն զուգակցվում է BBB- ի կամ RBBB- ի հետ, կամ կապումները կարող են փոխարկվել f
Aptրոյական արժեք ունեցող նոութբուքի հովացուցիչ սարք / տակդիր (առանց սոսնձի, առանց հորատման, առանց ընկույզների և պտուտակների, առանց պտուտակների) ՝ 3 քայլ
Zero Cost Laptop Cooler / Stand (No Glue, No Drilling, No Nuts & Bolts, No Screws): UPDATE: PLEASE KINDLY VOTE FOR MY INSTRUCTABLE, THANKS ^ _ ^ YOU KEST MOTO LIKE Մուտք գործեք www.instructables.com/id/Zero-Cost-Alumin-Furnace-No-Propane-No-Glue-/ ԿԱՄ Գուցե քվեարկեք իմ լավագույն ընկերոջ համար