Innehållsförteckning:

MicroPython IoT Rover Baserat på WEMOS D1 (ESP-8266EX): 7 steg (med bilder)
MicroPython IoT Rover Baserat på WEMOS D1 (ESP-8266EX): 7 steg (med bilder)

Video: MicroPython IoT Rover Baserat på WEMOS D1 (ESP-8266EX): 7 steg (med bilder)

Video: MicroPython IoT Rover Baserat på WEMOS D1 (ESP-8266EX): 7 steg (med bilder)
Video: MicroPython IoT Rover Based on WeMos D1 (ESP-8266EX) 2024, November
Anonim
Image
Image
MicroPython IoT Rover Baserat på WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover Baserat på WEMOS D1 (ESP-8266EX)

** Uppdatering: Jag lade upp en ny video för v2 med en lans **

Jag är värd för Robotics -workshops för små barn och jag letar alltid efter ekonomiska plattformar för att bygga spännande projekt. Medan Arduino -kloner är billiga använder den C/C ++ -språket som barnen inte är bekanta med. Det har inte heller en inbyggd WiFi som är ett måste för IoT-projekt. Å andra sidan, medan Raspberry Pi har WIFI och barn kan programmera det med Python, är det fortfarande en dyr plattform att bara styra några GPIO -portar för att slå på och av enheter. Jag behöver något däremellan som har både WIFI- och Python -funktioner. Det verkar som att jag hittade mitt svar i MicroPython blinkat på ett billigt ESP8266-baserat kort.

Vad är Micropython?

Enligt sin webbplats är MicroPython en smal och effektiv implementering av Python 3 -programmeringsspråken som innehåller en liten delmängd av Python -standardbiblioteket och det är optimerat för att köras på mikrokontroller och i begränsad miljö (t.ex. ESP8266). Det är i huvudsak Python IDE på ett chip. En stor fördel är att du kan skapa kod och ändra den direkt med en webbläsarklient som heter Webrepl. (Försök att göra det i Arduino.) Du kan också se sensordata i realtid på Webrepl istället för att förlita sig på dataloggning eller en LED-skärm i Arduino.

Vad är ESP8266?

Kort sagt, se det som en Arduino med inbyggd nätverksförmåga. Du kan använda Arduino IDE för att programmera ESP8266 -kort i C/C ++ eller så kan du blinka med NodeMCU eller MicroPython. I det här projektet kommer jag att blinka MicroPython på ett ESP8266 -kort.

Jag bestämde mig för att skaffa en WEMOS D1 som är baserad på ESP8266-12EX för detta enkla projekt där jag ska navigera i en 2WD-bil med en webbläsare. Det finns andra brädor som är utformade för MicroPython men jag ville ha något billigt som jag kunde slänga om det inte uppfyllde mina kriterier. Som förväntat uppfyllde det alla mina krav och troligen kommer jag att införliva WeMos och Micropython i framtida projekt.

Steg 1: Delar

Delar
Delar
Delar
Delar
Delar
Delar
Delar
Delar
  • Wemos D1 eller ESP8266 -baserade kort
  • Motorskydd (jag använder en billig L293D från AliExpress)
  • Batterihållare för 4 x AA och 9V (4 x AA -batterier är för motorer och 9V är för Wemos -kortet)
  • 2WD bilchassi
  • Dupont -kablar

Kan behöva ett lödkolv, en skruvmejsel och en limpistol för att sätta ihop allt.

Steg 2: Hårdvarumontage

Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering
Hårdvara Montering

Montera först chassit enligt instruktionerna.

Varma lim sedan andra komponenter som visas.

Motorkablar ska lödas till motorterminalerna och använda varmt lim för att förstärka anslutningsfogarna.

Fäst en liten strömbrytare på 4AA -batterihållaren. Detta kommer att slå på/av strömmen till motorskyddet.

Steg 3: Kabeldragning

Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning

Följ mitt kopplingsschema som visas.

Wemos till Motor Shield:

D1 IN2

D2 IN1 D3 IN4 ** hoppa över D4 D5 IN3 GND -> GND

