Բովանդակություն:
- Քայլ 1: Մասեր
- Քայլ 2: Սարքավորման հավաքում
- Քայլ 3: Լարերի տեղադրում
- Քայլ 4: MicroPython- ի տեղադրում
- Քայլ 5: Կարգավորել ցանցը
- Քայլ 6: Տեղադրեք հիմնական ծրագիրը
- Քայլ 7: Ապագա բարելավումներ
Video: MicroPython IoT Rover ՝ հիմնված WEMOS D1 (ESP-8266EX) վրա ՝ 7 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
** Թարմացում. Ես տեղադրեցի նոր տեսանյութ v2- ի համար ՝ նիզակով **
Ես անցկացնում եմ ռոբոտաշինության սեմինարներ փոքր երեխաների համար և միշտ փնտրում եմ տնտեսական հարթակներ `հետաքրքիր նախագծեր կառուցելու համար: Թեև Arduino- ի կլոններն էժան են, այն օգտագործում է C/C ++ լեզուն, որին երեխաները ծանոթ չեն: Բացի այդ, այն չունի ներկառուցված WiFi, որը պարտադիր է IoT նախագծերի համար: Մյուս կողմից, մինչ Raspberry Pi- ն ունի WIFI, և երեխաները կարող են այն ծրագրավորել Python- ի միջոցով, այն դեռ թանկարժեք հարթակ է ՝ սարքերը միացնելու և անջատելու համար պարզապես GPIO- ի մի քանի նավահանգիստների վերահսկման համար: Ինձ պետք է մի բան, որն ունի և՛ WIFI, և՛ Python հնարավորություններ: Կարծես թե ես գտա, որ իմ պատասխանը MicroPython- ով փչեց էժան ESP8266- ի վրա հիմնված տախտակի վրա:
Ի՞նչ է Micropython- ը:
Ըստ իր վեբ կայքի ՝ MicroPython- ը Python 3 ծրագրավորման լեզուների նիհար և արդյունավետ իրականացում է, որը ներառում է Python ստանդարտ գրադարանի փոքր ենթաբազմություն և օպտիմիզացված է միկրոկոնտրոլերների վրա աշխատելու և սահմանափակ միջավայրում (օրինակ ՝ ESP8266): Դա էապես Python IDE է չիպի վրա: Մեկ հիմնական առավելությունն այն է, որ դուք կարող եք ստեղծել ծածկագիր և փոխել այն արագ ՝ օգտագործելով Webrepl կոչվող վեբ դիտարկիչի հաճախորդը: (Փորձեք դա անել Arduino- ում:) Կարող եք նաև իրական ժամանակում տեսնել սենսորային տվյալները Webrepl- ում ՝ տվյալների ապամոնտաժման կամ Arduino- ում LED էկրանին ապավինելու փոխարեն:
Ի՞նչ է ESP8266- ը:
Մի խոսքով, պատկերացրեք այն որպես Arduino ՝ ներկառուցված ցանցային հնարավորություններով: Դուք կարող եք օգտագործել Arduino IDE- ն ՝ ESP8266 տախտակները ծրագրավորելու համար C/C ++ համակարգով կամ կարող եք այն լուսավորել NodeMCU- ով կամ MicroPython- ով: Այս նախագծում ես MicroPython- ը կփայլեմ ESP8266 տախտակի վրա:
Ես որոշեցի ձեռք բերել WEMOS D1, որը հիմնված է ESP8266-12EX- ի վրա, այս պարզ նախագծի համար, որտեղ ես նավարկելու եմ 2WD մեքենայով ՝ օգտագործելով վեբ դիտարկիչ: Կան այլ տախտակներ, որոնք նախատեսված են MicroPython- ի համար, բայց ես ուզում էի ինչ -որ էժան բան, որը կարող էի գցել, եթե այն չհամապատասխաներ իմ չափանիշներին: Ինչպես և սպասվում էր, այն բավարարեց իմ բոլոր պահանջները, և, ամենայն հավանականությամբ, ես կներառեմ WeMos- ը և Micropython- ը ապագա նախագծերում:
Քայլ 1: Մասեր
- Wemos D1 կամ ցանկացած ESP8266 տախտակ
- Շարժիչային վահան (ես օգտագործում եմ էժան L293D AliExpress- ից)
- 4 x AA և 9V մարտկոցների մարտկոցներ (4 x AA մարտկոցներ շարժիչների համար են, իսկ 9V ՝ Wemos տախտակի համար)
- 2WD մեքենայի շասսի
- Dupont մալուխներ
Ամեն ինչ միացնելու համար կարող է անհրաժեշտ լինել զոդման սարք, պտուտակահան և սոսինձ ատրճանակ:
Քայլ 2: Սարքավորման հավաքում
Նախ, հավաքեք շասսին ըստ հրահանգի:
Այնուհետեւ, տաք սոսինձ այլ բաղադրիչներ, ինչպես ցույց է տրված:
Շարժիչային լարերը պետք է կպցվեն շարժիչի տերմինալներին և տաք սոսինձ օգտագործեն տերմինալային միացումներն ամրացնելու համար:
Փոքր անջատիչ ամրացրեք 4AA մարտկոցի պահոցին: Սա միացնելու/անջատելու է շարժիչի վահանը:
Քայլ 3: Լարերի տեղադրում
Հետևեք իմ էլեկտրագծերի գծապատկերին, ինչպես ցույց է տրված:
Wemos դեպի Motor Shield:
D1 IN2
D2 IN1 D3 IN4 ** բաց թողնել D4 D5 IN3 GND -> GND
Motor Shield to Motor/Power:
Տերմինալ -> Ձախ շարժիչ
B տերմինալ -> Right Motor VCC -> Մարտկոց (+) GND -> Մարտկոց (-)
Քայլ 4: MicroPython- ի տեղադրում
Նախ, Wemos- ն ունի սերիական/USB չիպ, որը հիմնված է CH304G- ի վրա: Սա նույն չիպն է, որը հայտնաբերվել է էժան Arduino-clones- ում և դուք պետք է տեղադրեք համապատասխան վարորդ Mac- ի կամ PC- ի համար: Վարորդը տեղադրելու համար հետևեք այս կայքի հրահանգներին:
Միացրեք Wemos- ը ձեր համակարգչին և հաստատեք, որ ձեր համակարգիչը կարող է հայտնաբերել Wemos- ը: Mac- ում գործարկեք հետևյալ հրամանը և կտեսնեք մի սարք, որը կոչվում է /dev/tty.wchusbserial640:
$ ls -lt /dev /tty* | գլուխ
crw-rw-rw- 1 արմատային անիվ 17, 4 մարտի 2 23:31 /dev/tty.wchusbserial640
Եթե համակարգչում եք, կարող եք օգտագործել այս Instructable- ը որպես տեղեկանք:
Հաջորդը, դուք պետք է ձեր համակարգչում տեղադրեք Python 2 կամ 3, քանի որ ֆլեշ գործիքը ՝ esptool.py- ն, հիմնված է Python- ի վրա: Թեև MicroPython- ի ուղեցույցը կարող է նշել, որ գործիքը աշխատում է միայն Python 2.7 -ի հետ, բայց ես կարողացա դա Python 3 -ում գործարկել առանց որևէ խնդիրների: Ներբեռնեք վերջին Python- ը https://www.python.org կայքից և հետևեք ձեր համակարգչի կամ Mac- ի տեղադրման հրահանգներին:
Վերջապես, դուք պետք է տեղադրեք MicroPython- ը Wemos- ում: MicroPython կայքը ունի հիանալի ձեռնարկ, թե ինչպես տեղադրել MicroPython- ը ESP8266- ում: Պարզապես հետևեք տեղադրման հրահանգներին ՝ ESP8266- ով MicroPython- ով սկսելու համար:
Ստորև բերված են հրամաններ, որոնք ես օգտագործել եմ.
$ esptool.py --port /dev/tty.wchusbserial640 erase_flash
esptool.py v1.3 Միացում…. Վազում է Cesanta լուսաշող կոճղը … Ֆլեշի ջնջում (սա կարող է որոշ ժամանակ տևել)… raseնջումը տևեց 10.5 վայրկյան
$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108 -v1.8.7.bin
esptool.py v1.3 Միացում…. Cesanta flasher stub- ի գործարկում … Ֆլեշ պարամետրերը, որոնք դրված են 0x0240- ի վրա, գրել է 589824 բայթ 0x0- ով 50.8 վայրկյանում (92,8 կբիթ/վ)… Մեկնում…
MicroPython- ն այժմ տեղադրված է ձեր տախտակին:
Քայլ 5: Կարգավորել ցանցը
Մինչ MicroPython- ն այժմ տեղադրված է ձեր Wemos- ում, այն դեռ միացված չէ ձեր ցանցին: Նախ պետք է միացնել ցանցը: Mac- ում կատարեք SCREEN հրամանը ՝ Wemos- ի սերիական տերմինալի նիստը սկսելու համար:
$ screen /dev/tty.wchusbserial640 115200
Երբ դատարկ էկրան եք տեսնում, սեղմեք RETURN ՝ հուշում տեսնելու համար.
>>
(Նշում. Դուրս գալու համար մուտքագրեք CTRL-A CTRL-)
Այժմ, եկեք միացնենք վեբ -հաճախորդների մուտքը: Տեղադրման ծրագիրը գործարկելու համար մուտքագրեք «ներմուծել webrepl_setup»: Մուտքագրեք E ՝ WebREPL- ը միացնելու համար, այնուհետև գաղտնաբառ սահմանելու համար: Վերագործարկեք ՝ փոփոխություններն ակտիվացնելու համար:
>> ներմուծել webrepl_setup
WebREPL դևերի ինքնագործման կարգավիճակը. (Դուրս գալու համար դատարկ տող)> E WebREPL- ը միացնելու համար պետք է դրա համար գաղտնաբառ սահմանել: Նոր գաղտնաբառ. Xxxxx Հաստատել գաղտնաբառը. (y/n) y
Վերջապես, ներբեռնեք Webrepl հաճախորդը ձեր համակարգչին: Սա պարտադիր չէ, բայց հաճախորդը գալիս է այլ օգտակար գործիքներով, որոնք կարող եք հետագայում օգտագործել: Օրինակ, webrepl_cli.py- ն ֆայլ է Wemos- ում scp- ի նման շարահյուսությամբ պատճենելու հրաման: Օգտագործեք git ՝ հաճախորդը ներբեռնելու համար: (Տեղադրեք git գործիքը, եթե այն դեռ չունեք):
git կլոն
Բացեք ձեր վեբ դիտարկիչը և URL դաշտում մուտքագրեք ձեր ներբեռնված webrepl հաճախորդի ֆայլի գտնվելու վայրը, ինչպիսիք են ՝
ֆայլ: ///Users/xxxxx/wemos/webrepl/webrepl.html
Սա պետք է ցուցադրի webrepl հաճախորդը ձեր դիտարկիչում: Նախքան դրան միանալը, նախ պետք է միանալ դրա WIFi մուտքի կետին: Եթե նայեք ձեր համակարգչի համար առկա WIFI- ին, կտեսնեք, որ ցանցը սկսվում է MicroPython-xxxx- ով: Միացեք այդ ցանցին: (Arnգուշացում. Երբ միանաք այդ ցանցին, դուք կկորցնեք ձեր ինտերնետ հասանելիությունը):
Վերադարձեք ձեր webrepl հաճախորդին և կտտացրեք Միացեք: Այն պետք է հուշի գաղտնաբառ: Մուտքագրեք ձեր Wemos գաղտնաբառը և պետք է միանաք:
Բարի գալուստ MicroPython:
Գաղտնաբառ ՝ WebREPL- ը միացված է >>>
Ձեր Wemos- ը դեռ աշխատում է AccessPoint ռեժիմում: Թեև դա նորմալ է, ես նախընտրում եմ, որ այն աշխատի կայանի ռեժիմում, որտեղ այն միանում է իմ տան WIFI- ին, որպեսզի իմ համակարգիչը կարողանա մուտք գործել դրան WIFI- ի միջոցով և դեռ ինտերնետ ունենալ: Դա անելու համար դուք պետք է ստեղծեք boot.py անունով ֆայլ ՝ ցանցի կազմաձևով և վերբեռնեք այն Wemos- ում:
Ահա boot.py- ի օրինակ: Փոխեք ssid- ը և գաղտնաբառը ձեր տան WIFI ցանցին: Բացի այդ, ես ուզում եմ դրան տալ 192.168.0.32 ստատիկ IP: Փոխեք այն ձեր տան WIFI- ի հասանելի IP հասցեով:
boot.py (կարող եք ներբեռնել ներքևից)
ներմուծել gc
ներմուծել webrepl def do_connect (). ներմուծել ցանց sta_if = network. WLAN (network. STA_IF) եթե ոչ sta_if.isconnected (): print ('ցանցին միանալը …') sta_if.active (True) sta_if.ifconfig (('192.168. 0.32 ',' 255.255.255.0 ',' 192.168.0.1 ',' 192.168.0.1 ')) sta_if.connect (' ',' ') մինչդեռ sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()
Օգտագործեք Webrepl հաճախորդի «Ուղարկել ֆայլ» ձևը ՝ ձեր boot.py ֆայլը ձեր Wemos- ին ուղարկելու համար: Վերագործարկելու համար սեղմեք «Վերականգնել» կոճակը: Եթե դուք դեռ միացված եք USB- ի միջոցով ՝ օգտագործելով SCREEN հրամանը, կտեսնեք.
ցանցին միանալը … ցանցի կազմաձևում. ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL դևոն սկսվեց ws: //192.168.4.1: 8266 WebREPL դևոն սկսված ws: //192.168.0.32: 8266 Սովորական ռեժիմում գործարկված վեբ-որոնումը չի կարող բացել «main.py» ֆայլը MicroPython v1.8.7-7-gb5a1a20a3 կարդալու համար 2017-01-09; ESP մոդուլ ESP8266- ով Լրացուցիչ տեղեկությունների համար մուտքագրեք «օգնություն ()»: >>>
Սա հաստատում է, որ ձեր Wemos- ը միացված է ձեր տան WIFI- ին ՝ օգտագործելով 192.168.0.32 -ի ipaddress հասցեն:
Դուք կարող եք պինգ անել այդ IP հասցեին ՝ վավերացնելու համար:
պինգ $ 192.168.0.32
PING 192.168.0.32 (192.168.0.32) ՝ 56 տվյալների բայթ
64 բայթ 192.168.0.32 -ից ՝ icmp_seq = 0 ttl = 255 անգամ = 9.334 ms 64 բայթ 192.168.0.32 -ից ՝ icmp_seq = 1 ttl = 255 անգամ = 11.071 մվ..
Քայլ 6: Տեղադրեք հիմնական ծրագիրը
Վերջապես, դուք պետք է տեղադրեք հիմնական ծրագիրը, որը կշարունակի գործել ձեր Wemos- ում:
Վերադարձեք ձեր վեբ դիտարկիչ և գործարկեք webrepl հաճախորդի ծրագիրը: Փոխեք IP հասցեն ձեր Wemos- ի IP հասցեին: Իմ դեպքում, այժմ 192.168.0.32 է: Մուտքագրեք ձեր Wemos գաղտնաբառը և այժմ պետք է միացված լինեք Wemos- ին:
Եկեք վերբեռնենք կցված main.py ծրագիրը: Ներբեռնեք կցված ֆայլը ձեր համակարգչում: Կտտացրեք Ընտրեք ֆայլ ՝ ներբեռնված main.py- ն ընտրելու համար և կտտացրեք Ուղարկված սարքին:
Main.py ծրագիրը բեռնելու համար հարկավոր է սեղմել Rest կոճակը: Վերականգնել կոճակը սեղմելուց հետո կտեսնեք.
միանում է ցանցին…
ցանցի կազմաձևում ՝ ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')
WebREPL դևը սկսվեց ws: //192.168.4.1: 8266 WebREPL դևը սկսվեց ws: //192.168.0.32: 8266 Webrepl- ը սկսեց նորմալ ռեժիմով Լսելը, ձեր դիտարկիչը միացրեք…
Սա նշանակում է, որ ձեր main.py ծրագիրը ակտիվացված է և նշվում է 80 -րդ նավահանգստում:
Փորձարկելու համար բացեք ձեր վեբ դիտարկիչը և մուտքագրեք
Սա պետք է ցուցադրի մեքենայի կառավարման էկրանը, ինչպես ցույց է տրված տեսանյութում: Եթե ձեր լարերը միացված են ճիշտ, կառավարման կոճակները համապատասխան ազդանշաններ կուղարկեն ձեր GPIO նավահանգիստներին ՝ մեքենան տեղափոխելու համար:
Քայլ 7: Ապագա բարելավումներ
Հետևյալ անելիքները իմ v2 ցուցակում են.
- Օգտագործեք PWM ՝ շարժիչի արագությունը վերահսկելու համար
- Բարելավել վեբ ինտերֆեյսը: Միգուցե օգտագործեք aREST շրջանակ: Չեմ հավատում, որ այս պահին aREST lib- ը հասանելի է MicroPython- ում, որպեսզի գուցե ստիպված լինեմ կոտրել այն:
Շնորհակալություն այս Ուղեցույցը կարդալու համար: Հետևեք ինձ Facebook- ում, Youtube- ում և Instructables- ում `ապագայում ավելի շատ նախագծերի համար:
Խորհուրդ ենք տալիս:
Ինչպես կատարել IoT- ի վրա հիմնված տան ավտոմատացում NodeMCU սենսորների կառավարման ռելեի միջոցով. 14 քայլ (նկարներով)
Ինչպես կատարել IoT- ի վրա հիմնված տան ավտոմատացում NodeMCU սենսորների կառավարման ռելեի միջոցով. IoT- ի վրա հիմնված այս նախագծում ես Blynk- ով և NodeMCU կառավարման ռելեի մոդուլով իրական տնային ավտոմատացում իրական ժամանակի հետադարձ կապով: Ձեռնարկի ռեժիմում այս ռելեի մոդուլը կարող է կառավարվել բջջայինից կամ սմարթֆոնից և, ձեռքով անջատիչից: Ավտոմատ ռեժիմում այս սարսափը
Առանց էկրանի / ցուցադրման (առանց գլխի) աշխատելը Raspberry Pi- ի կամ Linux- ի վրա հիմնված այլ համակարգիչների վրա `6 քայլ
Առանց էկրանի / ցուցադրման (առանց գլխի) աշխատելը Raspberry Pi- ի կամ Linux- ի / unix- ի վրա հիմնված այլ համակարգիչների վրա. Երբ մարդկանց մեծ մասը գնում է Raspberry PI, նրանք կարծում են, որ իրենց անհրաժեշտ է համակարգչի էկրան: Մի վատնեք ձեր գումարը համակարգչի անհարկի մոնիտորների և ստեղնաշարերի վրա: Մի վատնեք ձեր ժամանակը համակարգիչների միջև ստեղնաշարեր և մոնիտորներ տեղափոխելով: Մի կապեք հեռուստացույց, երբ այն չկա
Arduino- ի վրա հիմնված ոչ կոնտակտային ինֆրակարմիր ջերմաչափ - IR- ով հիմնված ջերմաչափ Arduino- ի միջոցով. 4 քայլ
Arduino- ի վրա հիմնված ոչ կոնտակտային ինֆրակարմիր ջերմաչափ | IR- ով հիմնված ջերմաչափ Arduino- ի միջոցով. Բարև ձեզ, այս հրահանգների մեջ մենք կդարձնենք ոչ կոնտակտային ջերմաչափ arduino- ով: Քանի որ երբեմն հեղուկի/պինդի ջերմաստիճանը չափազանց բարձր է կամ ցածր, ապա դժվար է դրա հետ կապ հաստատել և կարդալ այդ դեպքում ջերմաստիճանը
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 վրա հիմնված միջինի գեներատոր). 4 քայլ (նկարներով)
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 Based Midi Generator). Բարև, այսօր ես կբացատրեմ, թե ինչպես պատրաստել ձեր սեփական եղանակի վրա հիմնված փոքր երաժշտության գեներատոր: Այն հիմնված է ESP8266- ի վրա, որը նման է Arduino- ին և արձագանքում է ջերմաստիճանին, անձրևին: և լույսի ուժգնություն: Մի ակնկալեք, որ այն ամբողջ երգեր կամ ակորդներ կհաղորդի
Ինչպես միացնել MicroPython- ի որոնվածը ESP8266- ի վրա հիմնված Sonoff խելացի անջատիչի վրա. 3 քայլ (նկարներով)
Ինչպե՞ս միացնել MicroPython- ի որոնվածը ESP8266- ի վրա հիմնված Sonoff խելացի անջատիչի վրա. Այդ գծից ամենաճկուն և էժան սարքերից են Sonoff Basic- ը և Sonoff Dual- ը: Սրանք Wi-Fi- ով միացված անջատիչներ են ՝ հիմնված հիանալի չիպի ՝ ESP8266- ի վրա: Մինչդեռ