Inhoudsopgave:

Aan de slag met MicroPython op de ESP8266: 10 stappen (met afbeeldingen)
Aan de slag met MicroPython op de ESP8266: 10 stappen (met afbeeldingen)

Video: Aan de slag met MicroPython op de ESP8266: 10 stappen (met afbeeldingen)

Video: Aan de slag met MicroPython op de ESP8266: 10 stappen (met afbeeldingen)
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, November
Anonim
Aan de slag met MicroPython op de ESP8266
Aan de slag met MicroPython op de ESP8266

Wilt u een andere manier om de ESP8266-gebaseerde boards te programmeren in plaats van de gebruikelijke methode met behulp van Arduino IDE samen met C/C++ programmeertaal?

In deze tutorial zullen we leren wie een ESP8266-bord moet configureren en besturen met behulp van MicroPython.

BOUWTIJD: 60 MINUTEN MOEILIJKHEID: BEOORDELING: Eenvoudig

Stap 1: Wat is MicroPython?

MicorPython is een van de vele programmeertalen die we kunnen gebruiken om de ESP8266-module te programmeren. Het is een slanke en snelle versie van de programmeertaal Python 3 en heeft verschillende voordelen ten opzichte van traditionele programmeertalen zoals C en C++.

MicroPython is ontworpen om zoveel mogelijk compatibel te zijn met normale Python. Het heeft een complete Python-compiler en runtime, en biedt een interactieve prompt die bekend staat als REPL (Read-Eval-Print Loop).

MicorPython is ontworpen om enkele verschillende soorten microcontrollers te ondersteunen. Maar voor deze tutorial ga ik met slechts één model werken: het ESP8266-gebaseerde bord (NodeMCU). Merk op dat er een paar verschillende boards zijn die je met dezelfde chip kunt kopen.

Lezen en bronnen:

MicroPython

KnooppuntMCU

Stap 2: Vereisten

Vereisten
Vereisten
Vereisten
Vereisten
Vereisten
Vereisten
Vereisten
Vereisten

Om deze tutorial te kunnen volgen, hoef je alleen maar basiscodeerervaring met Python te hebben. Je hoeft geen voorkennis te hebben van microcontrollers, elektronica of zelfs MicroPython.

U hebt ook een Windows-, Mac- of Linux-computer met een vrije USB-poort nodig, omdat u een microcontroller op uw computer aansluit om deze te programmeren.

Benodigde onderdelen:

1 x NodeMCU (of een ander op ESP8266 gebaseerd bord)

1 x rode 5 mm LED

1 x 220Ω 1/4W weerstand

1 x 10KΩ Roterende Potentiometer

1 x Breadboard

1 x USB naar MicroUSB-kabel

Jumper draden.

Stap 3: Waarom op ESP8266 gebaseerd bord?

Waarom op ESP8266 gebaseerd bord?
Waarom op ESP8266 gebaseerd bord?

Een manier om het meeste uit uw ESP8266 te halen, is door MicroPython te gebruiken. De ESP8266-module is ook een van de beste platforms om te leren hoe u MicroPython kunt gebruiken. Dit komt omdat de ESP8266 zowel eenvoudige GPIO-pinbesturingsfuncties als draadloze functionaliteit biedt, zodat u alle aspecten van de MicroPython-programmeertaal kunt testen.

De ESP8266-chip is populair in de open source ontwikkelingsindustrie. Er zijn veel ontwikkelborden van verschillende fabrikanten die de ESP8266-chip gebruiken. MicroPython is ontworpen om een generieke poort te bieden die op de meeste van deze boards kan draaien, met zo min mogelijk beperkingen. De poort is gebaseerd op het Adafruit Feather HUZZAH-bord. Als je andere ESP8266-borden gebruikt, zorg er dan voor dat je hun schema's en datasheets controleert, zodat je de verschillen tussen hen en het Adafruit Feather HUZZAH-bord kunt identificeren. Op die manier kunt u de verschillen in uw code opvangen.

Lezen en bronnen:

ESP8266

Adafruit Veer HUZZAH

Stap 4: Uw computer instellen

Uw computer instellen
Uw computer instellen
Uw computer instellen
Uw computer instellen
Uw computer instellen
Uw computer instellen
Uw computer instellen
Uw computer instellen

Er zijn verschillende dingen die u moet instellen voordat u MicroPython gebruikt om uw ESP8266-bord te programmeren. In deze stap zullen we het installatieproces doorlopen. Op deze manier weet u hoe u het ESP8266-bord moet configureren voor gebruik met MicroPython.

Klaar maken

Het enige dat u van stap tot stap 6 nodig hebt, is uw ESP8266 en een USB-kabel. Sluit uw ESP8266-bord aan op uw computer.

Hoe je dat doet…

STAP1: Apparaatstuurprogramma's installeren

Als u een Linux-computer hebt, hoeft u geen apparaatstuurprogramma's te installeren om de stuurprogramma's voor de microcontroller te laten herkennen. Maar als u een Mac- of een Windows-computer hebt, is een stuurprogramma nodig om de computer de microcontroller te laten herkennen als serieel apparaat.