Motorskydd till motor/effekt:

En terminal -> Vänster motor

B -kontakt -> Höger motor VCC -> Batteri (+) GND -> Batteri (-)

Steg 4: MicroPython -installation

För det första har Wemos ett seriellt/USB -chip baserat på CH304G. Detta är samma chip som finns i billiga Arduino-kloner och du måste installera en rätt drivrutin för Mac eller PC. Följ instruktionerna på denna webbplats för att installera drivrutinen.

Anslut Wemos till din dator och bekräfta att din dator kan upptäcka Wemos. På Mac kör du följande kommando så ser du en enhet som heter /dev/tty.wchusbserial640.

$ ls -lt /dev /tty* | huvud

crw-rw-rw- 1 rothjul 17, 4 mars 2 23:31 /dev/tty.wchusbserial640

Om du använder en dator kan du använda denna instruktionsbok som referens.

Därefter måste du konfigurera Python 2 eller 3 på din dator eftersom flashverktyget, esptool.py, är baserat på Python. Medan MicroPython -guiden kan säga att verktyget bara fungerar med Python 2.7, kunde jag köra det i Python 3 utan problem. Ladda ner senaste Python från https://www.python.org och följ installationsanvisningarna för din PC eller Mac.

Slutligen måste du installera MicroPython på Wemos. MicroPython -webbplatsen har en utmärkt handledning om hur du konfigurerar MicroPython på ESP8266. Följ bara installationsanvisningarna i Komma igång med MicroPython på ESP8266.

Nedan finns kommandon jag använde:

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

esptool.py v1.3 Ansluter…. Kör Cesanta -lampa … Radera blixt (detta kan ta ett tag) … Radering tog 10,5 sekunder

$ 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 Ansluter…. Kör Cesanta flasher stub … Flash -parametrar inställda på 0x0240 Skrev 589824 byte vid 0x0 på 50,8 sekunder (92,8 kbit/s) … Lämnar …

MicroPython är nu installerat på ditt kort!

Steg 5: Konfigurera nätverk

Konfigurera nätverk
Konfigurera nätverk

Medan MicroPython nu är installerat på din Wemos, är det inte anslutet till ditt nätverk än. Du måste först aktivera nätverk. På Mac, kör kommandot SCREEN för att starta den seriella terminalsessionen till Wemos.

$ skärm /dev/tty.wchusbserial640 115200

När du ser en tom skärm, tryck på RETURN för att se en prompt:

>>

(Obs! För att avsluta, skriv CTRL-A CTRL- )

Låt oss nu aktivera webbklientåtkomst. Skriv "import webrepl_setup" för att köra installationsprogrammet. Ange E för att aktivera WebREPL och ställ sedan in lösenord. Starta om för att aktivera ändringar.

>> importera webrepl_setup

WebREPL daemon automatisk startstatus: inaktiverad Vill du (E) aktivera eller (D) aktivera att den körs vid start? (Tom rad för att avsluta)> E För att aktivera WebREPL måste du ange lösenord för det Nytt lösenord: xxxxx Bekräfta lösenord: xxxxx Ändringar aktiveras efter omstart Vill du starta om nu? (y/n) y

Slutligen ladda ner Webrepl -klienten till din maskin. Detta är valfritt men klienten kommer med andra användbara verktyg som du kanske vill använda senare. Webrepl_cli.py är till exempel ett kommando för att kopiera filer till Wemos i scp-liknande syntax. Använd git för att ladda ner klienten. (Installera git -verktyget om du inte har det ännu.)

git -klon

Öppna din webbläsare och i URL -fältet anger du platsen för din nedladdade webbrepl klientfilplats, till exempel:

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

Detta bör visa webrepl -klienten i din webbläsare. Innan du kan ansluta till den måste du först ansluta till dess WIFi -åtkomstpunkt. Om du tittar på tillgängligt WIFI för din dator ser du att ett nätverk börjar med MicroPython-xxxx. Anslut till det nätverket. (Varning: När du ansluter till det nätverket förlorar du din internetåtkomst.)

