In diesem Beitrag möchte ich dir den Lolin S2 mini V1 vorstellen und zeigen wie du diesen programmieren kannst.
Bezug
Den Mikrocontroller habe ich über aliexpress.com für 6,4 € inkl. Versandkosten erstanden. Du findest diesen aber auch auf ebay.de* finden, jedoch zu einem deutlich höheren Preis.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Zum Zeitpunkt der Erstellung dieses Beitrages war der Mikrocontroller auf aliexpress.com nicht verfügbar. Jedoch wird dieser garantiert wieder lieferbar sein und somit kann man bei etwas Wartezeit bares Geld sparen.
Lieferumfang
Zum Lieferumfang des Mikrocontrollers gehört neben der Platine noch 4 8polige Pinleisten ein kleiner Aufkleber mit den Pinbeschriftungen.
Technische Daten
Hier nun zunächst die technischen Daten des Mikrocontrollers.
Mikrochip | ESP32-S2FN4R2 |
CPU | Xtensa® single-core 32-bit LX7 |
Taktgeschwindigkeit | 240 MHz |
Speicher | 4 MB Flash 2 MB PSRAM |
GPIOs | 27x IOs |
Schnittstellen | I²C, SPI, UART, USB OTG |
Betriebsspannung | 3,3 V |
Abmaße (L x B) | 34,5 mm x 25,4 mm |
Gewicht | 2,4 g |
Aufbau & Pinout
Der Mikrocontroller verfügt über eine USB-Typ-C Schnittstelle, über welche man diesen mit Strom versorgen kann (zbsp. über eine Powerbank) und auch Programmieren kann.
Des Weiteren verfügt dieser über eine interne Buildin LED am Pin 15 sowie einen Reset Taster links und einen Taster “0” rechts.
Das Bild vom Pinout wurde mir freundlicherweise von der Firma Wemos bereitgestellt. Du findest auf der Seite https://www.wemos.cc/en/latest/s2/s2_mini.html weitere Informationen zu diesem Mikrocontroller.
Pinleiste(n) anlöten
Wie bereits erwähnt liegen dem Mikrocontroller 4 8polige Pinleisten bei. Von diesen möchte ich jedoch nur 2 verwenden. Der Mikrocontroller ist voll kompatibel mit den bereits bekannten Wemos D1 Mini Shields und daher benötige ich für weitere Projekte eine Buchsenleiste statt einer Pinleiste.
Die Buchsenleisten für die Shields werden jeweils außen an den Mikrocontroller gelötet und die Stiftleisten auf die inneren Lötaugen.
Programmieren
Der Mikrocontroller lässt sich über C/C++ mit der Arduino IDE und mit MicroPython über der Thonny IDE programmieren. Beide IDEs habe ich bereits in einigen Beiträgen auf diesem Blog vorgestellt und verwendet.
In meinem Fall verwende ich einen Microsoft Windows 10 PC und dort wird der Mikrocontroller sofort eingerichtet, wenn dieser per USB angeschlossen wird.
Programmieren in MicroPython mit der Thonny IDE
Auf dem mir vorliegenden Mikrocontroller ist eine Firmware vorinstalliert mit welcher man diesen in MicroPython programmieren kann. Zum Programmieren nutze ich wie erwähnt die Thonny IDE welche kostenfrei unter thonny.org heruntergeladen werden kann.
Wenn die IDE gestartet ist, dann muss man unten rechts bei “Python 3.7.9” den korrekten Interpreter & den COM Port wählen.
Ist dieses geschehen, so kann man ein erstes kleines “Hello World!” Programm schreiben (siehe Video).
import time while True: print("Hello World!") time.sleep(0.250)
Interne LED mit MicroPython zum Blinken bringen
Wie man eine LED in MicroPython am ESP32 programmiert, habe ich bereits im Beitrag Programmieren mit MicroPython #2: steuern von Leuchtdioden (LED) ausführlich erläutert.
Ich habe in dem Code lediglich den Pin auf 15 für die interne LED umstellen müssen, dann lief das Programm auch sogleich.
from machine import Pin import time led = Pin(15, Pin.OUT) while(1): led.on() print("AN") time.sleep(0.5) led.off() print("AUS") time.sleep(0.5)
Wemos Shields / Module im Test
Der Mikrocontroller ist laut Hersteller voll kompatibel mit den bereits erhältlichen Wemos Shields.
Mit weiteren verlauf möchte ich dir nun zeigen wie du einige dieser Shields mit MicroPython programmierst.
1fach NeoPixel Wemos Shield
Das 1fach NeoPixel Wemos Shield habe ich bereits im Beitrag Wemos D1 mini Shield: RGB LED vorgestellt und ein kleines Programm in der Arduino IDE gezeigt. Hier möchte ich dir jetzt ein kleines Programm zeigen, welches die RGB LED in rot, grün und blau aufleuchten lässt.
import neopixel import time from machine import Pin rgbLeds = neopixel.NeoPixel(Pin(33, Pin.OUT), 1, bpp=4) while True: rgbLeds[0] = (64, 0, 0, 8) rgbLeds.write() time.sleep(0.250) rgbLeds[0] = (0, 64, 0, 8) rgbLeds.write() time.sleep(0.250) rgbLeds[0] = (0, 0, 64, 8) rgbLeds.write() time.sleep(0.250)
1 Button Shield von Wemos
Das 1 Button Shield von Wemos verfügt über einen 12 mm x 12 mm Taster welcher über den Pin 18 am Mikrocontroller angesteuert werden kann.
from machine import Pin from time import sleep # Taster am GPIO18 angeschlossen button = Pin(18, Pin.IN) #Endlosschleife while True: # Wenn der Taster gedrückt ist dann... if not button.value(): # Ausgabe der Zeichenkette auf # der seriellen Schnittstelle print("Taster gedrückt!") sleep(0.1)
In dem Video erkennt man gut, dass der Taster prellt, d.h. dass bei einem einmaligen drücken 2 Signale ausgegeben werden.
Um dieses Prellen des Tasters zu verhindern, muss man lediglich beim Drücken des Tasters eine kleine Pause von 0,05 ms einlegen.
#Endlosschleife while True: # Wenn der Taster gedrückt ist dann... if not button.value(): # Ausgabe der Zeichenkette auf # der seriellen Schnittstelle print("Taster gedrückt!") # eine kleine Pause um den Taster zu entprellen sleep(0.05) sleep(0.1)
Fazit & Ausblick
Der kleine Mikrocontroller hat durch seine Vielzahl an verfügbaren Pins einen deutlichen Vorteil gegenüber vom Wemos D1 Mini. Aus diesem Grund möchte ich ein paar bestehende Projekte mit dem Wemos D1 Mini auf den Lolin S2 mini umstellen und schauen ob sich diese noch etwas erweitern lassen würden.
Jedoch werde ich mir erst einmal die Arduino IoT Cloud anschauen und diesen Mikrocontroller mit mit dem Service verbinden.
Hallo,
wegen der genannten Vorteile habe ich mir auch einige der Boards angeschafft.
Inbetriebnahme wie beschrieben ohne Probleme.
Nach einigen Uploads von neuen Programmen brach der Flashvorgang ab und der USB Port des Boards war anschliessend nicht mehr ansprechbar.
– PC und USB funktionieren mit anderen Boards
– Reset und Boot Schalter auf dem Board sind in Ordnung.
– VUSB und 3,3V Pin haben Versorgungsspannung
Hat jemand ähnliche Erfahrung gemacht?
Hi,
was “sagt” denn der Geräte-Manager? Ist der Mikrocontroller dort aufgeführt?
Gruß,
Stefan
Hallo Stefan,
kannst Du mir bitte sagen wie ich den vLolin S2 mini V1 mit externer Sannung versorgen kann?
Ich habe an den Pin 3V3 die +3,3 Volt und an GND die Masse .
Der S2 mini geht aber nicht online. Stecke ich USB-C an geht der S2 online.
Arbeite mit ESPHome und hab den s2 mini damit schon geflasht, das funktionirt alles, nur bei externer Spannungsversorgung über die Pin`s nicht.