www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers.

STAP2: Python installeren

De tools die je gaat gebruiken om te communiceren met de ESP8266 zijn geschreven in Python, dus je moet Python op je computer installeren.

Als uw besturingssysteem geen voorverpakte Python biedt, kunt u naar https://python.org gaan om een officiële build voor elk van de ondersteunde besturingssystemen te downloaden.

STAP3: Installeer esptool en rshell

Installeer twee pakketten die u zullen helpen uw bord te beheren met pip. Open hiervoor uw terminal en voer. uit

pip install esptool rshell

STAP 4: Download MicroPython

Download de nieuwste MicroPython-firmware.bin via de volgende link:

Op het moment dat ik dit schrijf, is de huidige versie 1.11 en het firmwarebestand heet esp8266-20190529-v1.11.bin

Tegen de tijd dat u dit doet, vindt u mogelijk een nieuwere release.

Stap 5: MicroPython knipperen met Esptool.py

Knipperende MicroPython met Esptool.py
Knipperende MicroPython met Esptool.py
Knipperende MicroPython met Esptool.py
Knipperende MicroPython met Esptool.py

Voordat u een nieuwe firmware op het bord flasht, is het een goed idee om eerdere gegevens te wissen. Dit is iets dat u altijd moet doen, zodat de nieuwe firmware in een schone staat werkt.

Ga waar u het.bin-bestand hebt geplaatst. Gebruik esptool.py om de flitser te wissen.

Voor Linux:

esptool.py --port /dev/ttyUSB0 erase_flash

Voor ramen:

esptool.py --port COM3 erase_flash

Mogelijk moet u de seriële poort in uw opdracht wijzigen in de seriële poort waarop uw ESP8266-kaart is aangesloten. Als u het seriële poortnummer van uw ESP8266 niet weet, kunt u de Arduino IDE controleren. Open gewoon de IDE en klik vervolgens op Extra | Poorten. U zou de seriële poort van uw ESP8266-bord daar moeten zien staan. Vervang de seriële poort in het commando (/dev/ttyUSB0) door de seriële poort van je board.

Nu het bord volledig is gewist, kun je de MicroPython-build flashen die je zojuist hebt gedownload. Dit doe je ook met de opdracht esptool.py:

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash 0 esp8266-20190529-v1.11.bin

Met deze opdracht wordt de inhoud van het MicroPython.bin-bestand naar het bord op adres 0 geschreven.

Zorg ervoor dat u de naam van het firmware.bin-bestand in de opdracht (esp82688-2019-080529-v1.11.bin) wijzigt in die van de firmware die u hebt gedownload.

Zodra de firmware met succes op uw ESP8266-bord is geïnstalleerd, hebt u toegang tot REPL op uw bord via een bekabelde verbinding (UART-seriële poort) of via WiFi.

Stap 6: De MicroPython REPL gebruiken met Rshell

De MicroPython REPL gebruiken met Rshell
De MicroPython REPL gebruiken met Rshell
De MicroPython REPL gebruiken met Rshell
De MicroPython REPL gebruiken met Rshell

U bent nu klaar om MicroPython op uw ESP8266-bord te starten.

Wat ik je ga laten zien hoe je verbinding kunt maken met de Python-prompt die op je bord wordt uitgevoerd. Dit wordt de REPL genoemd, wat staat voor "Read-Eval-Print-Loop". Dit is de standaard Python-prompt die u waarschijnlijk gewend bent te zien wanneer u met de reguliere Python-interpreter werkt, maar deze keer zal deze op uw bord worden uitgevoerd en om ermee te communiceren, gebruikt u de seriële verbinding met uw computer. Klaar?

Om verbinding te maken met je board en een REPL-sessie te openen, voer je de volgende opdracht in:

rshell --port

Deze opdracht brengt je naar de rshell-prompt. Zie foto hierboven.

Als je deze tutorial op Windows volgt, houd er dan rekening mee dat rshell een geschiedenis van problemen heeft bij het draaien op Windows.

Dus om dat type te repareren:

rshell -a --poort COM3

Vanaf deze prompt kunt u beheertaken uitvoeren die verband houden met uw microcontroller-bord en ook een Python REPL starten die u kunt gebruiken om in realtime met het bord te communiceren. Voer dus gewoon de volgende opdracht in:

antwoord

Typ een eenvoudige Python-zin om te controleren of alles werkt:

print("Hallo wereld")

Stap 7: Pins bedienen met MicroPython

Pins bedienen met MicroPython
Pins bedienen met MicroPython
Pins bedienen met MicroPython
Pins bedienen met MicroPython

In deze stap leren we hoe we de ESP8266-pinnen kunnen bedienen met MicroPython. Om dat te doen, zullen we een opstelling bedenken waarbij we de status van de LED die is aangesloten op een GPIO-pin van het ESP8266-bord zullen veranderen. Dit zal u helpen begrijpen hoe u digitale uitgangen kunt bedienen met MicoPython.