Gå tillbaka till din webrepl -klient och klicka på Anslut. Det bör fråga om lösenord. Ange ditt Wemos -lösenord och du bör ansluta.

Välkommen till MicroPython!

Lösenord: WebREPL ansluten >>>

Din Wemos körs fortfarande i AccessPoint -läge. Även om det här är OK, föredrar jag att det körs i stationsläge där det ansluter till mitt hem WIFI så att min dator kan komma åt det via WIFI i hemmet och fortfarande har internetåtkomst. För att göra det måste du skapa en fil som heter boot.py med nätverkskonfiguration och ladda upp den till Wemos.

Här är ett exempel på boot.py. Ändra ssid och lösenord till ditt hem WIFI -nätverk. Jag vill också ge den en statisk IP på 192.168.0.32. Ändra den till ditt hem WIFI: s tillgängliga IP -adress.

boot.py (du kan ladda ner den nedanifrån)

importera gc

importera webrepl def do_connect (): importera nätverk sta_if = network. WLAN (network. STA_IF) om inte sta_if.isconnected (): print ('connect to network …') 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 (' ',' ') medan inte sta_if.isconnected (): passera utskrift (' nätverkskonfiguration ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Använd Webrepl -klientens "Skicka en fil" -formulär för att skicka din boot.py -fil till din Wemos. Tryck på återställningsknappen för att starta om. Om du fortfarande är ansluten via USB med kommandot SCREEN ser du:

ansluta till nätverk…: //192.168.0.32: 8266 Startade webbrepl i normalt läge kunde inte öppna filen 'main.py' för att läsa MicroPython v1.8.7-7-gb5a1a20a3 2017-01-09; ESP -modul med ESP8266 Skriv "hjälp ()" för mer information. >>>

Detta bekräftar att din Wemos är ansluten till ditt hem -WIFI med hjälp av ipaddressen 192.168.0.32.

Du kan pinga den IP -adressen för att validera.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 databyte

64 byte från 192.168.0.32: icmp_seq = 0 ttl = 255 time = 9.334 ms 64 bytes från 192.168.0.32: icmp_seq = 1 ttl = 255 time = 11.071 ms..

Steg 6: Installera huvudprogrammet

Installera huvudprogrammet
Installera huvudprogrammet
Installera huvudprogrammet
Installera huvudprogrammet

Slutligen måste du installera huvudprogrammet som fortsätter att köras på dina Wemos.

Gå tillbaka till din webbläsare och kör webrepl -klientprogrammet. Ändra ip -adressen till din Wemos IP -adress. I mitt fall är det nu 192.168.0.32. Ange ditt Wemos -lösenord så ska du nu vara ansluten till Wemos.

Låt oss ladda upp det bifogade main.py -programmet. Ladda ner den bifogade filen till din dator. Klicka på Välj fil för att välja den nedladdade main.py och klicka på Skickad till enhet.

Du måste trycka på vila -knappen för att ladda main.py -programmet. Efter att ha tryckt på Återställ -knappen ser du:

ansluta till nätverk …

nätverkskonfiguration: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

WebREPL -demonen startade på ws: //192.168.4.1: 8266 WebREPL -demonen startade på ws: //192.168.0.32: 8266 Startade webbrepl i normalt läge Lyssnar, anslut din webbläsare till …

Det betyder att ditt main.py -program är aktiverat och listas till port 80.

För att testa, öppna din webbläsare och ange

Detta bör visa bilens kontrollskärm som visas i videon. Om dina ledningar är korrekt anslutna skickar kontrollknapparna korrekta signaler till dina GPIO -portar för att flytta bilen.

Steg 7: Framtida förbättringar

Följande saker att göra finns på min v2-lista:

  • Använd PWM för att styra motorvarvtalet
  • Förbättra webbgränssnittet. Kanske använda aREST -ramverk. Jag tror inte att aREST lib är tillgängligt på MicroPython just nu så jag kan behöva hacka det.

Tack för att du läste den här instruerbara. Följ mig på Facebook, Youtube och Instructables för fler projekt i framtiden.

Rekommenderad: