INHOUDSOPGAWE:

MicroPython IoT Rover Gebaseer op WEMOS D1 (ESP-8266EX): 7 stappe (met foto's)
MicroPython IoT Rover Gebaseer op WEMOS D1 (ESP-8266EX): 7 stappe (met foto's)

Video: MicroPython IoT Rover Gebaseer op WEMOS D1 (ESP-8266EX): 7 stappe (met foto's)

Video: MicroPython IoT Rover Gebaseer op WEMOS D1 (ESP-8266EX): 7 stappe (met foto's)
Video: Course Lesson 8 of 10: Follow Hand project with Raspberry Pi Pico 4WD Smart Car Kit 2024, Julie
Anonim
Image
Image
MicroPython IoT Rover Gebaseer op WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover Gebaseer op WEMOS D1 (ESP-8266EX)

** 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

Dele
Dele
Dele
Dele
Dele
Dele
Dele
Dele
  • 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

Hardeware vergadering
Hardeware vergadering
Hardeware vergadering
Hardeware vergadering
Hardeware vergadering
Hardeware vergadering

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

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
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

Stel netwerk op
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

Installeer die hoofprogram
Installeer die hoofprogram
Installeer die hoofprogram
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: