Mündəricat:

WEMOS D1 (ESP-8266EX) əsasında hazırlanmış MicroPython IoT Rover: 7 addım (şəkillərlə birlikdə)
WEMOS D1 (ESP-8266EX) əsasında hazırlanmış MicroPython IoT Rover: 7 addım (şəkillərlə birlikdə)

Video: WEMOS D1 (ESP-8266EX) əsasında hazırlanmış MicroPython IoT Rover: 7 addım (şəkillərlə birlikdə)

Video: WEMOS D1 (ESP-8266EX) əsasında hazırlanmış MicroPython IoT Rover: 7 addım (şəkillərlə birlikdə)
Video: ESP8266 и Ардуино. Wemos D1 Mini Pro 2024, Iyul
Anonim
Image
Image
WEMOS D1 (ESP-8266EX) əsasında MicroPython IoT Rover
WEMOS D1 (ESP-8266EX) əsasında MicroPython IoT Rover

** Yeniləmə: V2 üçün yeni bir video açdım.

Gənc uşaqlar üçün Robototexnika seminarlarına ev sahibliyi edirəm və həmişə maraqlı layihələr qurmaq üçün iqtisadi platformalar axtarıram. Arduino klonları ucuz olsa da, uşaqların tanımadığı C/C ++ dilindən istifadə edir. Ayrıca, IoT layihələri üçün zəruri olan daxili WiFi yoxdur. Digər tərəfdən, Raspberry Pi -də WIFI olsa da və uşaqlar Python istifadə edərək proqramlaşdıra bilsələr də, cihazları yandırıb söndürmək üçün bir neçə GPIO portunu idarə etmək hələ də bahalı bir platformadır. Aralarında WIFI və Python imkanlarına sahib bir şeyə ehtiyacım var. Cavabımı MicroPython-da ucuz bir ESP8266 əsaslı lövhəyə yuvarlandığını gördüm.

Micropython nədir?

Veb saytına görə, MicroPython, Python standart kitabxanasının kiçik bir alt qrupunu ehtiva edən Python 3 proqramlaşdırma dillərinin arıq və səmərəli bir tətbiqidir və mikro nəzarətçilərdə və məhdud mühitdə (ESP8266 kimi) çalışmaq üçün optimallaşdırılmışdır. Əsasən bir çipdəki Python IDE -dir. Bir böyük fayda, Webrepl adlı bir veb brauzer müştərisini istifadə edərək kod yarada və dərhal dəyişə bilərsiniz. (Bunu Arduinoda etməyə çalışın.) Arduinoda məlumat girişinə və ya LED ekrana güvənmək əvəzinə Webrepl-də real vaxt rejimində sensor məlumatlarını görə bilərsiniz.

ESP8266 nədir?

Bir sözlə, daxili şəbəkə qabiliyyətinə malik bir Arduino kimi düşünün. ESP8266 lövhələrini C/C ++ proqramlaşdırmaq üçün Arduino IDE -dən istifadə edə bilərsiniz və ya NodeMCU və ya MicroPython ilə yandıra bilərsiniz. Bu layihədə, MicroPython'u bir ESP8266 lövhəsinə yandıracağam.

Veb brauzerindən istifadə edərək 2WD avtomobili gəzəcəyim bu sadə layihə üçün ESP8266-12EX-ə əsaslanan WEMOS D1 almağa qərar verdim. MicroPython üçün hazırlanmış digər lövhələr var, amma meyarlarımı yerinə yetirməsə ata biləcəyim ucuz bir şey istədim. Gözlənildiyi kimi, bütün tələblərimə cavab verdi və çox güman ki, gələcək layihələrə WeMos və Micropython daxil edəcəyəm.

Addım 1: hissələr

Hissələri
Hissələri
Hissələri
Hissələri
Hissələri
Hissələri
Hissələri
Hissələri
  • Wemos D1 və ya hər hansı bir ESP8266 əsaslı lövhə
  • Motor qalxanı (AliExpress -dən ucuz L293D istifadə edirəm)
  • 4 x AA və 9V üçün batareya tutacaqları (4 x AA batareyaları mühərriklər üçün, 9V isə Wemos lövhəsi üçündür)
  • 2WD avtomobil şassisi
  • Dupont kabelləri

Hər şeyi bir araya gətirmək üçün bir lehimləmə dəmirinə, tornavidaya və yapışqan tabancasına ehtiyac ola bilər.

Addım 2: Avadanlıq Montajı

Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı
Avadanlıq Montajı

Əvvəlcə təlimatlara uyğun olaraq şassi yığın.

Sonra göstərildiyi kimi digər komponentləri isti yapışdırın.

Motor telləri motor terminallarına lehimlənməli və terminal birləşmələrini gücləndirmək üçün isti yapışqan istifadə edilməlidir.

4AA batareya tutacağına kiçik bir keçid yapışdırıldı. Bu, motor qalxanının gücünü açacaq/söndürəcək.

Addım 3: Kabel çəkmə

Kablolama
Kablolama
Kablolama
Kablolama
Kablolama
Kablolama

Göstərildiyi kimi bağlama sxemimi izləyin.

Motor Qalxanına Wemos:

D1 IN2

D2 IN1 D3 IN4 ** atla D4 D5 IN3 GND -> GND

Motor Qalxanı Motora/Gücə:

Terminal -> Sol Motor

B terminali -> Sağ Motorlu VCC -> Batareya (+) GND -> Batareya (-)

Addım 4: MicroPython Quraşdırması

Birincisi, Wemos, CH304G əsaslı bir serial/USB çipinə malikdir. Bu ucuz Arduino klonlarında olan eyni çipdir və Mac və ya PC üçün uyğun bir sürücü quraşdırmalısınız. Sürücü qurmaq üçün bu saytdakı təlimatları izləyin.

Wemos'u kompüterinizə qoşun və kompüterinizin Wemos'u aşkar edə biləcəyini təsdiq edin. Mac -da aşağıdakı əmri işlədin və /dev/tty.wchusbserial640 adlı bir cihaz görəcəksiniz.

$ ls -lt /dev /tty* | baş

crw-rw-rw- 1 kök təkər 17, 4 Mar 2 23:31 /dev/tty.wchusbserial640

PC -də olsanız, bu Təlimatçını istinad olaraq istifadə edə bilərsiniz.

Bundan sonra, esptool.py adlı flash vasitəsi Pythona əsaslandığından kompüterinizdə Python 2 və ya 3 qurmalısınız. MicroPython bələdçisi, alətin yalnız Python 2.7 ilə işlədiyini söyləsə də, bunu Python 3 -də heç bir problem olmadan işlədə bildim. Ən son Python proqramını https://www.python.org saytından yükləyin və PC və ya Mac üçün quraşdırma təlimatlarına əməl edin.

Nəhayət, Wemos -da MicroPython quraşdırmalısınız. MicroPython saytında, ESP8266 -da MicroPython -un necə qurulacağına dair əla bir dərs var. ESP8266 -da MicroPython ilə işə başlamağınızdakı quraşdırma təlimatlarına əməl edin.

Aşağıda istifadə etdiyim əmrlər:

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

esptool.py v1.3 Qoşulur…. Cesanta flaşör kötüyü işlədilir… Flaşın silinməsi (bir az vaxt ala bilər)… Silmə 10.5 saniyə çəkdi

$ 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 Qoşulur…. Cesanta flasher stubunu işə salmaq… Flaş parametrləri 0x0240 olaraq təyin olundu 50.8 saniyədə (92.8 kbit/s) 0x0 -da 589824 bayt yazdı … Ayrılır…

MicroPython artıq lövhənizdə quraşdırılıb!

Addım 5: Şəbəkə qurun

Şəbəkə qurmaq
Şəbəkə qurmaq

MicroPython indi Wemos -da quraşdırılsa da, hələ şəbəkənizə qoşulmayıb. Əvvəlcə şəbəkəni aktivləşdirməlisiniz. Mac -da, serial terminal seansını Wemos -a başlamaq üçün SCREEN əmrini yerinə yetirin.

$ ekran /dev/tty.wchusbserial640 115200

Boş bir ekran gördüyünüz zaman bir sorğu görmək üçün RETURN vurun:

>>

(Qeyd: Çıxmaq üçün CTRL-A CTRL- / yazın)

İndi veb müştəri girişini aktiv edək. Quraşdırma proqramını işə salmaq üçün "import webrepl_setup" yazın. WebREPL -i aktivləşdirmək üçün E daxil edin və sonra parol təyin edin. Dəyişiklikləri aktivləşdirmək üçün yenidən başladın.

>> idxal webrepl_setup

WebREPL daemon avtomatik başlanğıc statusu: deaktivdir (E) işə salmaq və ya (D) açılışda işləməsini istəyərsinizmi? (Çıxmaq üçün boş xətt)> E WebREPL -i aktiv etmək üçün bunun üçün parol təyin etməlisiniz Yeni parol: xxxxx Şifrəni təsdiq edin: xxxxx Yenidən başladıqdan sonra dəyişikliklər aktiv olacaq İndi yenidən başlatmaq istərdinizmi? (y/n) y

Nəhayət, Webrepl müştərisini maşınınıza yükləyin. Bu isteğe bağlıdır, lakin müştəri daha sonra istifadə etmək istəyə biləcəyiniz digər faydalı vasitələrlə gəlir. Məsələn, webrepl_cli.py, sənədləri scp kimi sintaksisdə Wemos-a kopyalamaq üçün əmrdir. Müştərini yükləmək üçün git istifadə edin. (Hələ yoxsa git alətini quraşdırın.)

git klonu

Veb brauzerinizi açın və URL sahəsinə endirdiyiniz webrepl müştəri faylının yerini daxil edin:

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

Bu, webrepl müştərisini brauzerinizdə göstərməlidir. Bağlanmadan əvvəl əvvəlcə WIFi Giriş Nöqtəsinə qoşulmalısınız. Kompüteriniz üçün mövcud WIFI-ə baxsanız, MicroPython-xxxx ilə başlayan bir şəbəkə görəcəksiniz. Həmin şəbəkəyə qoşulun. (Xəbərdarlıq: Bu şəbəkəyə qoşulduqdan sonra İnternetə çıxışınızı itirəcəksiniz.)

Webrepl müştərinizə qayıdın və Bağlan düyməsini basın. Şifrə istəməlidir. Wemos şifrənizi daxil edin və qoşulmalısınız.

MicroPython -a xoş gəldiniz!

Şifrə: WebREPL qoşuldu >>>

Wemosunuz hələ də AccessPoint rejimində işləyir. Bu yaxşı olsa da, ev WIFI -yə qoşulduğu stansiya rejimində işləməyi üstün tuturam ki, kompüterim ona ev WIFI vasitəsilə daxil olsun və hələ də İnternetə çıxışı olsun. Bunu etmək üçün şəbəkə konfiqurasiyasına malik boot.py adlı bir fayl yaratmalı və Wemos -a yükləməlisiniz.

Budur boot.py nümunəsi. Ssid və şifrənizi ev WIFI şəbəkəsinə dəyişdirin. Ayrıca, 192.168.0.32 statik bir IP vermək istəyirəm. Evdəki WIFI -nin mövcud IP ünvanına dəyişdirin.

boot.py (aşağıdan yükləyə bilərsiniz)

idxal gc

import webrepl def do_connect (): idxal şəbəkəsi sta_if = network. WLAN (network. STA_IF) sta_if.isconnected deyilsə (): çap et ('şəbəkəyə qoşulur…') sta_if.active (Doğru) 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 deyil (): keçid çapı (' şəbəkə konfiqurasiyası: ', sta_if).ifconfig ()) do_connect () webrepl.start () gc.collect ()

Boot.py faylınızı Wemos -a göndərmək üçün Webrepl müştərisinin "Fayl göndər" formasından istifadə edin. Yenidən başlatmaq üçün sıfırlama düyməsini basın. Hələ də SCREEN əmrindən istifadə edərək USB ilə əlaqə qurursanız, görəcəksiniz:

şəbəkəyə qoşulur… şəbəkə konfiqurasiyası: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL daemonu ws -də başladı: //192.168.4.1: 8266 WebREPL daemonu ws -də başladı: //192.168.0.32: 8266 Normal rejimdə başlayan webrepl, 2017-01-09 tarixlərində MicroPython v1.8.7-7-gb5a1a20a3 oxumaq üçün 'main.py' faylını aça bilmədi; ESP8266 ilə ESP modulu Ətraflı məlumat üçün "help ()" yazın. >>>

Bu, Wemos -un ev WIFI -nə 192.168.0.32 ünvanını istifadə edərək qoşulduğunu təsdiqləyir.

Doğrulamaq üçün həmin IP ünvanına ping yaza bilərsiniz.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 məlumat baytı

192.168.0.32 -dən 64 bayt: icmp_seq = 0 ttl = 255 zaman = 9.334 ms 192.168.0.32 -dən 64 bayt: icmp_seq = 1 ttl = 255 zaman = 11.071 ms..

Addım 6: Əsas Proqramı Qurun

Əsas proqramı quraşdırın
Əsas proqramı quraşdırın
Əsas proqramı quraşdırın
Əsas proqramı quraşdırın

Nəhayət, Wemos -da işləməyə davam edəcək əsas proqramı qurmalısınız.

Veb brauzerinizə qayıdın və webrepl müştəri proqramını işə salın. IP ünvanını Wemos -un IP ünvanına dəyişin. Mənim vəziyyətimdə indi 192.168.0.32 -dir. Wemos şifrənizi daxil edin və indi Wemos -a qoşulmalısınız.

Əlavə edilmiş main.py proqramını yükləyək. Əlavə edilmiş faylı kompüterinizə yükləyin. Yüklənmiş main.py faylını seçmək üçün Fayl Seç düyməsini basın və Cihaza göndərildi düyməsini basın.

Main.py proqramını yükləmək üçün İstirahət düyməsini basmalısınız. Sıfırlama düyməsini basdıqdan sonra görəcəksiniz:

şəbəkəyə qoşulur…

şəbəkə konfiqurasiyası: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

WebREPL daemon ws: //192.168.4.1: 8266 -da başladı WebREPL daemonu ws: //192.168.0.32: 8266 -da başladı webrepl normal rejimdə başladı Dinləyirəm, brauzerinizi bağlayın…

Bu, main.py proqramınızın aktiv olduğu və 80 porta daxil olduğu deməkdir.

Test etmək üçün veb brauzerinizi açın və https:// daxil edin

Bu, videoda göstərildiyi kimi avtomobilin idarəetmə ekranını göstərməlidir. Telleriniz düzgün bir şəkildə bağlandıqda, idarəetmə düymələri avtomobili hərəkət etdirmək üçün GPIO portlarınıza düzgün siqnallar göndərəcək.

Addım 7: Gələcək Təkmilləşdirmələr

Aşağıdakı işlər v2 siyahımdadır:

  • Motor sürətini idarə etmək üçün PWM istifadə edin
  • Veb interfeysini təkmilləşdirin. Bəlkə də aREST çərçivəsindən istifadə edin. MicroPython -da aREST lib -in mövcud olduğuna inanmıram, buna görə də onu sındırmalı ola bilərəm.

Bu Təlimatı oxuduğunuz üçün təşəkkür edirəm. Gələcəkdə daha çox layihə üçün məni Facebook, Youtube və Instructables -da izləyin.

Tövsiyə: