Turinys:

„MicroPython IoT Rover“, pagrįstas WEMOS D1 (ESP-8266EX): 7 žingsniai (su nuotraukomis)
„MicroPython IoT Rover“, pagrįstas WEMOS D1 (ESP-8266EX): 7 žingsniai (su nuotraukomis)

Video: „MicroPython IoT Rover“, pagrįstas WEMOS D1 (ESP-8266EX): 7 žingsniai (su nuotraukomis)

Video: „MicroPython IoT Rover“, pagrįstas WEMOS D1 (ESP-8266EX): 7 žingsniai (su nuotraukomis)
Video: WiFi Wall-E using Wemos D1-Mini ESP8266 2024, Lapkritis
Anonim
Image
Image
„MicroPython IoT Rover“, pagrįstas WEMOS D1 (ESP-8266EX)
„MicroPython IoT Rover“, pagrįstas WEMOS D1 (ESP-8266EX)

** Atnaujinimas: paskelbiau naują vaizdo įrašą, skirtą v2 su lansu **

Aš vedu robotų seminarus mažiems vaikams ir visada ieškau ekonomiškų platformų, skirtų įdomiems projektams kurti. Nors „Arduino“klonai yra pigūs, jie naudoja C/C ++ kalbą, kurios vaikai nepažįsta. Be to, jame nėra įmontuoto „WiFi“, kuris yra būtinas daiktų interneto projektams. Kita vertus, nors „Raspberry Pi“turi WIFI ir vaikai gali jį programuoti naudodamiesi „Python“, tai vis tiek yra brangi platforma, skirta tik valdyti kelis GPIO prievadus, kad būtų galima įjungti ir išjungti įrenginius. Man reikia kažko tarp to, kuris turi ir „WIFI“, ir „Python“galimybes. Atrodo, kad radau savo atsakymą „MicroPython“, pavaizduotą ant pigios ESP8266 plokštės.

Kas yra „Micropython“?

Remiantis savo svetaine, „MicroPython“yra liesas ir efektyvus „Python 3“programavimo kalbų diegimas, apimantis nedidelį „Python“standartinės bibliotekos pogrupį ir optimizuotas veikti naudojant mikrovaldiklius ir ribotoje aplinkoje (pvz., ESP8266). Iš esmės tai yra „Python IDE“luste. Vienas iš pagrindinių privalumų yra tai, kad galite sukurti kodą ir pakeisti jį skrisdami naudodami žiniatinklio naršyklės klientą, vadinamą „Webrepl“. (Pabandykite tai padaryti „Arduino“.) Jutiklių duomenis taip pat galite matyti realiuoju laiku „Webrepl“, o ne pasikliauti duomenų registravimu ar LED ekranu „Arduino“.

Kas yra ESP8266?

Trumpai tariant, pagalvokite apie tai kaip apie „Arduino“su įmontuota tinklo galimybe. Galite naudoti „Arduino IDE“, kad programuotumėte ESP8266 plokštes C/C ++, arba galite ją atnaujinti naudodami „NodeMCU“arba „MicroPython“. Šiame projekte aš mirksėsiu „MicroPython“ant ESP8266 plokštės.

Aš nusprendžiau įsigyti WEMOS D1, pagrįstą ESP8266-12EX, šiam paprastam projektui, kuriame naršysiu 2WD automobilį naudodami žiniatinklio naršyklę. Yra ir kitų plokščių, sukurtų „MicroPython“, bet norėjau kažko pigaus, kurį galėčiau išmesti, jei jis neatitiks mano kriterijų. Kaip ir tikėtasi, jis atitiko visus mano reikalavimus ir greičiausiai į būsimus projektus įtraukiu „WeMos“ir „Micropython“.

1 žingsnis: dalys

