Mundarija:

WEMOS D1 (ESP-8266EX) ga asoslangan MicroPython IoT Rover: 7 qadam (rasmlar bilan)
WEMOS D1 (ESP-8266EX) ga asoslangan MicroPython IoT Rover: 7 qadam (rasmlar bilan)

Video: WEMOS D1 (ESP-8266EX) ga asoslangan MicroPython IoT Rover: 7 qadam (rasmlar bilan)

Video: WEMOS D1 (ESP-8266EX) ga asoslangan MicroPython IoT Rover: 7 qadam (rasmlar bilan)
Video: Start Using Wemos D1 Mini NodeMCU WiFi ESP8266 module with Arduino 2024, Noyabr
Anonim
Image
Image
WEMOS D1 (ESP-8266EX) ga asoslangan MicroPython IoT Rover
WEMOS D1 (ESP-8266EX) ga asoslangan MicroPython IoT Rover

** Yangilash: men nayzali v2 uchun yangi videoni joylashtirdim **

Men yosh bolalar uchun robototexnika bo'yicha seminarlar o'tkazaman va men har doim iqtisodiy loyihalarni yaratish uchun iqtisodiy platformalarni qidiraman. Arduino klonlari arzon bo'lsa -da, u bolalar bilmagan C/C ++ tilidan foydalanadi. Bundan tashqari, u IoT loyihalari uchun zarur bo'lgan o'rnatilgan Wi-Fi-ga ega emas. Boshqa tomondan, Raspberry Pi -da Wi -Fi mavjud bo'lsa va bolalar uni Python -dan dasturlashlari mumkin bo'lsa -da, bu qurilmalarni yoqish va o'chirish uchun GPIO -ning bir nechta portlarini boshqarish uchun qimmat platforma. Menga WIFI va Python imkoniyatlariga ega bo'lgan narsa kerak. Ko'rinib turibdiki, men javobimni MicroPython-da ESP8266 asosidagi arzon taxtaga tushdim.

Micropython nima?

O'z veb -saytiga ko'ra, MicroPython - bu Python standart kutubxonasining kichik bir qismini o'z ichiga olgan Python 3 dasturlash tillarining sodda va samarali qo'llanilishi va u mikrokontrollerlarda va cheklangan muhitda (ESP8266 kabi) ishlash uchun optimallashtirilgan. Bu asosan chipdagi Python IDE. Katta afzalliklardan biri shundaki, siz Webrepl deb nomlangan veb-brauzer mijozi yordamida kod yaratishingiz va uni tezda o'zgartirishingiz mumkin. (Buni Arduino-da bajarishga harakat qiling.) Arduino-dagi ma'lumotlarni yozish yoki LED-ekranga tayanish o'rniga, Webrepl-da real vaqtda sensor ma'lumotlarini ko'rishingiz mumkin.

ESP8266 nima?

Muxtasar qilib aytganda, buni o'rnatilgan tarmoq qobiliyatiga ega Arduino deb tasavvur qiling. Siz C/C ++ da ESP8266 platalarini dasturlash uchun Arduino IDE -dan foydalanishingiz mumkin yoki uni NodeMCU yoki MicroPython yordamida o'chirib qo'yishingiz mumkin. Ushbu loyihada men MicroPython -ni ESP8266 taxtasida yondiraman.

Men ushbu oddiy loyiha uchun ESP8266-12EX asosidagi WEMOS D1 ni olishga qaror qildim, u erda 2WD rusumli avtomashinani veb-brauzer yordamida boshqaraman. MicroPython uchun mo'ljallangan boshqa taxtalar ham bor, lekin men o'zimning mezonimga mos kelmasa, tashlab yuboradigan arzon narsani xohlardim. Kutilganidek, bu mening barcha talablarimga javob berdi va men, ehtimol, kelajakdagi loyihalarga WeMos va Micropythonni kiritaman.

1 -qadam: qismlar

Qismlar
Qismlar
Qismlar
Qismlar
Qismlar
Qismlar
Qismlar
Qismlar
  • Wemos D1 yoki har qanday ESP8266 asosidagi taxtalar
  • Dvigatel qalqoni (men AliExpress -dan arzon L293D ishlataman)
  • 4 x AA va 9 V batareya ushlagichlari (4 x AA batareyalar dvigatellar uchun, 9 V esa Wemos platasi uchun)
  • 2WD avtomobil shassisi
  • Dupont kabellari

Hamma narsani birlashtirish uchun lehimlantiruvchi temir, tornavida va yopishtiruvchi qurol kerak bo'lishi mumkin.

2 -qadam: Uskuna yig'ish

Uskuna yig'ish
Uskuna yig'ish
Uskuna yig'ish
Uskuna yig'ish
Uskuna yig'ish
Uskuna yig'ish

Birinchidan, yo'riqnomaga muvofiq shassisni yig'ing.

Keyin, ko'rsatilganidek, boshqa komponentlarni issiq yopishtiring.

Dvigatel simlari dvigatel terminallariga lehimli bo'lishi kerak va terminal bo'g'inlarini mustahkamlash uchun issiq elimdan foydalanish kerak.

4AA batareya ushlagichiga kichik kalit o'rnatilgan. Bu vosita qalqoni quvvatini yoqadi/o'chiradi.

3 -qadam: simlarni ulash

Ulanish
Ulanish
Ulanish
Ulanish
Ulanish
Ulanish

Ko'rsatilganidek, mening ulanish sxemasiga amal qiling.

Dvigatel qalqoniga Wemos:

D1 IN2

D2 IN1 D3 IN4 ** o'tish D4 D5 IN3 GND -> GND

Dvigatel qalqoni/quvvat:

Terminal -> Chap motor

B terminali -> VCC o'ng dvigateli -> Batareya (+) GND -> Batareya (-)

4 -qadam: MicroPython -ni o'rnatish

Birinchidan, Wemos CH304G -ga asoslangan ketma -ket/USB chipga ega. Bu arzon Arduino-klonlarida mavjud bo'lgan chip va siz Mac yoki shaxsiy kompyuter uchun tegishli drayverni o'rnatishingiz kerak. Drayverni o'rnatish uchun ushbu saytdagi ko'rsatmalarga amal qiling.

Wemos -ni kompyuteringizga ulang va kompyuteringiz Wemos -ni aniqlay olishini tasdiqlang. Mac -da quyidagi buyruqni bajaring va siz /dev/tty.wchusbserial640 nomli qurilmani ko'rasiz.

$ ls -lt /dev /tty* | bosh

crw-rw-rw- 1 ildiz g'ildiragi 17, 4 mart 2 23:31 /dev/tty.wchusbserial640

Agar siz kompyuterda bo'lsangiz, siz ushbu ko'rsatmalarni mos yozuvlar sifatida ishlatishingiz mumkin.

Keyinchalik, kompyuteringizda Python 2 yoki 3 ni o'rnatishingiz kerak bo'ladi, chunki esptool.py flesh -vositasi Python -ga asoslangan. MicroPython qo'llanmasida bu vosita faqat Python 2.7 bilan ishlaydi, deb aytsa ham, men buni Python 3 da hech qanday muammosiz ishga tushirdim. Oxirgi Python -ni https://www.python.org saytidan yuklab oling va kompyuter yoki Mac uchun o'rnatish ko'rsatmalariga rioya qiling.

Va nihoyat, siz MicroPython -ni Wemos -ga o'rnatishingiz kerak bo'ladi. MicroPython saytida ESP8266 -da MicroPython -ni sozlash bo'yicha ajoyib qo'llanma mavjud. ESP8266 -da MicroPython -ni ishga tushirishda o'rnatish ko'rsatmalariga amal qiling.

Quyida men ishlatgan buyruqlar:

$ esptool.py --port /dev/tty.wchusbserial640 erase_flash

esptool.py v1.3 ulanmoqda…. Cesanta flasher stubini ishga tushirish … Chiroqni o'chirish (biroz vaqt ketishi mumkin)… O'chirish 10,5 soniya davom etdi

$ 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 ulanmoqda…. Cesanta flasher stubini ishga tushirish … Flash parametrlari 0x0240 ga o'rnatildi 589824 baytni 0x0 da 50,8 soniyada (92,8 kbit/s) yozdi… Chiqish…

Endi sizning kartangizga MicroPython o'rnatilgan!

5 -qadam: Tarmoqni sozlash

Tarmoqni sozlash
Tarmoqni sozlash

MicroPython hozir Wemos -ga o'rnatilgan bo'lsa -da, u hali tarmog'ingizga ulanmagan. Avval siz tarmoqni yoqishingiz kerak. Mac -da, Wemos -ga ketma -ket terminal sessiyasini boshlash uchun SCREEN buyrug'ini bajaring.

$ ekran /dev/tty.wchusbserial640 115200

Bo'sh ekranni ko'rsangiz, bildirishnomani ko'rish uchun RETURN tugmasini bosing:

>>

(Eslatma: Chiqish uchun CTRL-A CTRL- / ni kiriting)

Endi veb -mijozlarga kirishni yoqamiz. O'rnatish dasturini ishga tushirish uchun "import webrepl_setup" yozing. WebREPL -ni yoqish uchun E kiriting va parolni o'rnating. O'zgarishlarni faollashtirish uchun qayta yoqing.

>> webrepl_setup -ni import qiling

WebREPL daemon avtomatik ishga tushirish holati: o'chirilgan (E) ulanishni xohlaysizmi yoki (D) yuklashda ishlashini xohlaysizmi? (Chiqish uchun bo'sh satr)> E WebREPL -ni yoqish uchun siz unga parol o'rnatishingiz kerak Yangi parol: xxxxx Parolni tasdiqlang: xxxxx Qayta ishga tushirilgandan so'ng o'zgarishlar faollashadi Siz hozir qayta yoqishni xohlaysizmi? (y/n) y

Nihoyat, Webrepl mijozini kompyuteringizga yuklab oling. Bu ixtiyoriy, lekin mijoz boshqa foydali asboblar bilan birga keladi, ularni keyinchalik ishlatishingiz mumkin. Masalan, webrepl_cli.py-bu fayllarni Wemos-ga scp-ga o'xshash sintaksisda nusxalash buyrug'i. Mijozni yuklab olish uchun git dan foydalaning. (Agar sizda hali bo'lmasa, git vositasini o'rnating.)

git klon

Veb -brauzeringizni oching va URL maydoniga yuklab olingan webrepl mijoz faylining manzilini kiriting, masalan:

fayl: ///Users/xxxxx/wemos/webrepl/webrepl.html

Bu brauzerda webrepl mijozini ko'rsatishi kerak. Ulanishdan oldin, avval WIFi kirish nuqtasiga ulanishingiz kerak. Agar siz kompyuteringiz uchun mavjud Wi-Fi tarmog'iga qarasangiz, MicroPython-xxxx bilan boshlangan tarmoqni ko'rasiz. U tarmoqqa ulaning. (Ogohlantirish: Agar siz tarmoqqa ulansangiz, siz Internetga kira olmaysiz.)

Webrepl mijozingizga qayting va Ulanish -ni bosing. U parolni so'rashi kerak. Wemos parolini kiriting va siz ulanishingiz kerak.

MicroPython -ga xush kelibsiz!

Parol: WebREPL ulangan >>>

Sizning Wemos hali ham AccessPoint rejimida ishlaydi. Bu yaxshi bo'lsa -da, men uni stantsiya rejimida ishlashni afzal ko'raman, u mening uy Wi -Fi tarmog'imga ulanadi, shunda mening kompyuterim unga uy Wi -Fi tarmog'i orqali kirishi va Internetga kirishi mumkin. Buni amalga oshirish uchun siz tarmoq konfiguratsiyasiga ega boot.py faylini yaratishingiz va uni Wemos -ga yuklashingiz kerak bo'ladi.

Bu erda boot.py namunasi. Ssid va parolni uy WIFI tarmog'iga o'zgartiring. Bundan tashqari, men unga 192.168.0.32 statik IP berishni xohlayman. Uni uy WIFI -ning mavjud IP -manziliga o'zgartiring.

boot.py (uni pastdan yuklab olishingiz mumkin)

gc import qilish

import webrepl def do_connect (): import sta_if = network. WLAN (network. STA_IF) sta_if.isconnected (): chop etish ('tarmoqqa ulanish…') sta_if.active (To'g'ri) sta_if.ifconfig (('192.168. 0.32 ',' 255.255.255.0 ',' 192.168.0.1 ',' 192.168.0.1 ')) sta_if.connect (' ',' ') emas, balki sta_if.isconnected (): o'tishni bosib o'tish (' tarmoq konfiguratsiyasi: ', sta_if).ifconfig ()) do_connect () webrepl.start () gc.collect ()

Boot.py faylini Wemos -ga yuborish uchun Webrepl mijozining "Fayl yuborish" formasidan foydalaning. Qayta ishga tushirish uchun reset tugmasini bosing. Agar siz hali ham SCREEN buyrug'i yordamida USB orqali ulangan bo'lsangiz, quyidagilarni ko'rasiz:

tarmoqqa ulanish… tarmoq konfiguratsiyasi: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL demoni ws: //192.168.4.1: 8266 da ishga tushirildi: //192.168.0.32: 8266 Oddiy rejimda ishga tushirilgan webrepl 2017-01-09 da MicroPython v1.8.7-7-gb5a1a20a3 ni o'qish uchun 'main.py' faylini ocholmadi; ESP8266 bilan ESP moduli Qo'shimcha ma'lumot olish uchun "help ()" yozing. >>>

Bu sizning Wemos -ni uy WIFI -ga 192.168.0.32 IP -manzili orqali ulanganligini tasdiqlaydi.

Tasdiqlash uchun siz ushbu IP -manzilga ping yuborishingiz mumkin.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 ma'lumotlar bayti

192.168.0.32 dan 64 bayt: icmp_seq = 0 ttl = 255 vaqt = 9.334 ms 192.168.0.32 dan 64 bayt: icmp_seq = 1 ttl = 255 vaqt = 11.071 mil.

6 -qadam: Asosiy dasturni o'rnating

Asosiy dasturni o'rnating
Asosiy dasturni o'rnating
Asosiy dasturni o'rnating
Asosiy dasturni o'rnating

Nihoyat, siz Wemos -da ishlashda davom etadigan asosiy dasturni o'rnatishingiz kerak bo'ladi.

Veb -brauzeringizga qayting va webrepl mijoz dasturini ishga tushiring. IP -manzilni Wemos -ning IP -manziliga o'zgartiring. Menimcha, hozir 192.168.0.32. Wemos parolingizni kiriting va endi siz Wemos -ga ulangan bo'lishingiz kerak.

Keling, biriktirilgan main.py dasturini yuklaylik. Qo'shilgan faylni kompyuteringizga yuklab oling. Yuklab olingan main.py faylini tanlash uchun Fayl tanlash -ni bosing va Qurilmaga yuborilgan -ni bosing.

Main.py dasturini yuklash uchun Rest tugmasini bosishingiz kerak bo'ladi. Qayta tiklash tugmachasini bosgandan so'ng, siz ko'rasiz:

tarmoqqa ulanmoqda…

tarmoq konfiguratsiyasi: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

WebREPL demon ws: //192.168.4.1: 8266 da ishlay boshladi WebREPL demon ws: //192.168.0.32: 8266 da ishga tushdi, webrepl normal rejimda ishga tushdi, tinglanmoqda, brauzeringizni ulang…

Bu shuni anglatadiki, main.py dasturi faollashtirilgan va 80 -portga ro'yxatga olingan.

Sinab ko'rish uchun veb -brauzeringizni oching va https:// kiriting.

Bu videoda ko'rsatilgandek avtomobilni boshqarish ekranini ko'rsatishi kerak. Agar simlaringiz to'g'ri ulangan bo'lsa, boshqaruv tugmalari mashinani harakatlantirish uchun GPIO portlariga to'g'ri signallarni yuboradi.

7 -qadam: kelajakdagi yaxshilanishlar

Quyidagi vazifalar mening v2 ro'yxatimda:

  • Dvigatel tezligini boshqarish uchun PWM -dan foydalaning
  • Veb -interfeysni yaxshilash. Ehtimol, aREST ramkasidan foydalaning. Hozir MicroPython -da aREST lib mavjudligiga ishonmayman, shuning uchun uni buzishim kerak bo'lishi mumkin.

Ushbu ko'rsatmalarni o'qiganingiz uchun tashakkur. Kelajakda boshqa loyihalar uchun meni Facebook, Youtube va Instructables -da kuzatib boring.

Tavsiya: