Indholdsfortegnelse:

MicroPython IoT Rover Baseret på WEMOS D1 (ESP-8266EX): 7 trin (med billeder)
MicroPython IoT Rover Baseret på WEMOS D1 (ESP-8266EX): 7 trin (med billeder)

Video: MicroPython IoT Rover Baseret på WEMOS D1 (ESP-8266EX): 7 trin (med billeder)

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

** Opdatering: Jeg lagde en ny video til v2 med en lanse **

Jeg afholder Robotics -workshops for små børn, og jeg leder altid efter økonomiske platforme til at bygge spændende projekter. Selvom Arduino -kloner er billige, bruger den C/C ++ - sproget, som børn ikke kender. Det har heller ikke en indbygget WiFi, som er et must for IoT-projekter. På den anden side, mens Raspberry Pi har WIFI, og børn kan programmere det ved hjælp af Python, er det stadig en dyr platform at bare styre få GPIO -porte for at tænde og slukke enheder. Jeg har brug for noget imellem, der har både WIFI- og Python -kapacitet. Det ser ud til, at jeg fandt mit svar i MicroPython blinket på et billigt ESP8266-baseret kort.

Hvad er Micropython?

Ifølge sit websted er MicroPython en slank og effektiv implementering af Python 3 -programmeringssprog, der indeholder en lille delmængde af Python -standardbiblioteket, og det er optimeret til at køre på mikrokontrollere og i begrænsede omgivelser (f.eks. ESP8266). Det er hovedsageligt Python IDE på en chip. En stor fordel er, at du kan oprette kode og ændre den med det samme ved hjælp af en webbrowser-klient kaldet Webrepl. (Prøv at gøre det i Arduino.) Du kan også se sensordata i realtid på Webrepl i stedet for at stole på datalogning eller en LED-skærm i Arduino.

Hvad er ESP8266?

Kort sagt, tænk på det som en Arduino med indbygget netværkskapacitet. Du kan bruge Arduino IDE til at programmere ESP8266 -kort i C/C ++ eller du kan blinke det med NodeMCU eller MicroPython. I dette projekt blinker jeg MicroPython på et ESP8266 -kort.

Jeg besluttede at få en WEMOS D1, der er baseret på ESP8266-12EX til dette enkle projekt, hvor jeg skal navigere i en 2WD-bil ved hjælp af en webbrowser. Der er andre tavler, der er designet til MicroPython, men jeg ville have noget billigt, som jeg kunne smide, hvis det ikke opfyldte mine kriterier. Som forventet opfyldte det alle mine krav, og sandsynligvis vil jeg inkorporere WeMos og Micropython i fremtidige projekter.

Trin 1: Dele

Dele
Dele
Dele
Dele
Dele
Dele
Dele
Dele
  • Wemos D1 eller andre ESP8266 -baserede tavler
  • Motorskjold (jeg bruger en billig L293D fra AliExpress)
  • Batteriholdere til 4 x AA og 9V (4 x AA batterier er til motorer og 9V til Wemos board)
  • 2WD bilchassis
  • Dupont kabler

Kan have brug for et loddejern, en skruetrækker og en limpistol for at sætte alt sammen.

Trin 2: Hardware -samling

Hardware samling
Hardware samling
Hardware samling
Hardware samling
Hardware samling
Hardware samling

Saml først chassiset i henhold til instruktionen.

Derefter varmlim andre komponenter som vist.

Motortråde skal loddes til motorterminalerne og bruge varm lim til at forstærke terminalforbindelserne.

Satte en lille kontakt på 4AA batteriholderen. Dette vil tænde/slukke for motorskærmen.

Trin 3: Ledningsføring

Ledninger
Ledninger
Ledninger
Ledninger
Ledninger
Ledninger

Følg mit ledningsdiagram som vist.

Wemos til Motor Shield:

D1 IN2

D2 IN1 D3 IN4 ** spring over D4 D5 IN3 GND -> GND

Motorskærm til motor/effekt:

En terminal -> Venstre motor

B -terminal -> Højre motor VCC -> Batteri (+) GND -> Batteri (-)