Klaar maken

Je hebt de volgende dingen nodig om deze STAP te volbrengen:

1 x NodeMCU

1 x rode 5 mm LED

1 x 220 Weerstand

1 x Breadboard

Doorverbindingsdraden

de bouw

Begin met het monteren van de LED op het breadboard. Sluit het ene uiteinde van de 220 Ω-weerstand aan op de positieve poot van de LED (de positieve poot van een LED is meestal de hoogste van de twee poten). Sluit het andere uiteinde van de weerstand aan op pin D1 van het ESP8266-bord. Verbind vervolgens de negatieve poot van de LED met de GND-pin van de ESP8266-kaart. De aansluiting is zoals weergegeven in het bovenstaande schema.

Zodra de installatie is voltooid, sluit u het ESP8266-bord via een USB-kabel op uw computer aan.

Hoe je dat doet…

Typ de volgende code in uw REPL:

# knipperende LED elke 1 seconde

def blink(pin=5, time=1) # blink functie standaard pin=5, time=1s import machine # de machine module bevat de pin configuraties en modes van time import sleep # import sleep voor enige vertraging LED = machine. Pin (led_pin, machine. PIN. OUT) # configureer LED als OUTPUT terwijl True: # run forever LED.value(1) # stel LED in op HOOG slaap(tijd) # wacht standaard 1 seconde LED.value(0) # stel LED in naar LAGE slaap (tijd) # wacht standaard 1 seconde

Typ blink() in uw RPEL-sessie om deze code te testen. Hierdoor knippert de LED die is aangesloten op de GPIO5 elke 1 seconde.

U kunt de pincode en/of de tijd wijzigen door te bellen naar:

knipperen (pin=, tijd=)

Druk op ctrl+c om de actieve code af te sluiten.

U kunt MicroPython gebruiken om een ingang te lezen die is aangesloten op de ESP8266. Ga naar de volgende stap om te leren hoe u dat doet.

Check de video als je vastzit.

Stap 8: De LED vervagen

De LED vervagen
De LED vervagen
De LED vervagen
De LED vervagen

In deze stap leren we hoe we de helderheid van de LED kunnen aanpassen met behulp van een draaipotentiometer. We zullen een techniek gebruiken genaamd Pulse Width Modulation (PWM), waarmee we de LED kunnen dimmen met maximaal 256 instellingen.

Opmerking: alle pinnen van ESP8266 kunnen worden gebruikt als een PWM-pin behalve GPIO16 (D0).

Klaar maken:

Je hebt de volgende dingen nodig om deze STAP te volbrengen:

1 x NodeMCU

1 x rode 5 mm LED

1 x 50 KΩ Draaipotentiometer.

1 x Breadboard

Doorverbindingsdraden

de bouw

De aansluiting is zoals weergegeven in het bovenstaande diagram: Zodra de installatie is voltooid, sluit u het ESP8266-bord via een USB-kabel op uw computer aan.

Hoe je dat doet…

Typ de volgende code in uw REPL:

# Fading LED elke 0,5 door het lezen van gegevens van de Potentiometer

import machine van tijd import slaap led_pin = 5 # led pin POT = machine. ADC(0) # ADC0 pin LED = machine. Pin(led_pin) # maak LED-object LED_pwm = machine. PWM(LED, freq=500) # maak LED_pwm object en stel de frequentie in op 500Hz terwijl True: LED_pwm.duty(POT.read()) # haal de waarde uit de Pot en stel deze in op de duty cycle sleep (0.5) # wacht 0.5

Hierdoor verandert de helderheid van de LED die is aangesloten op GPIO 5 door de waarde van de potentiometer te wijzigen.

Druk op ctrl+c om de actieve code af te sluiten.

Check de video als je vastzit.

Stap 9: Waarheen?

Tot nu toe hebben we gezien hoe MicroPython op ESP8266-gebaseerde boards kan worden geconfigureerd en uitgevoerd. we leerden hoe we pinnen moesten besturen om een LED te laten knipperen, daarna voegden we een potentiometer toe om de helderheid van de LED te regelen met behulp van pulsbreedtemodulatietechniek.

Nu kunnen we gegevens van de sensor lezen en naar de cloud sturen, we kunnen ook een HTTP-server maken waar u onze gegevens op een eenvoudige webpagina kunt afdrukken, enz …

Dit geeft ons veel idee van Internet of Things (IoT).

Stap 10: Conclusie

Daar heb je het! Ga eropuit en verover de wereld van MicroPython.

als je vragen hebt kun je natuurlijk een reactie achterlaten.

Bezoek mijn YouTube-kanaal om meer over mijn werken te zien:

mijnYouTube

mijnGitHub

mijnLinkedin

Bedankt voor het lezen van deze instructable ^^ en een fijne dag verder.

Tot ziens.

Ahmed Nouira.

Aanbevolen: