Sadržaj:
- Korak 1: Dijelovi
- Korak 2: Sklapanje hardvera
- Korak 3: Ožičenje
- Korak 4: Instalacija MicroPythona
- Korak 5: Postavljanje mreže
- Korak 6: Instalirajte glavni program
- Korak 7: Buduća poboljšanja
Video: MicroPython IoT Rover baziran na WEMOS D1 (ESP-8266EX): 7 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
** Ažuriranje: Objavio sam novi video za v2 sa kopljem **
Domaćin sam radionica robotike za malu djecu i uvijek sam u potrazi za ekonomskim platformama za izgradnju intrigantnih projekata. Iako su Arduino klonovi jeftini, on koristi C/C ++ jezik koji djeca ne poznaju. Također, nema ugrađen WiFi koji je neophodan za IoT projekte. S druge strane, iako Raspberry Pi ima WIFI i djeca ga mogu programirati pomoću Pythona, to je još uvijek skupa platforma za samo nekoliko GPIO portova za uključivanje i isključivanje uređaja. Treba mi nešto između što ima i WIFI i Python mogućnosti. Čini se da sam svoj odgovor našao u MicroPythonu na jeftinoj ploči zasnovanoj na ESP8266.
Šta je Micropython?
Prema njegovoj web stranici, MicroPython je mršava i efikasna implementacija programskih jezika Python 3 koji uključuje mali podskup standardne biblioteke Python i optimiziran je za rad na mikrokontrolerima i u ograničenim okruženjima (poput ESP8266). To je u osnovi Python IDE na čipu. Jedna od glavnih prednosti je što možete stvoriti kôd i promijeniti ga u hodu pomoću klijenta web-preglednika pod nazivom Webrepl. (Pokušajte to učiniti u Arduinu.) Također možete vidjeti podatke senzora u stvarnom vremenu na Webreplu umjesto da se oslanjate na bilježenje podataka ili LED zaslon u Arduinu.
Šta je ESP8266?
Ukratko, zamislite to kao Arduino s ugrađenim mrežnim mogućnostima. Možete koristiti Arduino IDE za programiranje ESP8266 ploča na C/C ++ ili ga možete fleširati pomoću NodeMCU -a ili MicroPythona. U ovom projektu ću prebaciti MicroPython na ploču ESP8266.
Odlučio sam nabaviti WEMOS D1 zasnovan na ESP8266-12EX za ovaj jednostavan projekt u kojem ću se kretati automobilom s 2 pogona pomoću web preglednika. Postoje i druge ploče koje su dizajnirane za MicroPython, ali htio sam nešto jeftino što bih mogao baciti ako ne zadovoljava moje kriterije. Očekivano, ispunio je sve moje zahtjeve i najvjerojatnije ću u buduće projekte uključiti WeMos i Micropython.
Korak 1: Dijelovi
- Wemos D1 ili bilo koje ploče zasnovane na ESP8266
- Motorni štit (koristim jeftin L293D sa AliExpress -a)
- Držači baterija za 4 x AA i 9V (4 x AA baterije su za motore, a 9V za Wemos ploču)
- 2WD šasija automobila
- Dupont kablovi
Možda će vam trebati lemilica, odvijač i pištolj za ljepilo da sve spojite.
Korak 2: Sklapanje hardvera
Prvo sastavite šasiju prema uputama.
Zatim vruće zalijepite ostale komponente kao što je prikazano.
Žice motora treba lemiti na stezaljkama motora i koristiti vruće ljepilo za učvršćivanje spojeva terminala.
Priključio mali prekidač na držač baterije 4AA. Ovo će uključiti/isključiti napajanje štitnika motora.
Korak 3: Ožičenje
Pratite moj dijagram ožičenja kao što je prikazano.
Wemos za motorni štit:
D1 IN2
D2 IN1 D3 IN4 ** preskočite D4 D5 IN3 GND -> GND
Štit motora prema motoru/snazi:
Terminal -> Lijevi motor
B terminal -> Desni motor VCC -> Baterija (+) GND -> Baterija (-)
Korak 4: Instalacija MicroPythona
Prvo, Wemos ima serijski/USB čip zasnovan na CH304G. Ovo je isti čip koji se nalazi u jeftinim Arduino klonovima i morate instalirati odgovarajući upravljački program za Mac ili PC. Slijedite upute na ovoj web stranici da biste instalirali upravljački program.
Povežite Wemos sa računarom i potvrdite da vaš računar može otkriti Wemos. Na Mac -u pokrenite sljedeću naredbu i vidjet ćete uređaj koji se zove /dev/tty.wchusbserial640.
$ ls -lt /dev /tty* | glava
crw-rw-rw- 1 korijenski kotač 17, 4. ožujka 2 23:31 /dev/tty.wchusbserial640
Ako ste na računaru, možete koristiti ovaj Instructable kao referencu.
Zatim ćete morati postaviti Python 2 ili 3 na računaru budući da je flash alat, esptool.py, zasnovan na Pythonu. Iako u vodiču za MicroPython može biti navedeno da alat radi samo s Pythonom 2.7, uspio sam to pokrenuti u Pythonu 3 bez ikakvih problema. Preuzmite najnoviji Python sa https://www.python.org i slijedite upute za instalaciju za vaš PC ili Mac.
Na kraju ćete morati instalirati MicroPython na Wemos. MicroPython web mjesto ima odličan vodič o postavljanju MicroPythona na ESP8266. Samo slijedite upute za instalaciju u odjeljku Prvi koraci s MicroPythonom na ESP8266.
Ispod su naredbe koje sam koristio:
$ esptool.py --port /dev/tty.wchusbserial640 erase_flash
esptool.py v1.3 Povezivanje…. Pokreće se Cesanta flasher stub… Brisanje bljeskalice (ovo može potrajati)… Brisanje je trajalo 10,5 sekundi
$ 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 Povezivanje…. Pokreće se Cesanta flasher stub… Parametri bljeskalice postavljeni na 0x0240 Napisali su 589824 bajta pri 0x0 za 50,8 sekundi (92,8 kbit/s)… Napuštamo…
MicroPython je sada instaliran na vašoj ploči!
Korak 5: Postavljanje mreže
Iako je MicroPython sada instaliran na vašem Wemosu, još nije povezan s vašom mrežom. Morat ćete prvo omogućiti mrežu. Na Macu izvedite naredbu SCREEN da biste započeli sesiju serijskog terminala za Wemos.
$ screen /dev/tty.wchusbserial640 115200
Kada vidite prazan ekran, pritisnite RETURN da vidite upit:
>>
(Napomena: Za izlaz unesite CTRL-A CTRL-)
Omogućimo sada pristup webclientu. Upišite "import webrepl_setup" da biste pokrenuli program za postavljanje. Unesite E da biste omogućili WebREPL, a zatim postavite lozinku. Ponovo pokrenite sistem da biste aktivirali promjene.
>> uvezite webrepl_setup
Status automatskog pokretanja demona WebREPL: onemogućen Želite li (E) uključiti ili (D) je moguće da radi pri pokretanju? (Prazna linija za zatvaranje)> E Da biste omogućili WebREPL, morate postaviti lozinku za nju Nova lozinka: xxxxx Potvrdite lozinku: xxxxx Promjene će se aktivirati nakon ponovnog pokretanja sistema. Želite li sada ponovo pokrenuti sistem? (y/n) y
Na kraju, preuzmite Webrepl klijent na svoju mašinu. Ovo nije obavezno, ali klijent dolazi s drugim korisnim alatima koje ćete kasnije možda htjeti koristiti. Na primjer, webrepl_cli.py je naredba za kopiranje datoteka u Wemos u sintaksi sličnoj scp-u. Koristite git za preuzimanje klijenta. (Instalirajte git alat ako ga još nemate.)
git clone
Otvorite svoj web preglednik i u polje URL unesite lokaciju preuzete datoteke datoteke webrepl klijenta, kao što su:
datoteka: ///Users/xxxxx/wemos/webrepl/webrepl.html
Ovo bi trebalo prikazati webrepl klijenta u vašem pregledniku. Da biste se mogli povezati s njim, morate se prvo povezati s WIFi pristupnom točkom. Ako pogledate dostupan WIFI za vaše računalo, vidjet ćete da mreža počinje s MicroPython-xxxx. Povežite se na tu mrežu. (Upozorenje: Jednom kada se povežete na tu mrežu, izgubit ćete pristup internetu.)
Vratite se svom webrepl klijentu i kliknite na Poveži se. Trebao bi zatražiti lozinku. Unesite svoju Wemos lozinku i trebali biste se povezati.
Dobro došli u MicroPython!
Lozinka: WebREPL povezan >>>
Vaš Wemos i dalje radi u AccessPoint načinu rada. Iako je to u redu, više volim da radi u načinu rada stanice gdje se povezuje s kućnim WIFI -jem kako bi mu računalo moglo pristupiti putem kućnog WIFI -ja i još uvijek imati pristup internetu. Da biste to učinili, morat ćete stvoriti datoteku pod nazivom boot.py s mrežnom konfiguracijom i prenijeti je na Wemos.
Evo primjera boot.py. Promijenite ssid i lozinku na svoju kućnu WIFI mrežu. Također, želim mu dati statički IP od 192.168.0.32. Promijenite je na dostupnu IP adresu kućnog WIFI -ja.
boot.py (možete ga preuzeti odozdo)
import gc
import webrepl def do_connect (): uvoz mreže sta_if = network. WLAN (network. STA_IF) ako nije sta_if.isconnected (): print ('povezivanje na mrežu …') 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 (' ',' ') dok nije sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()
Koristite obrazac "Pošalji datoteku" klijenta Webrepl da pošaljete svoju datoteku boot.py na svoj Wemos. Pritisnite dugme za resetovanje da biste ponovo pokrenuli sistem. Ako ste i dalje povezani putem USB -a pomoću naredbe SCREEN, vidjet ćete:
povezivanje na mrežu… mrežna konfiguracija: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL demon pokrenut na ws: //192.168.4.1: 8266 WebREPL demon pokrenut na ws: //192.168.0.32: 8266 Pokrenuti webrepl u normalnom načinu rada nije mogao otvoriti datoteku 'main.py' za čitanje MicroPythona v1.8.7-7-gb5a1a20a3 dana 2017-01-09; ESP modul sa ESP8266 Upišite "help ()" za više informacija. >>>
Ovim se potvrđuje da je vaš Wemos povezan s kućnim WIFI -om pomoću ipad adrese 192.168.0.32.
Možete provjeriti tu IP adresu radi provjere valjanosti.
$ ping 192.168.0.32
PING 192.168.0.32 (192.168.0.32): 56 bajtova podataka
64 bajta iz 192.168.0.32: icmp_seq = 0 ttl = 255 vrijeme = 9.334 ms 64 bajta iz 192.168.0.32: icmp_seq = 1 ttl = 255 vrijeme = 11.071 ms..
Korak 6: Instalirajte glavni program
Na kraju, morate instalirati glavni program koji će se nastaviti izvoditi na vašem Wemosu.
Vratite se na svoj web preglednik i pokrenite klijentski program webrepl. Promijenite IP adresu u svoju Wemos IP adresu. U mom slučaju sada je 192.168.0.32. Unesite lozinku za Wemos i sada biste trebali biti povezani s Wemosom.
Prenesite priloženi program main.py. Preuzmite priloženu datoteku na svoj računar. Pritisnite Odaberi datoteku za odabir preuzete datoteke main.py, a zatim kliknite Poslano na uređaj.
Morat ćete pritisnuti gumb Odmor da biste učitali program main.py. Nakon pritiska na tipku Reset, vidjet ćete:
povezivanje na mrežu…
mrežna konfiguracija: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')
WebREPL demon pokrenut na ws: //192.168.4.1: 8266 WebREPL demon je pokrenut na ws: //192.168.0.32: 8266 Webrepl je pokrenut u normalnom načinu rada Slušanje, povežite svoj preglednik na…
To znači da je vaš program main.py aktiviran i da se prikazuje na portu 80.
Za testiranje otvorite web preglednik i unesite
Ovo bi trebalo prikazati ekran za upravljanje automobilom kao što je prikazano u videu. Ako su vaše žice pravilno spojene, kontrolna tipka će poslati odgovarajuće signale na vaše GPIO portove za pomicanje automobila.
Korak 7: Buduća poboljšanja
Na mojoj v2 listi nalaze se sljedeće stavke obaveza:
- Koristite PWM za kontrolu brzine motora
- Poboljšajte web sučelje. Možda koristite aREST framework. Ne vjerujem da je aREST lib trenutno dostupan na MicroPythonu pa ću ga morati hakirati.
Hvala vam što ste pročitali ovo uputstvo. Pratite me na Facebook -u, Youtube -u i Instructables za više projekata u budućnosti.
Preporučuje se:
Raketni bacač na bazi Alexa baziran na glasu: 9 koraka (sa slikama)
Raketni bacač na bazi Alexa baziran na glasu: Kako se približava zimska sezona; dolazi to doba godine kada se slavi festival svetla. Da, govorimo o Diwaliju koji je pravi indijski festival koji se slavi širom svijeta. Ove godine, Diwali je već završen i videće ljude
Višenamjenski kockasti sat baziran na položaju: 5 koraka (sa slikama)
Višenamjenski kockasti sat baziran na poziciji: Ovo je sat baziran na Arduinu sa OLED ekranom koji funkcionira kao sat s datumom, kao tajmer za drijemanje i kao noćno svjetlo. Različite " funkcije " kontroliraju se mjeračem ubrzanja i biraju rotiranjem kockastog sata
Lora Gateway baziran na MicroPythonu ESP32: 10 koraka (sa slikama)
Lora Gateway baziran na MicroPythonu ESP32: Lora je vrlo popularna posljednjih godina. Bežični komunikacijski modul koji koristi ovu tehnologiju obično je jeftin (koristeći slobodni spektar), malih dimenzija, energetski učinkovit i ima veliku komunikacijsku udaljenost, a uglavnom se koristi za međusobnu komunikaciju
Upotrijebite Homie firmver za pogon Sonoff prekidača (baziran na ESP8266): 5 koraka (sa slikama)
Upotreba Homie firmvera za pogon Sonoff prekidačkog modula (zasnovano na ESP8266): Ovo je nastavak instrukcije, ovo sam napisao malo nakon " Izgradnja Homie uređaja za IoT ili kućnu automatizaciju ". Kasnije se fokusiralo na osnovno praćenje (DHT22, DS18B20, svjetlo) oko D1 Mini ploča. Ovaj put bih želio pokazati kako
Kako kontrolirati Sonoff Basic pametni prekidač baziran na ESP8266 sa pametnim telefonom: 4 koraka (sa slikama)
Kako kontrolirati Sonoff Basic pametni prekidač baziran na ESP8266 sa pametnim telefonom: Sonoff je linija uređaja za pametnu kuću koju je razvila ITEAD. Jedan od najfleksibilnijih i najjeftinijih uređaja iz te linije je Sonoff Basic. To je prekidač s omogućenom Wi-Fi mrežom baziran na odličnom čipu ESP8266. Ovaj članak opisuje kako postaviti Cl