Trin 4: Installation af MicroPython

For det første har Wemos en seriel/USB -chip baseret på CH304G. Dette er den samme chip, der findes i billige Arduino-kloner, og du skal installere en ordentlig driver til Mac eller PC. Følg instruktionerne på dette websted for at installere driveren.

Slut Wemos til din computer, og bekræft, at din computer kunne registrere Wemos. Kør følgende kommando på Mac, og du vil se en enhed kaldet /dev/tty.wchusbserial640.

$ ls -lt /dev /tty* | hoved

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

Hvis du er på pc, kan du bruge denne instruktionsbog som reference.

Dernæst skal du konfigurere Python 2 eller 3 på din computer, da flashværktøjet, esptool.py, er baseret på Python. Selvom MicroPython -guiden muligvis angiver, at værktøjet kun fungerer med Python 2.7, kunne jeg køre det i Python 3 uden problemer. Download den nyeste Python fra https://www.python.org, og følg installationsvejledningen til din pc eller Mac.

Endelig skal du installere MicroPython på Wemos. MicroPython -webstedet har en glimrende vejledning i, hvordan du konfigurerer MicroPython på ESP8266. Følg blot installationsvejledningen i Kom godt i gang med MicroPython på ESP8266.

Nedenfor er kommandoer, jeg brugte:

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

esptool.py v1.3 Tilslutter…. Kører Cesanta blinkerstub … Sletning af flash (dette kan tage et stykke tid) … Sletning 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 Tilslutter…. Kører Cesanta blinkerstub… Flashparametre indstillet til 0x0240 Skrev 589824 bytes ved 0x0 på 50,8 sekunder (92,8 kbit/s)… Forlader…

MicroPython er nu installeret på dit bord!

Trin 5: Opsætning af netværk

Opsætning af netværk
Opsætning af netværk

Mens MicroPython nu er installeret på dine Wemos, er det endnu ikke forbundet til dit netværk. Du skal først aktivere netværk. På Mac skal du udføre kommandoen SCREEN for at starte den serielle terminalsession til Wemos.

$ skærm /dev/tty.wchusbserial640 115200

Når du ser en tom skærm, skal du trykke på RETURN for at se en prompt:

>>

(Bemærk: For at afslutte skal du skrive CTRL-A CTRL-)

Lad os nu aktivere webklientadgang. Skriv "import webrepl_setup" for at køre installationsprogrammet. Indtast E for at aktivere WebREPL, og angiv derefter adgangskode. Genstart for at aktivere ændringer.

>> importer webrepl_setup

WebREPL-dæmon automatisk startstatus: deaktiveret Vil du (E) aktivere eller (D) aktivere, at den kører under opstart? (Tom linje for at afslutte)> E For at aktivere WebREPL skal du indstille adgangskode til den Ny adgangskode: xxxxx Bekræft adgangskode: xxxxx Ændringer aktiveres efter genstart Vil du genstarte nu? (y/n) y

Til sidst skal du downloade Webrepl -klienten til din maskine. Dette er valgfrit, men klienten kommer med andre nyttige værktøjer, som du måske vil bruge senere. For eksempel er webrepl_cli.py en kommando til at kopiere filer til Wemos i scp-lignende syntaks. Brug git til at downloade klienten. (Installer git -værktøjet, hvis du ikke har det endnu.)

git -klon

Åbn din webbrowser, og indtast placeringen af din downloadede webrepl -klientfilplacering i URL -feltet, f.eks.:

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

Dette skulle vise webrepl -klienten i din browser. Før du kan oprette forbindelse til det, skal du først oprette forbindelse til dets WIFi -adgangspunkt. Hvis du ser på tilgængelig WIFI til din computer, ser du, at et netværk starter med MicroPython-xxxx. Opret forbindelse til det netværk. (Advarsel: Når du opretter forbindelse til det netværk, mister du din internetadgang.)

Gå tilbage til din webrepl -klient, og klik på Opret forbindelse. Det skal bede om adgangskode. Indtast din Wemos -adgangskode, og du skal oprette forbindelse.

Velkommen til MicroPython!

Adgangskode: WebREPL tilsluttet >>>

Din Wemos kører stadig i AccessPoint -tilstand. Selvom dette er OK, foretrækker jeg, at det kører i Stationstilstand, hvor det opretter forbindelse til mit hjemlige WIFI, så min computer kunne få adgang til det via hjemmets WIFI og stadig har internetadgang. For at gøre det skal du oprette en fil kaldet boot.py med netværkskonfiguration og uploade den til Wemos.

Her er et eksempel på boot.py. Skift ssid og adgangskode til dit WIFI -hjemmenetværk. Jeg vil også give den en statisk IP på 192.168.0.32. Skift det til dit hjem WIFI's tilgængelige IP -adresse.

boot.py (du kan downloade det nedenunder)

import gc

import webrepl def do_connect (): import netværk sta_if = netværk. WLAN (netværk. STA_IF) hvis ikke sta_if.afbrudt (): print ('forbindelse til netværk …') 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.afbrudt (): pass print (' netværkskonfiguration: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()

Brug Webrepl -klientens "Send en fil" -formular til at sende din boot.py -fil til dine Wemos. Tryk på reset -knappen for at genstarte. Hvis du stadig er tilsluttet via USB ved hjælp af kommandoen SCREEN, ser du:

forbindelse til netværk … netværkskonfiguration: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL -dæmon startede på ws: //192.168.4.1: 8266 WebREPL -dæmon startede på ws: //192.168.0.32: 8266 Startet webrepl i normal tilstand kunne ikke åbne filen 'main.py' til læsning af MicroPython v1.8.7-7-gb5a1a20a3 den 2017-01-09; ESP -modul med ESP8266 Skriv "hjælp ()" for mere information. >>>

Dette validerer, at din Wemos er forbundet til dit WIFI i hjemmet ved hjælp af ipaddressen 192.168.0.32.

Du kan pinge den IP -adresse for at validere.

$ ping 192.168.0.32

PING 192.168.0.32 (192.168.0.32): 56 databyte

64 bytes fra 192.168.0.32: icmp_seq = 0 ttl = 255 time = 9.334 ms 64 bytes fra 192.168.0.32: icmp_seq = 1 ttl = 255 time = 11.071 ms..

Trin 6: Installer hovedprogram

Installer hovedprogram
Installer hovedprogram
Installer hovedprogram
Installer hovedprogram

Endelig skal du installere hovedprogrammet, der fortsat kører på dine Wemos.

Gå tilbage til din webbrowser, og kør webrepl -klientprogrammet. Skift ip -adressen til din Wemos 'IP -adresse. I mit tilfælde er det nu 192.168.0.32. Indtast din Wemos -adgangskode, og du skal nu have forbindelse til Wemos.

Lad os uploade det vedhæftede main.py -program. Download den vedhæftede fil til din computer. Klik på Vælg fil for at vælge den downloadede main.py og klik på Sendt til enhed.

Du skal trykke på Rest -knappen for at indlæse main.py -programmet. Efter at have trykket på knappen Nulstil, ser du:

opretter forbindelse til netværk …

netværkskonfiguration: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')

WebREPL -dæmon startede på ws: //192.168.4.1: 8266 WebREPL -dæmon startede på ws: //192.168.0.32: 8266 Startede webrepl i normal tilstand Lytning, tilslut din browser til …

Dette betyder, at dit main.py -program er aktiveret og vises til port 80.

For at teste skal du åbne din webbrowser og indtaste

Dette skal vise bilens kontrolskærm som vist i videoen. Hvis dine ledninger er tilsluttet korrekt, sender kontrolknapperne korrekte signaler til dine GPIO -porte for at flytte bilen.

Trin 7: Fremtidige forbedringer

Følgende gøremål er på min v2-liste:

  • Brug PWM til at styre motorhastigheden
  • Forbedre webinterface. Brug måske aREST -rammer. Jeg tror ikke, at aREST lib er tilgængelig på MicroPython i øjeblikket, så jeg skal muligvis hacke det.

Tak fordi du læste denne Instructable. Følg mig på Facebook, Youtube og Instructables til flere projekter i fremtiden.

Anbefalede: