Turinys:
- 1 žingsnis: dalys
- 2 žingsnis: Aparatūros surinkimas
- 3 žingsnis: laidų prijungimas
- 4 žingsnis: „MicroPython“diegimas
- 5 veiksmas: nustatykite tinklą
- 6 veiksmas: įdiekite pagrindinę programą
- 7 žingsnis: būsimi patobulinimai
Video: „MicroPython IoT Rover“, pagrįstas WEMOS D1 (ESP-8266EX): 7 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
** 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
- „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
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
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ą
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ą
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:
Pozicija pagrįstas daugiafunkcis kubo laikrodis: 5 žingsniai (su nuotraukomis)
Pozicija pagrįstas daugiafunkcis kubo laikrodis: Tai „Arduino“laikrodis su OLED ekranu, kuris veikia kaip laikrodis su data, kaip snaudimo laikmatis ir kaip naktinis žibintas. Skirtingos " funkcijos " yra valdomi akselerometru ir parenkami sukant kubo laikrodį
MQTT, pagrįstas „MicroPython ESP32“: 5 žingsniai
MQTT Remiantis „MicroPython ESP32“: man patinka laikyti namines kates. Po intensyvaus darbo dienos katė gali mane atpalaiduoti, kai grįšiu namo. Po sunkios treniruotės ši katė turi gerą įprotį reguliariai valgyti " restorane " kiekvieną dieną. Tačiau pastaruoju metu turiu keliauti kelias dienas ir
PWM reguliuojamas ventiliatorius, pagrįstas „Raspberry Pi“procesoriaus temperatūra: 4 žingsniai (su nuotraukomis)
PWM reguliuojamas ventiliatorius, pagrįstas „Raspberry Pi“procesoriaus temperatūra: daugelyje „Raspberry Pi“dėklų yra šiek tiek 5 V ventiliatoriaus, kad būtų lengviau aušinti procesorių. Tačiau šie ventiliatoriai paprastai yra gana triukšmingi ir daugelis žmonių prijungia jį prie 3V3 kaiščio, kad sumažintų triukšmą. Šie ventiliatoriai paprastai yra vertinami 200 mA, o tai yra gana
Ryškumo valdymas PWM pagrįstas LED valdymas naudojant mygtukus, „Raspberry Pi“ir „Scratch“: 8 žingsniai (su nuotraukomis)
Ryškumo valdymas PWM pagrįstas LED valdymas naudojant mygtukus, „Raspberry Pi“ir „Scratch“: bandžiau rasti būdą, kaip paaiškinti, kaip PWM veikė mano mokiniams, todėl iškėliau sau užduotį pabandyti valdyti šviesos diodo ryškumą naudojant du mygtukus - vienas mygtukas padidina šviesos diodo ryškumą, o kitas - jį pritemdo. Programa
„IoT“pagrįstas išmanusis ūkininkavimas: 5 žingsniai (su nuotraukomis)
Daiktu internetu pagrįstas išmanusis ūkininkavimas: daiktų internetas (daiktų internetas) yra bendras objektų ar dalykų tinklas, kurie gali sąveikauti tarpusavyje, jei yra interneto ryšys. Daiktų internetas vaidina svarbų vaidmenį žemės ūkio pramonėje, kuri iki 2050 m. Gali išmaitinti 9,6 milijardo žmonių Žemėje