INHOUDSOPGAWE:
- Stap 1: Onderdele
- Stap 2: Hardeware -samestelling
- Stap 3: Bedrading
- Stap 4: MicroPython -installasie
- Stap 5: Stel netwerk op
- Stap 6: Installeer die hoofprogram
- Stap 7: Toekomstige verbeterings
Video: MicroPython IoT Rover Gebaseer op WEMOS D1 (ESP-8266EX): 7 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
** Opdatering: ek het 'n nuwe video vir v2 met 'n lans geplaas **
Ek bied Robotics -werkswinkels vir jong kinders aan, en ek is altyd op soek na ekonomiese platforms om interessante projekte te bou. Alhoewel Arduino -klone goedkoop is, gebruik dit die C/C ++ - taal waarmee kinders nie vertroud is nie. Dit het ook nie 'n ingeboude WiFi wat 'n moet is vir IoT-projekte nie. Aan die ander kant, terwyl Raspberry Pi WIFI het en kinders dit met Python kan programmeer, is dit steeds 'n duur platform om net 'n paar GPIO -poorte te beheer om toestelle aan en af te skakel. Ek het iets tussenin nodig wat WIFI- en Python -vermoëns het. Dit blyk dat ek gevind het dat my antwoord in MicroPython op 'n goedkoop ESP8266-bord geflits is.
Wat is Micropython?
Volgens sy webwerf is MicroPython 'n skraal en doeltreffende implementering van die Python 3 -programmeertale wat 'n klein deel van die Python -standaardbiblioteek bevat, en dit is geoptimaliseer om op mikrobeheerders en in 'n beperkte omgewing (soos ESP8266) te werk. Dit is in wese Python IDE op 'n chip. Een groot voordeel is dat u kode vinnig kan skep en verander met behulp van 'n webblaaier-kliënt genaamd Webrepl. (Probeer dit in Arduino doen.) U kan ook sensordata in real-time op Webrepl sien in plaas daarvan om op data-aanmelding of 'n LED-skerm in Arduino staat te maak.
Wat is ESP8266?
Kortliks, dink daaraan as 'n Arduino met ingeboude netwerkvermoë. U kan die Arduino IDE gebruik om ESP8266 -borde in C/C ++ te programmeer, of u kan dit flits met NodeMCU of MicroPython. In hierdie projek flits ek MicroPython op 'n ESP8266 -bord.
Ek het besluit om 'n WEMOS D1 te kry wat gebaseer is op ESP8266-12EX vir hierdie eenvoudige projek waar ek 'n 2WD-motor sal navigeer met 'n webblaaier. Daar is ander borde wat ontwerp is vir MicroPython, maar ek wou iets goedkoop hê wat ek kon weggooi as dit nie aan my kriteria voldoen nie. Soos verwag, het dit aan al my vereistes voldoen, en waarskynlik sal ek WeMos en Micropython in toekomstige projekte opneem.
Stap 1: Onderdele
- Wemos D1 of enige ESP8266 borde
- Motorskerm (ek gebruik 'n goedkoop L293D van AliExpress)
- Batteryhouers vir 4 x AA en 9V (4 x AA -batterye is vir motors en 9V is vir die Wemos -bord)
- 2WD motor onderstel
- Dupont kabels
Miskien 'n soldeerbout, 'n skroewedraaier en 'n gomgeweer nodig om alles aanmekaar te sit.
Stap 2: Hardeware -samestelling
Monteer eers die onderstel volgens die instruksies.
Gom dan die ander komponente warm soos gelys.
Motordrade moet aan die motorterminale gesoldeer word en warm gom gebruik om die eindverbindings te versterk.
'N Klein skakelaar op die 4AA -batteryhouer aangebring. Dit sal die motorskerm aan/uit skakel.
Stap 3: Bedrading
Volg my bedradingsdiagram soos getoon.
Wemos na Motor Shield:
D1 IN2
D2 IN1 D3 IN4 ** slaan D4 D5 IN3 GND oor -> GND
Motorskerm tot motor/krag:
'N Terminaal -> linkermotor
B -terminale -> Regtermotor VCC -> Battery (+) GND -> Battery (-)
Stap 4: MicroPython -installasie
Eerstens het Wemos 'n seriële/USB -chip gebaseer op CH304G. Dit is dieselfde chip wat in goedkoop Arduino-klone voorkom, en u moet die regte bestuurder vir Mac of PC installeer. Volg die instruksies op hierdie webwerf om die bestuurder te installeer.
Koppel Wemos aan u rekenaar en bevestig dat u rekenaar Wemos kan opspoor. Voer die volgende opdrag op Mac uit, en u sal 'n toestel met die naam /dev/tty.wchusbserial640 sien.
$ ls -lt /dev /tty* | kop
crw-rw-rw- 1 wortelwiel 17, 4 Maart 2 23:31 /dev/tty.wchusbserial640
As u op 'n rekenaar is, kan u hierdie instruksie as verwysing gebruik.
Vervolgens moet u Python 2 of 3 op u rekenaar instel, aangesien die flash -instrument, esptool.py, gebaseer is op Python. Alhoewel die MicroPython -gids kan sê dat die instrument slegs met Python 2.7 werk, kon ek dit sonder probleme in Python 3 uitvoer. Laai die nuutste Python af van https://www.python.org en volg die installasie -instruksies vir u rekenaar of Mac.
Laastens moet u MicroPython op Wemos installeer. MicroPython -webwerf het 'n uitstekende handleiding vir die opstel van MicroPython op ESP8266. Volg net die installasie -instruksies in Aan die gang met MicroPython op die ESP8266.
Hieronder is opdragte wat ek gebruik het:
$ esptool.py --port /dev/tty.wchusbserial640 wis_flash
esptool.py v1.3 Verbind…. Hardloop Cesanta -flitsstomp … Vee flits uit (dit kan 'n rukkie neem) … Wis 10,5 sekondes
$ 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 Verbind…. Hardloop Cesanta -flitsstomp … Flitsparameters ingestel op 0x0240 Skryf 589824 grepe by 0x0 in 50,8 sekondes (92,8 kbit/s) … Vertrek …
MicroPython is nou op u bord geïnstalleer!
Stap 5: Stel netwerk op
Terwyl MicroPython nou op u Wemos geïnstalleer is, is dit nog nie aan u netwerk gekoppel nie. U moet eers die netwerk aktiveer. Voer op Mac die SCREEN -opdrag uit om die seriële terminalsessie na Wemos te begin.
$ skerm /dev/tty.wchusbserial640 115200
As u 'n leë skerm sien, druk RETURN om 'n aanwysing te sien:
>>
(Let wel: Tik CTRL-A CTRL- / om te verlaat
Laat ons nou toegang tot webkliente moontlik maak. Tik "import webrepl_setup" om die opstelprogram uit te voer. Voer E in om WebREPL in staat te stel en stel dan die wagwoord in. Herlaai om veranderinge te aktiveer.
>> voer webrepl_setup in
WebREPL daemon outomatiese aanvangstatus: gedeaktiveer Wil u (E) aanskakel of (D) aktiveer wanneer dit tydens opstart werk? (Leë reël om op te hou)> E Om WebREPL te aktiveer, moet u die wagwoord daarvoor stel Nuwe wagwoord: xxxxx Bevestig wagwoord: xxxxx Veranderinge sal geaktiveer word na herlaai. Wil u nou herlaai? (j/n) j
Laai laastens die Webrepl -kliënt af na u rekenaar. Dit is opsioneel, maar die kliënt het ander nuttige gereedskap wat u later kan gebruik. Byvoorbeeld, webrepl_cli.py is 'n opdrag om lêers na Wemos te kopieer in scp-agtige sintaksis. Gebruik git om die kliënt af te laai. (Installeer die git -instrument as u dit nog nie het nie.)
git -kloon
Maak u webblaaier oop en voer in die URL -veld die ligging van u afgelaaide webrepl -kliëntlêer in, soos:
lêer: ///Users/xxxxx/wemos/webrepl/webrepl.html
Dit moet die webrepl -kliënt in u blaaier vertoon. Voordat u daaraan kan koppel, moet u eers aan die WIFi -toegangspunt koppel. As u na die beskikbare WIFI vir u rekenaar kyk, sal u sien dat 'n netwerk met MicroPython-xxxx begin. Koppel aan die netwerk. (Waarskuwing: sodra u aan die netwerk gekoppel is, verloor u u internettoegang.)
Gaan terug na u webrepl -kliënt en klik op Verbind. Dit moet 'n wagwoord vra. Voer u Wemos -wagwoord in en u moet koppel.
Welkom by MicroPython!
Wagwoord: WebREPL gekoppel >>>
Jou Wemos werk steeds in die AccessPoint -modus. Alhoewel dit in orde is, verkies ek dat dit in die stasie -modus werk, waar dit met my tuis -WIFI verbind word, sodat my rekenaar toegang het tot dit via die huis -WIFI en steeds internettoegang het. Om dit te kan doen, moet u 'n lêer genaamd boot.py met die netwerkopstelling skep en dit na Wemos oplaai.
Hier is 'n voorbeeld van boot.py. Verander die ssid en wagwoord na u tuis WIFI -netwerk. Ek wil dit ook 'n statiese IP van 192.168.0.32 gee. Verander dit na die huis se WIFI se beskikbare IP -adres.
boot.py (u kan dit van onder aflaai)
invoer gc
invoer webrepl def do_connect (): invoer netwerk sta_if = netwerk. WLAN (netwerk. STA_IF) indien nie sta_if.afgesluit (): druk ('maak verbinding met netwerk …') 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 (' ',' ') terwyl dit nie sta_if.isconnected is nie): slaag druk (' netwerk config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()
Gebruik die vorm "Stuur 'n lêer" van Webrepl -kliënt om u boot.py -lêer na u Wemos te stuur. Druk die reset -knoppie om weer te begin. As u nog steeds via USB met die SCREEN -opdrag verbind is, sien u:
maak verbinding met netwerk…: //192.168.0.32: 8266 Webrepl begin in die normale modus, kon nie die lêer 'main.py' oopmaak om MicroPython v1.8.7-7-gb5a1a20a3 op 2017-01-09 te lees nie; ESP -module met ESP8266 Tik "help ()" vir meer inligting. >>>
Dit bevestig dat u Wemos gekoppel is aan u tuis -WIFI met behulp van die ipaddress van 192.168.0.32.
U kan die IP -adres ping om te bevestig.
$ ping 192.168.0.32
PING 192.168.0.32 (192.168.0.32): 56 datagrepe
64 grepe vanaf 192.168.0.32: icmp_seq = 0 ttl = 255 tyd = 9.334 ms 64 grepe vanaf 192.168.0.32: icmp_seq = 1 ttl = 255 tyd = 11.071 ms..
Stap 6: Installeer die hoofprogram
Laastens moet u die hoofprogram installeer wat op u Wemos sal voortgaan.
Gaan terug na u webblaaier en voer die webrepl -kliëntprogram uit. Verander die ip -adres na u Wemos se IP -adres. In my geval is dit nou 192.168.0.32. Voer u Wemos -wagwoord in en u moet nou aan Wemos gekoppel wees.
Laai die aangehegte main.py -program op. Laai die aangehegte lêer op u rekenaar af. Klik op Kies lêer om die hoof.py wat afgelaai is te kies en klik op Gestuur na toestel.
U moet op die rusknoppie druk om die main.py -program te laai. Nadat u op die Reset -knoppie gedruk het, sien u:
koppel aan netwerk …
netwerkopstelling: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')
WebREPL -demoon begin op ws: //192.168.4.1: 8266 WebREPL -demoon begin op ws: //192.168.0.32: 8266 Begin webrepl in normale modus Luister, koppel u blaaier aan …
Dit beteken dat u main.py -program geaktiveer is en na poort 80 verskyn.
Om te toets, maak u webblaaier oop en voer https:// in
Dit moet die motorbeheerskerm vertoon, soos in die video getoon. As u drade behoorlik verbind is, stuur die stuurknoppies die regte seine na u GPIO -poorte om die motor te beweeg.
Stap 7: Toekomstige verbeterings
Die volgende doen-items is op my v2-lys:
- Gebruik PWM om die motorspoed te beheer
- Verbeter die webkoppelvlak. Gebruik miskien 'n REST -raamwerk. Ek glo nie aREST lib is op die oomblik beskikbaar op MicroPython nie, so ek sal dit moontlik moet inbreek.
Dankie dat u hierdie Instructable gelees het. Volg my op Facebook, Youtube en Instructables vir meer projekte in die toekoms.
Aanbeveel:
Outomatiese model spoorweguitleg met twee treine (V2.0) - Arduino gebaseer: 15 stappe (met foto's)
Outomatiese model spoorweguitleg met twee treine (V2.0) | Arduino gebaseer: Die outomatisering van model spoorweguitlegte met behulp van Arduino mikrobeheerders is 'n uitstekende manier om mikrobeheerders, programmering en model spoorweë saam te voeg tot een stokperdjie. Daar is 'n klomp projekte beskikbaar om 'n trein outonoom op 'n modelrail te bestuur
Lora Gateway Gebaseer op MicroPython ESP32: 10 stappe (met foto's)
Lora Gateway Gebaseer op MicroPython ESP32: Lora was die afgelope paar jaar baie gewild. Die draadlose kommunikasiemodule wat hierdie tegnologie gebruik, is gewoonlik goedkoop (met gratis spektrum), klein, energie-doeltreffend en het 'n lang kommunikasie-afstand, en word hoofsaaklik gebruik vir onderlinge kommunikasie
GPS -motorsporing met sms -kennisgewing en oplaai van Thingspeak -data, gebaseer op Arduino, tuisautomatisering: 5 stappe (met foto's)
GPS -motoropsporing met SMS -kennisgewing en oplaai van Thingspeak -data, op Arduino gebaseer, tuisautomatisering: ek het hierdie GPS -spoorsnyer verlede jaar gemaak, en aangesien dit goed werk, publiseer ek dit nou op Instructable. Dit is gekoppel aan die bykomstige prop in my bagasiebak. Die GPS -spoorsnyer laai die motor se posisie, spoed, rigting en die gemete temperatuur op via 'n mobiele data
N Goedkoop monitor vir IoT-luggehalte gebaseer op RaspberryPi 4: 15-stappe (met foto's)
N Goedkoop IoT-luggehalte-monitor wat gebaseer is op RaspberryPi 4: Santiago, Chili, tydens 'n winteromgewing, het die voorreg om in een van die mooiste lande ter wêreld te woon, maar dit is ongelukkig nie alles rose nie. Chili gedurende die winterseisoen ly baie onder lugbesmetting
Aan die slag met Esp 8266 Esp-01 Met Arduino IDE - Die installering van Esp -borde in Arduino Ide en programmering van Esp: 4 stappe
Aan die slag met Esp 8266 Esp-01 Met Arduino IDE | Installering van Esp-borde in Arduino Ide en programmering van Esp: In hierdie instruksies gaan ons leer hoe om esp8266-borde in Arduino IDE te installeer en hoe om esp-01 te programmeer en kode daarin te laai. dit en die meeste mense het 'n probleem