Dalys
Dalys
Dalys
Dalys
Dalys
Dalys
Dalys
Dalys
  • „Wemos D1“arba bet kurios ESP8266 pagrindu pagamintos plokštės
  • Variklio skydas (aš naudoju pigų „L293D“iš „AliExpress“)
  • Baterijų laikikliai 4 x AA ir 9 V (4 x AA baterijos yra skirtos varikliams, o 9 V - „Wemos“plokštei)
  • 2WD automobilių važiuoklė
  • Dupont kabeliai

Norint viską sudėti, gali prireikti lituoklio, atsuktuvo ir klijų pistoleto.

2 žingsnis: Aparatūros surinkimas

Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas

Pirmiausia surinkite važiuoklę pagal instrukciją.

Tada karštai klijuokite kitus komponentus, kaip parodyta.

Variklio laidai turi būti lituojami prie variklio gnybtų ir gnybtų jungtims sutvirtinti naudojant karštus klijus.

Prie 4AA baterijos laikiklio pritvirtintas mažas jungiklis. Tai įjungs/išjungs variklio skydo maitinimą.

3 žingsnis: laidų prijungimas

Laidai
Laidai
Laidai
Laidai
Laidai
Laidai

Sekite mano prijungimo schemą, kaip parodyta.

Wemos į variklio skydą:

D1 IN2

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

Variklio skydas varikliui/galia:

Terminalas -> kairysis variklis

B gnybtas -> Dešinysis variklio VCC -> Baterija (+) GND -> Baterija (-)

4 žingsnis: „MicroPython“diegimas

Pirma, „Wemos“turi serijinį/USB lustą, pagrįstą CH304G. Tai tas pats lustas, kuris randamas pigiuose „Arduino“klonuose, ir jūs turite įdiegti tinkamą „Mac“ar kompiuterio tvarkyklę. Norėdami įdiegti tvarkyklę, vadovaukitės šioje svetainėje pateiktomis instrukcijomis.

Prijunkite „Wemos“prie kompiuterio ir patvirtinkite, kad jūsų kompiuteris gali aptikti „Wemos“. „Mac“sistemoje paleiskite šią komandą ir pamatysite įrenginį, pavadintą /dev/tty.wchusbserial640.

$ ls -lt /dev /tty* | galva

crw-rw-rw- 1 šaknies ratas 17, 4 kovo 2 23:31 /dev/tty.wchusbserial640

Jei naudojate kompiuterį, galite naudoti šią instrukciją kaip nuorodą.

Tada turėsite kompiuteryje nustatyti „Python 2“ar „3“, nes „Flash“įrankis, esptool.py, yra pagrįstas „Python“. Nors „MicroPython“vadove gali būti nurodyta, kad įrankis veikia tik su „Python 2.7“, aš galėjau tai paleisti „Python 3“be jokių problemų. Atsisiųskite naujausią „Python“iš https://www.python.org ir vykdykite savo kompiuterio arba „Mac“diegimo instrukcijas.

Galiausiai „Wemos“turėsite įdiegti „MicroPython“. „MicroPython“svetainėje yra puiki pamoka, kaip nustatyti „MicroPython“naudojant ESP8266. Tiesiog vykdykite diegimo instrukcijas, pateiktas skyriuje Darbo su „MicroPython“pradžia ESP8266.

Žemiau yra komandos, kurias naudojau:

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

esptool.py v1.3 Prisijungimas…. Vykdomas „Cesanta“blykstės kamštis … Blykstės trynimas (tai gali užtrukti)… Ištrynimas truko 10,5 sekundės

$ 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 Prisijungimas…. Vykdomas „Cesanta“blykstės blokas … Blykstės parametrai nustatyti į 0x0240 Parašė 589824 baitus 0x0 per 50,8 sekundės (92,8 kbit/s) … Išeina …

„MicroPython“dabar įdiegta jūsų plokštėje!

5 veiksmas: nustatykite tinklą

Sąrankos tinklas
Sąrankos tinklas

