Innholdsfortegnelse:
- Trinn 1: Deler
- Trinn 2: Maskinvaremontasje
- Trinn 3: Kabling
- Trinn 4: MicroPython -installasjon
- Trinn 5: Konfigurer nettverk
- Trinn 6: Installer hovedprogrammet
- Trinn 7: Fremtidige forbedringer
Video: MicroPython IoT Rover Basert på WEMOS D1 (ESP-8266EX): 7 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
** Oppdatering: Jeg la ut en ny video for v2 med en lans **
Jeg arrangerer Robotics -workshops for små barn, og jeg leter alltid etter økonomiske plattformer for å bygge spennende prosjekter. Selv om Arduino -kloner er billige, bruker de C/C ++ -språket som barna ikke er kjent med. Den har heller ikke en innebygd WiFi som er et must for IoT-prosjekter. På den annen side, mens Raspberry Pi har WIFI og barna kan programmere det ved hjelp av Python, er det fortsatt en dyr plattform å bare kontrollere få GPIO -porter for å slå enheter på og av. Jeg trenger noe i mellom som har både WIFI- og Python -evner. Det ser ut til at jeg fant svaret mitt i MicroPython blinket på et billig ESP8266-basert kort.
Hva er Micropython?
I følge nettstedet er MicroPython en slank og effektiv implementering av Python 3 programmeringsspråk som inkluderer en liten delmengde av Python standardbibliotek, og det er optimalisert for å kjøre på mikrokontrollere og i begrensede omgivelser (for eksempel ESP8266). Det er egentlig Python IDE på en brikke. En stor fordel er at du kan opprette kode og endre den i farten ved hjelp av en nettleserklient som heter Webrepl. (Prøv å gjøre det i Arduino.) Du kan også se sensordata i sanntid på Webrepl i stedet for å stole på datalogging eller en LED-skjerm i Arduino.
Hva er ESP8266?
Kort sagt, tenk på det som en Arduino med innebygd nettverksevne. Du kan bruke Arduino IDE til å programmere ESP8266 -kort i C/C ++ eller du kan blinke det med NodeMCU eller MicroPython. I dette prosjektet blinker jeg MicroPython på et ESP8266 -kort.
Jeg bestemte meg for å kjøpe en WEMOS D1 som er basert på ESP8266-12EX for dette enkle prosjektet der jeg skal navigere i en 2WD-bil ved hjelp av en nettleser. Det er andre brett som er designet for MicroPython, men jeg ville ha noe billig som jeg kunne kaste hvis det ikke oppfyller kriteriene mine. Som forventet oppfylte den alle kravene mine, og mest sannsynlig vil jeg inkludere WeMos og Micropython i fremtidige prosjekter.
Trinn 1: Deler
- Wemos D1 eller noen ESP8266 -baserte brett
- Motorskjerm (jeg bruker en billig L293D fra AliExpress)
- Batteriholdere for 4 x AA og 9V (4 x AA -batterier er for motorer og 9V er for Wemos -kortet)
- 2WD bilchassis
- Dupont kabler
Kan trenge et loddejern, en skrutrekker og en limpistol for å sette alt sammen.
Trinn 2: Maskinvaremontasje
Monter først chassiset i henhold til instruksjonene.
Deretter limer du andre komponenter som vist.
Motortråder skal loddes til motorterminalene og bruke varmt lim for å forsterke terminalene.
Festet en liten bryter til 4AA batteriholderen. Dette vil slå på/av strømmen til motorskjermen.
Trinn 3: Kabling
Følg koblingsskjemaet mitt som vist.
Wemos til Motor Shield:
D1 IN2
D2 IN1 D3 IN4 ** hopp over D4 D5 IN3 GND -> GND
Motorskjerm til motor/kraft:
En terminal -> Venstre motor
B -terminal -> Høyre motor VCC -> Batteri (+) GND -> Batteri (-)
Trinn 4: MicroPython -installasjon
For det første har Wemos en seriell/USB -brikke basert på CH304G. Dette er den samme brikken som finnes i billige Arduino-kloner, og du må installere en skikkelig driver for Mac eller PC. Følg instruksjonene på dette nettstedet for å installere driveren.
Koble Wemos til datamaskinen og bekreft at datamaskinen din kan oppdage Wemos. På Mac, kjør følgende kommando, og du vil se en enhet som heter /dev/tty.wchusbserial640.
$ ls -lt /dev /tty* | hode
crw-rw-rw- 1 rothjul 17, 4. mars 2 23:31 /dev/tty.wchusbserial640
Hvis du er på PC, kan du bruke denne instruksjonsboken som referanse.
Deretter må du konfigurere Python 2 eller 3 på datamaskinen din siden flash -verktøyet, esptool.py, er basert på Python. Mens MicroPython -guiden kan si at verktøyet bare fungerer med Python 2.7, var jeg i stand til å kjøre det i Python 3 uten problemer. Last ned siste Python fra https://www.python.org og følg installasjonsinstruksjonene for din PC eller Mac.
Til slutt må du installere MicroPython på Wemos. MicroPython -området har en utmerket opplæring i hvordan du konfigurerer MicroPython på ESP8266. Bare følg installasjonsinstruksjonene i Komme i gang med MicroPython på ESP8266.
Nedenfor er kommandoer jeg brukte:
$ esptool.py --port /dev/tty.wchusbserial640 erase_flash
esptool.py v1.3 Kobler til…. Kjører Cesanta blinkerstubbe … Slette blits (dette kan ta en stund) … Sletting tok 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 Kobler til…. Kjører Cesanta blinkerstubbe … Flash -parametere satt til 0x0240 Skrev 589824 byte ved 0x0 på 50,8 sekunder (92,8 kbit/s) … Avgår …
MicroPython er nå installert på brettet ditt!
Trinn 5: Konfigurer nettverk
Mens MicroPython nå er installert på Wemos, er det ikke koblet til nettverket ditt ennå. Du må først aktivere nettverk. På Mac, utfør SCREEN -kommandoen for å starte den serielle terminaløkten til Wemos.
$ skjerm /dev/tty.wchusbserial640 115200
Når du ser en tom skjerm, trykker du på RETURN for å se en melding:
>>
(Merk: For å gå ut, skriv inn CTRL-A CTRL-)
La oss nå aktivere webklienttilgang. Skriv "import webrepl_setup" for å kjøre installasjonsprogrammet. Skriv inn E for å aktivere WebREPL og angi deretter passord. Start på nytt for å aktivere endringer.
>> importer webrepl_setup
WebREPL daemon automatisk startstatus: deaktivert Vil du (E) aktivere eller (D) aktivere at den kjører på oppstart? (Tom linje for å avslutte)> E For å aktivere WebREPL, må du angi passord for det Nytt passord: xxxxx Bekreft passord: xxxxx Endringer aktiveres etter omstart Vil du starte på nytt nå? (y/n) y
Last ned Webrepl -klienten til maskinen din. Dette er valgfritt, men klienten kommer med andre nyttige verktøy som du kanskje vil bruke senere. For eksempel er webrepl_cli.py en kommando for å kopiere filer til Wemos i scp-lignende syntaks. Bruk git for å laste ned klienten. (Installer git -verktøyet hvis du ikke har det ennå.)
git -klon
Åpne nettleseren din, og i URL -feltet angir du plasseringen av den nedlastede webrepl -klientfilplasseringen, for eksempel:
fil: ///Users/xxxxx/wemos/webrepl/webrepl.html
Dette skal vise webrepl -klienten i nettleseren din. Før du kan koble til den, må du først koble til WIFi -tilgangspunktet. Hvis du ser på tilgjengelig WIFI for datamaskinen din, ser du at et nettverk starter med MicroPython-xxxx. Koble til det nettverket. (Advarsel: Når du kobler deg til det nettverket, mister du internettilgangen.)
Gå tilbake til webrepl -klienten din og klikk på Koble til. Det bør be om passord. Skriv inn Wemos -passordet ditt, og du bør koble til.
Velkommen til MicroPython!
Passord: WebREPL tilkoblet >>>
Wemos kjører fremdeles i AccessPoint -modus. Selv om dette er OK, foretrekker jeg at det kjører i stasjonsmodus, der det kobles til WIFI -hjemmet mitt, slik at datamaskinen min kan få tilgang til det via hjemme -WIFI og fortsatt har internettilgang. For å gjøre det må du opprette en fil som heter boot.py med nettverkskonfigurasjon og laste den opp til Wemos.
Her er et eksempel på boot.py. Endre ssid og passord til ditt hjemme WIFI -nettverk. Jeg vil også gi den en statisk IP på 192.168.0.32. Endre den til din hjemlige WIFIs tilgjengelige IP -adresse.
boot.py (du kan laste den ned nedenfor)
import gc
import webrepl def do_connect (): import network sta_if = network. WLAN (network. STA_IF) if not 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 (' ',' ') mens den ikke er sta_if.frakoblet (): pass print (' nettverkskonfigurasjon: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()
Bruk Webrepl -klientens "Send en fil" -skjema for å sende boot.py -filen til Wemos. Trykk på reset -knappen for å starte på nytt. Hvis du fremdeles er tilkoblet via USB ved hjelp av SCREEN -kommandoen, ser du:
koble til nettverk … nettverkskonfigurasjon: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL -daemon startet på ws: //192.168.4.1: 8266 WebREPL -demon startet på ws: //192.168.0.32: 8266 Startet webrepl i normal modus kunne ikke åpne filen 'main.py' for å lese MicroPython v1.8.7-7-gb5a1a20a3 2017-01-09; ESP -modul med ESP8266 Skriv "help ()" for mer informasjon. >>>
Dette bekrefter at Wemos er koblet til ditt hjemlige WIFI ved hjelp av ipaddressen til 192.168.0.32.
Du kan pinge IP -adressen for å validere.
$ ping 192.168.0.32
PING 192.168.0.32 (192.168.0.32): 56 databytes
64 byte fra 192.168.0.32: icmp_seq = 0 ttl = 255 time = 9.334 ms 64 byte fra 192.168.0.32: icmp_seq = 1 ttl = 255 time = 11.071 ms..
Trinn 6: Installer hovedprogrammet
Til slutt må du installere hovedprogrammet som vil fortsette å kjøre på Wemos.
Gå tilbake til nettleseren din og kjør webrepl -klientprogrammet. Endre ip -adressen til Wemos 'IP -adresse. I mitt tilfelle er det nå 192.168.0.32. Skriv inn Wemos -passordet ditt, og du bør nå være koblet til Wemos.
La oss laste opp det vedlagte main.py -programmet. Last ned den vedlagte filen til datamaskinen din. Klikk på Velg fil for å velge den nedlastede main.py og klikk på Sendt til enhet.
Du må trykke på Rest -knappen for å laste main.py -programmet. Etter å ha trykket på Reset -knappen, ser du:
koble til nettverk …
nettverkskonfigurasjon: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')
WebREPL -demonen startet på ws: //192.168.4.1: 8266 WebREPL -demonen startet på ws: //192.168.0.32: 8266 Startet webrepl i normal modus Lytting, koble nettleseren til …
Dette betyr at main.py -programmet ditt er aktivert og vises til port 80.
For å teste, åpne nettleseren din og skriv inn
Dette skal vise bilens kontrollskjerm som vist i videoen. Hvis ledningene er riktig tilkoblet, vil kontrollknappene sende riktige signaler til GPIO -portene for å flytte bilen.
Trinn 7: Fremtidige forbedringer
Følgende gjøremål er på min v2-liste:
- Bruk PWM til å kontrollere motorhastigheten
- Forbedre webgrensesnittet. Kanskje bruke aREST -rammeverk. Jeg tror ikke aREST lib er tilgjengelig på MicroPython for øyeblikket, så jeg må kanskje hacke den.
Takk for at du leser denne Instructable. Følg meg på Facebook, Youtube og Instructables for flere prosjekter i fremtiden.
Anbefalt:
Hvordan lage IoT -basert hjemmeautomatisering med NodeMCU -sensorer Kontrollrelé: 14 trinn (med bilder)
Hvordan lage IoT-basert hjemmeautomatisering med NodeMCU-sensorer Kontrollrelé: I dette IoT-baserte prosjektet har jeg laget hjemmeautomatisering med Blynk og NodeMCU-relémodul med sanntidsfeedback. I manuell modus kan denne relemodulen styres fra mobil eller smarttelefon og manuell bryter. I automodus er denne smar
Lora Gateway Basert på MicroPython ESP32: 10 trinn (med bilder)
Lora Gateway Basert på MicroPython ESP32: Lora har vært veldig populær de siste årene. Den trådløse kommunikasjonsmodulen som bruker denne teknologien er vanligvis billig (bruker fritt spektrum), liten i størrelse, energieffektiv og har en lang kommunikasjonsavstand, og brukes hovedsakelig til gjensidig kommunikasjon
Arduino -basert ikke -kontakt infrarødt termometer - IR -basert termometer ved bruk av Arduino: 4 trinn
Arduino -basert ikke -kontakt infrarødt termometer | IR -basert termometer ved bruk av Arduino: Hei folkens i denne instruksjonsboken vil vi lage et kontaktfritt termometer ved hjelp av arduino. Siden noen ganger temperaturen på væsken/faststoffet er for høy eller for lav, og da er det vanskelig å få kontakt med det og lese dets temperaturen da i den situasjonen
Komme i gang med Esp 8266 Esp-01 Med Arduino IDE - Installere Esp -kort i Arduino Ide og Programmering Esp: 4 trinn
Komme i gang med Esp 8266 Esp-01 Med Arduino IDE | Installere Esp Boards i Arduino Ide og Programmering Esp: I denne instruksjonene skal vi lære hvordan du installerer esp8266 boards i Arduino IDE og hvordan du programmerer esp-01 og laster opp kode i den. Siden esp boards er så populære, så jeg tenkte på å rette opp en instruks for dette og de fleste mennesker står overfor problemer
Slik blinker du MicroPython -fastvare på en ESP8266 -basert Sonoff Smart Switch: 3 trinn (med bilder)
Slik blinker du MicroPython -fastvare på en ESP8266 -basert Sonoff Smart Switch: Hva er Sonoff? Sonoff er en enhetslinje for Smart Home utviklet av ITEAD. En av de mest fleksible og rimelige enhetene fra den linjen er Sonoff Basic og Sonoff Dual. Dette er Wi-Fi-aktiverte brytere basert på en flott chip, ESP8266. Mens