Nors „MicroPython“dabar įdiegta jūsų „Wemos“, ji dar nėra prijungta prie jūsų tinklo. Pirmiausia turėsite įjungti tinklą. „Mac“sistemoje vykdykite komandą SCREEN, kad pradėtumėte serijinio terminalo sesiją „Wemos“.

$ screen /dev/tty.wchusbserial640 115200

Kai pamatysite tuščią ekraną, paspauskite RETURN, kad pamatytumėte raginimą:

>>

(Pastaba: norėdami išeiti, įveskite CTRL-A CTRL-)

Dabar įgalinkime prieigą prie žiniatinklio kliento. Įveskite „import webrepl_setup“, kad paleistumėte sąrankos programą. Norėdami įjungti „WebREPL“, įveskite E ir nustatykite slaptažodį. Perkraukite, kad suaktyvintumėte pakeitimus.

>> importuoti webrepl_setup

„WebREPL“demono automatinio paleidimo būsena: išjungta Ar norėtumėte (E) įjungti arba (D) išjungti, kad jis veiktų įkrovos metu? (Tuščia eilutė norint išeiti)> E Norėdami įjungti „WebREPL“, turite nustatyti jo slaptažodį. Naujas slaptažodis: xxxxx Patvirtinkite slaptažodį: xxxxx Pakeitimai bus suaktyvinti iš naujo paleidus. Ar norite iš naujo paleisti dabar? (taip/n) y

Galiausiai atsisiųskite „Webrepl“klientą į savo kompiuterį. Tai neprivaloma, tačiau klientas turi kitų naudingų įrankių, kuriuos galbūt norėsite naudoti vėliau. Pvz., „Webrepl_cli.py“yra komanda kopijuoti failus į „Wemos“pagal scp tipo sintaksę. Norėdami atsisiųsti klientą, naudokite git. (Įdiekite „git“įrankį, jei jo dar neturite.)

git klonas

Atidarykite žiniatinklio naršyklę ir URL lauke įveskite atsisiųstos žiniatinklio svetainės kliento failo vietą, pvz.:

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

Tai turėtų rodyti „webrepl“klientą jūsų naršyklėje. Prieš prisijungdami prie jo, pirmiausia turite prisijungti prie jo „WIFi“prieigos taško. Jei pažvelgsite į savo kompiuteryje galimą WIFI, pamatysite, kad tinklas prasideda „MicroPython-xxxx“. Prisijunkite prie to tinklo. (Įspėjimas: prisijungę prie to tinklo prarasite prieigą prie interneto.)

Grįžkite į savo „webrepl“klientą ir spustelėkite „Prisijungti“. Jis turėtų paprašyti slaptažodžio. Įveskite „Wemos“slaptažodį ir turėtumėte prisijungti.

Sveiki atvykę į „MicroPython“!

Slaptažodis: prijungtas „WebREPL“>>>

„Wemos“vis dar veikia „AccessPoint“režimu. Nors tai gerai, aš norėčiau, kad jis veiktų stoties režimu, kur jis prisijungia prie mano namų WIFI, kad mano kompiuteris galėtų jį pasiekti per namų WIFI ir vis tiek turi prieigą prie interneto. Norėdami tai padaryti, turėsite sukurti failą pavadinimu boot.py su tinklo konfigūracija ir įkelti jį į „Wemos“.

Čia yra boot.py pavyzdys. Pakeiskite SSID ir slaptažodį į savo namų WIFI tinklą. Be to, noriu suteikti jai statinį 192.168.0.32 IP. Pakeiskite jį į namų WIFI turimą IP adresą.

boot.py (galite atsisiųsti iš apačios)

importuoti gc

importuoti webrepl def do_connect (): importuoti tinklą sta_if = network. WLAN (network. STA_IF) if not sta_if.isconnected (): print ('prisijungimas prie tinklo …') sta_if.active (tiesa) sta_if.ifconfig (('192.168. 0.32 ',' 255.255.255.0 ',' 192.168.0.1 ',' 192.168.0.1 ')) sta_if.connect (' ',' '), o ne sta_if.isconnected (): perduoti spausdinimą (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Naudokite „Webrepl“kliento formą „Siųsti failą“, kad nusiųstumėte „boot.py“failą į „Wemos“. Norėdami iš naujo paleisti, paspauskite atstatymo mygtuką. Jei vis tiek esate prisijungę per USB naudodami komandą SCREEN, pamatysite:

jungiamasi prie tinklo… tinklo konfigūracija: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL demonas paleistas ws: //192.168.4.1: 8266 WebREPL demonas paleistas ws: //192.168.0.32: 8266 Pradėjus „webrepl“įprastu režimu, nepavyko atidaryti failo „main.py“, kad būtų galima skaityti „MicroPython“v1.8.7-7-gb5a1a20a3 2017-01-09; ESP modulis su ESP8266 Norėdami gauti daugiau informacijos, įveskite „help ()“. >>>

Tai patvirtina, kad jūsų „Wemos“yra prijungtas prie jūsų namų WIFI naudojant 192.168.0.32 „ipaddress“.

Galite patvirtinti šį IP adresą.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 duomenų baitai

64 baitai nuo 192.168.0.32: icmp_seq = 0 ttl = 255 laikas = 9.334 ms 64 baitai nuo 192.168.0.32: icmp_seq = 1 ttl = 255 laikas = 11.071 ms.

6 veiksmas: įdiekite pagrindinę programą

Įdiekite pagrindinę programą
Įdiekite pagrindinę programą
Įdiekite pagrindinę programą
Įdiekite pagrindinę programą

Galiausiai turėsite įdiegti pagrindinę programą, kuri ir toliau veiks jūsų „Wemos“.

Grįžkite į savo interneto naršyklę ir paleiskite „webrepl“kliento programą. Pakeiskite IP adresą į „Wemos“IP adresą. Mano atveju dabar yra 192.168.0.32. Įveskite „Wemos“slaptažodį ir dabar turėtumėte būti prisijungę prie „Wemos“.

Įkelkime pridedamą programą main.py. Atsisiųskite pridėtą failą į savo kompiuterį. Spustelėkite „Pasirinkti failą“, kad pasirinktumėte atsisiųstą „main.py“, ir spustelėkite „Išsiųsta į įrenginį“.

Norėdami įkelti programą main.py, turėsite paspausti poilsio mygtuką. Paspaudę Reset mygtuką pamatysite:

jungiamasi prie tinklo…

tinklo konfigūracija: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

„WebREPL“demonas paleistas ws: //192.168.4.1: 8266 „WebREPL“demonas paleistas ws: //192.168.0.32: 8266 „Webrepl“paleistas įprastu režimu Klausantis, prijunkite naršyklę prie…

Tai reiškia, kad jūsų programa main.py yra suaktyvinta ir įtraukta į 80 prievadą.

Norėdami išbandyti, atidarykite žiniatinklio naršyklę ir įveskite

Tai turėtų parodyti automobilio valdymo ekraną, kaip parodyta vaizdo įraše. Jei jūsų laidai prijungti tinkamai, valdymo mygtukai siunčia tinkamus signalus į jūsų GPIO prievadus, kad perkeltų automobilį.

7 žingsnis: būsimi patobulinimai

Šie „v2“sąraše esantys darbai yra įtraukti į mano v2 sąrašą:

  • Naudokite PWM variklio greičiui valdyti
  • Pagerinkite žiniatinklio sąsają. Galbūt naudokite aREST sistemą. Nemanau, kad „aREST lib“šiuo metu yra prieinama „MicroPython“, todėl gali tekti ją nulaužti.

Dėkojame, kad perskaitėte šią instrukciją. Sekite mane „Facebook“, „Youtube“ir „Instructables“, kad ateityje gautumėte daugiau projektų.

Rekomenduojamas: