Meine Arduino / ESP8266 -Projekte

Der Arduino Pi (kurz Raspi) ist ein beliebte Mikrocontroller, der eine große Fan-Gemeinde hat. Die Möglichkeit, um seine Analog und Digital-Pins Elektronikbauteile direkt anzusteuern und sein günstiger Preis machen ihn aber zu einer tollen Plattform, um Elektronikspielereien zu verwirklichen. Außerdem verbraucht er nur unwesentlich Strom.

Mein erster Arduino Uno lag eigentlich nur als "Beiwerk" in einem Starter-Set, dass ich mir für meinen Raspberry Pi gekauft habe. In gewissen Dingen hat er aber Vorteile gegenüber dem Raspi wie Preis, Leistungsaufnahme, keine Bootzeit, analoge Eingänge von Haus aus und ich gewinne die Plattform zunehmend lieb.

Bereits realisierte Projekte (älteste und Grundlagen zuerst)

Ersteinrichtung des Arduino

Was ist nötig, um ein Programm vom PC auf den Arduino zu schieben und es darauf laufen zu lassen? Was ist bei der Einrichtung von Sketch, der Arduino-Software auf dem PC, zu beachten?
Fotowiderstand mit Arduino auslesen und über serielle Schnittstelle darstellen

Solange der Arduino am PC hängt, kann er über die serielle Schnittstelle Meldungen an den PC senden, die dieser über die Werkzeuge serieller Monitor und serieller Plotter darstellen kann.

Dies möchte ich anhand eines auszulesenden Fotowiderstands am analogen Eingang des Arduino demonstrieren.
8x8-LED-Matrix-Schaltung vom Breadboard auf ein Prototype Shield migrieren

Ein Prototype Shield ist eine Platine, auf die etwas gelötet werden kann, und die auf den Arduino Uno gesteckt werden kann. So kann man Schaltungen schnell austauschen. Die Schaltung, die als Beispiel diente, kommt vom Raspberry Pi und steuerte dort eine 8x8-LED-Matrix an.
8x8-LED-Matrix als Geek Uhr verwenden (Zeit über Serial)

Mit der 8x8-LED-Matrix aus dem letzten Projekt muss sich doch auch was Nützlicheres anstellen lassen als nur eine sich ständig wiederholende Laufschrift. Da kam mir gleich eine geeky Uhr in den Sinn.
8x8-LED-Matrix mit Beschleunigungssensor / Kompass und 5 Funktionen

Die 8x8-LED-Matrix-Platine wurde durch einen LSM303C-Sensor erweitert und bietet jetzt folgende Funktionen: 1. Nerd-Uhr, 2. Tilt-Demo, 3. Kompass, 4. Gaußmeter, 5. Thermometer.
Alkomat: LCD auf Prototype Shield und Ausgabe von Gassensor-Messdaten

Umweltmessdaten sind immer ein spannendes Thema. Der Diesel-Skandal ist in aller Munde und man spricht über Fahrverbote. Fälle von Selbstbetrug, indem Umweltmessstationen von der Straße in den nahegelegenden Park verlegt wurden, sind bekannt geworden. Doch wie ist die Luft vor meiner Haustür? Und wie meine Atemalkoholkonzentration? Ich habe einen Alkomaten gebastelt.
ESP8266 - Ersteinrichtung

Genau wie der ATMEGA des Arduino ist der ESP8266 ein Mikrocontroller. Dieser übernimmt die Hauptaufgabe, ein WLAN mit Allem, was dazu gehört, zu realisieren und war ursprünglich als Erweiterungsmodul vorgesehen, dem Arduino & Co. WiFi beizubringen. Doch der ESP8266 ist auch ein vollwertiger Mikrocontroller, der mit der Arduino-IDE programmiert werden kann.
Betrug mit Fake LM35 Temperatursensoren

Nachdem mein erster LM35-Temperatursensor schon eine Fälschung (oder doch nur defekt?) war, habe ich woanders 2 nachbestellt. Aber auch die scheinen nur eine dreiste Fälschung zu sein.

Also Augen auf beim Sensorkauf!
Multi Function Shield Einrichtung und Nutzung

Bei meiner Suche nach Sensoren für den Arduino bin ich auch über dieses Multi Function Board gestolpert, das aus Fernost über eBay nur zwei bis drei Euro kostet.

Bei dem Preis habe ich mir natürlich gedacht: "Dafür kannst du nichts falsch machen!" und es bestellt.
Ultraschall-Abstandswarner mit dem Multi Function Shield

Heute soll mit dem MFS und einem HC-SR04 Ultraschall-Modul ein piepender Abstandswarner realisiert werden, wie er auch in Autos als Einparkhilfe verbaut ist. Außerdem lässt sich die Schaltung z. B. dazu verwenden, Räume zu vermessen.
Stepper-Motor-Ansteuerung mit dem Arduino und einem Multi Function Shield

Ein Schrittmotor ist ein Motor, der sich exakt in kleinen Schritten positionieren lässt. Dazu muss er besonders angesprochen werden. Dafür sorgen eine Treiberplatine und die AccelStepper-Library.
Servo-Motor-Ansteuerung mit dem Arduino und einem Multi Function Shield

Servo-Motoren sind besonders im Modellbau beliebt. Mit den leichten, kleinen und günstigen Motoren läßt sich im Bereich von 0 bis 180 Grad positionieren.
Erkennung von Flammen und Feuer mit dem Multi Function Shield und einem IR-Flame-Sensor-Modul

Ein Flammensensor wertet die auf ihn treffende IR / Wärmestrahlung aus und erkennt darin das typische Muster für Flammen, um daraufhin Alarm zu schlagen.
Das Multi Function Shield mit einem Drehgeber erweitern

Zahlenwerte in Einzelschritten über die Drucktasten des Multi Function Shields einzustellen kann ganz schön nervig sein. Viel schöner geht so etwas mit einem Drehgeber, auch Encoder genannt.
Multi Function Shield mit Drehgeber zum Einstellen der Farbe einer RGB LED nutzen

Diesmal wollen wir die Farbe einer RGB-LED frei einstellen. Dazu nutzen wir Tasten und Drehgeber, um den Rot-, Grün- und Blauanteil schnell und genau einzustellen.
Multi Function Shield mit Modul KY-039 als Pulsmesser verwenden

Ein Bauteil meiner 37-in-one-Sensoren-Bulk-Bestellung (natürlich ohne Beschreibung, nicht mal auf chinesisch) mit 2 klaren LEDs (eine rund, eine rechteckig) gab mir Rätsel auf, bis ich es auf einem Foto wiedererkennen konnte: Das Modul KY-039 dient zur Pulsmessung.
Prototype Shield mit Mini-Breadboard zum schnellen Aufbau von Schaltungen

Das Prototype Shield zum Aufstecken auf einen Arduino Uno mit aufgeklebten Breaboard wird mit 3 zusätzlichen Tastern ausgestattet und soll in Zukunft den schnellen Aufbau einfacher Schaltungen ermöglichen.
Universelle programmierbare Infrarot Fernbedienung

Erster Einsatz für das Mini-Breadboard-Shield: mit einem Infrator Empfangschip werden IR-Signale empfangen und in 4-Byte lange Zahlen dekodiert, die mit einer IR-LED wieder ausgesendet werden. Mit der Schaltung kann man sich z. B. die Codes seiner Fernbedienungen notieren, falls diese einmal kaputt gehen sollte.
Multi Function Shield mit Lichtschranken-Modul KY-010

Heute wird ein weiteres Bauteil meiner 37-in-one-Sensoren-Bulk-Bestellung behandelt. Es ist das Lichtschrankenmodul KY-010.
Stückzähler mit dem KY-032 Modul zur Hinderniserkennung

Ein weiteres Bauteil meines Sensor-Zoos gibt sich die Ehre: das Hindernis-Erkennungsmodul KY-032. Ich habe damit einen Stückzähler realisiert, der daran vorbeigeführte Objektezählt.
Optischer Zähler und Linienerkennung mit dem KY-033 Modul und dem Multi Function Shield

Dem KY-032 von Funktionsprinzip sehr ähnlich, aber doch irgendwie anders ist das Tracking Sensor Modul KY-033, das ich heute vorstelle. Zu Demonstrationszwecken wird ein optischer Zähler und ein "Der heiße Draht"-Spiel programmiert.
Auslesen des DHT11-Sensors und Anzeige von Temperatur und Luftfeuchtigkeit auf dem Multi Function Shield

Der DHT11 auf dem Modul KY-015 ist ein Kombi-Sensor, der Thermometer und Hygrometer in einem Gehäuse vereint.Diese kleine Projekt zeigt Termperatur und Luftfeuchtigkeit auf dem Multi Function Shield an.
Drehzahlmesser mit Reed Kontakt und Multi Function Shield

Ein Reed-Kontakt schließt sich, sobald man einen Magneten nahe bringt. Ich zeige diesmal, wie man damit und einem Arduino einen Drehzahlmesser baut und messen die UPM von Fidget Spinner und Festplatte.
Experimente mit Hall Sensor und Multi Function Shield

Ein weiterer Magnet-Sensor neben dem letztes mal behandelten Reedkontakt ist der Hall-Sensor. Wir führem mit ihm ein paar Experimente durch und ich gehe auf die Unterschied zwischen Reed und Hall ein.
Erschütterungssensor am Multi Function Shield via Interrupt abfragen

Ein Erschütterungs- oder auch Kopf- oder Schocksensor registriert durch einen eher einfachen mechanischen Aufbau eine Erschütterung und gibt diese als kurze Singnal weiter. Damit keiner der doch sehr kurzen Signale verpasst wird, wird ein Interrupt auf dem Arduino zur Überwachung benutzt.
Temperaturmessung mit Thermistoren am Multi Function Shield

Thermistoren (auch Heißleiter) sind Bauelemente, die ihren Widerstand je nach Temperatur verändern. Über eine Spannungsteilungsschlaltung mit einem zweiten festen Widerstand können wir sie am Arduino auslesen, um daraus eine Termperatur zu errechnen, die wir auf dem MFS anzeigen.
Temperaturmessung mit Dallas 18B20 am Multi Function Shield

Diesmal geht es um den Dallas 18B20, einem Thermometer-Chip, der wie ein kleiner Transistor aussieht, und bei dem man die Temperatur direkt über ein sogenanntes 1-Wire-Protokoll auslesen kann. Der Chip ist recht genau, aber nicht ganz so einfach auszulesen. Dafür benutzen wir 2 Bibliotheken.
Neigungsschalter am Multi Function Shield

Neigungsschalter (auch Tilt Sensoren) schalten durch, sobald sie eine gewisse Neigung erreichen. Dies wird durch eine Kugel aus Metall (Stahl oder Quecksilber) erreicht, die der Schwerkraft folgt. Es sind einfach aufgebaute Bauteile mit zwei Anschlüssen.
Relais am Multi Function Shield

Mit Relais wie auf dem Modul KY-019 kann man mit dem Arduino Sekundärstromkreise mit höheren Spannungen und Stromstärken schalten. So lassen sich zum Beispiel auch Steckdosen schalten, ohne das der Ardunio durch die hohen Spannungen Schaden nehmen würde.
Sensor Taster Modul am Multi Function Shield

Touchsensoren, auch Näherungsschalter erkennen kapazitive Änderungen, die zum Beispiel entstehen, wenn man sie mit dem Finger berührt bzw. sich nur daran annähret. Das Modul KY-036 realisiert solch einen Sensortaster für den Arduino. Mit dem Multi Function Shield werten wir die Tastendrücke aus.
Klatschschalter mit Mikrofon Sound Sensor Modul am Multi Function Shield

In meiner 37-in-one-Sensoren-Bulk-Sammlung finden sich auch zwei Module mit einem Mikrofon, mit dem wir z. B. einen Klatschschalter realisieren können, der reagiert, wenn wir zweimal kurz hintereinander in die Hände klatschen. Außer dem Modul wird noch das Multi Function Shield und ein Ardunio benötigt.
MAX7219 Treiber zur Ansteuerung von 8x8 LED-Matrix und 8fach-7Segment-Display verwenden

Um eine 4fach-7Segment-Anzeige direkt anzusteuern, braucht es nach der bereits vorgestellten Art 8 Widerstände, ein 74HC595 Schieberegister und jede Menge Leitungen. Für eine 8fach 7Segment-Anzeige, die dann aus 64 einzelnen LEDs besteht, verdoppelt sich der Aufwand sogar noch. Das gleiche gilt für eine 8x8-LED-Matrix. Sehr viel einfacher geht das alles mit einem MAX7219 LED Treiber.
Joystick-Position auf 8x8 LED-Matrix anzeigen

Ein analoger Joystick funktioniert mit zwei Potis, die durch den Steuerknüppel verändert werden. So können wir anhand der analogen Messwerte die eingestellte Position des Joysticks errechnen und auf der 8x8-LED-Matrix anzeigen.
Echtzeituhr mit RTC auf 8fach-7Segment-Display anzeigen

Echtzeituhrmodulen also RealTimeClocks, oder kurz RTCs können eine einmal gesetzte Uhr weiterlaufen lassen, auch wenn keine Spannung mehr anliegt. Dazu benötigen sie eine Bufferbatterie, die viele Jahre durchhält. So geht die Zeit auch nicht verloren, wenn das Gerät ausgeschaltet ist. Mit einer RTC und dem 8fach-7Segment-Display basteln wir uns heute eine Datums/Zeitanzeige zusammen.
WS2812-Neopixel-Ring mit 24 LEDs ansteuern

Neopixel sind LED-Streifen, Ringe oder Matrizen, bei denen jede einzelne LED angesteuert und ihre eigene Farbe erhalten kann. Damit lassen sich tolle Effekte zaubern. Die Ansteuerung ist denkbar einfach und geschieht durch Durchreichung von Farbinformatioen durch die hintereinander geschalteten 5050 LEDs mit WS2812 Chip.
24-Stunden-Uhr mit Neopixel-Ring und 8fach-7Segment-Anzeige

Heute will ich eine 24-Stunden-Uhr bauen, die sowohl über einen Neopixel-Ring mit 24 LEDs die Zeit analog, aber mit 24 anstatt 12 Stunden; als auch über eine MAX7219-8fach-7Segment-LED-Anzeige das Datum und die Uhrzeit digital anzeigt.
Datenübertragung per Laser zwischen zwei Arduinos

In diem Projekt werden Daten zwischen einem Sende-Arduino mit Laser-Modul und einem Empfänger-Arduino mit Fotowiderstand per Laser durch die Luft übertragen. Dabei kommt en einfaches, selbstentwickeltes Protokoll zum Einsatz.
Radar Bewegungsmelder Modul RCWL-0516 am Multi Function Shield

Das hier vorgestellte Bewegungsmelder-Modul RCWL-0516 arbeitet mit Mikrowellen im Gigahertz-Bereich, um mit Radartechnologie Bewegungen zu erkennen. Gegenüber den herkömmlichen Infrarot-Bewegungsmeldern hat es die Vorteile, durch Wände schauen zu können und eine kleine Bauform, die kein Sichtfenster benötigt.
Annäherungs-, Gesten- und Farberkennung mit dem ADPS-9960 Sensor

Der APDS-9960 ist Annäherungssensor, Gestensensor und RGB-Farberkennungssensor in einem. Mit einem kleinen Demonstrationsprogramm zeige ich seine Fähigkeiten.
LM35 Temperatursensor auslesen

Nach einiges gefälschten oder defekten LM35 Temperatursensoren aus China habe ich nun ein Exemplar in Deutschland gekauft, dass dann auch funktioniert. Der LM35 ist ein sehr einfach auszulesender Sensor, wie ich hier beschreibe.
Optimierung der Datenübertragung per Laser zwischen zwei Arduinos

Der letzte Versuchsaufbau zur Übertragung von Daten via Laserstrahl zwischen zwei Arduinos war ja mehr eine Machbarkeitsstudie, das mit dem Ergebnis endete, dass eine Datenübertragung mit Signallängen mit 10 bzw. 20 ms pro Bit sicher möglich ist. Dabei kam ein ungeschirmter Fotowiderstand zum Einsatz.

Heute wollen wir versuchen, noch ein wenig mehr Geschwindigkeit herauszukitzeln, werden dafür u. a. auch Fotodioden einsetzen und in den Mikrosekundenbereich vorstoßen.
Weitere Optimierung der Datenübertragung per Laser zwischen zwei Arduinos

Heute machen wir uns an die weitere Optimierung des Projektes Datenübertragung per Laser, indem wir die Software umstellen. Wir versuchen, das Äußerste herauszukitzeln, was mit dem Arduino möglich ist.
Tastatur-Scrollrad mit Digispark USB-Entwicklungsboard realisieren

Als Benutzer der Microsoft Sculpt Ergonomic Desktop Tastatur habe ich mich schon immer gefragt, womit man das Loch zwischen den Tastaturhälften sinnvoll füllen könnte. In diesem Projekt bestücke ich es mit einem Joystick, der als Scrollrad und Mausersatz dienen kann.
STM32 F103 - Ersteinrichtung

Die sogenannte Blue Pill ist wie der Arduino ein Mikrocontroller-Board, hat aber keinen ATmega von Atmel, sondern einen STM32F103 von STM an Board. Dieser hat 32 Bit und 72 MHz statt nur 8 Bit und 20 MHz wie der Arduino Uno und ist damit schneller. Auch bietet er mehr interruptfähige Pins, einen besseren ADC, genauere Berechnungen und Messungen und einiges mehr. Grund genug, ihn sich mal näher anzuschauen.
Nochmals weitere Optimierung der Datenübertragung per Laser zwischen Arduino und STM32

Die Blue Pill mit STM32-Mikrocontroller ist ja leistungsfähiger als der ATmega 328P auf dem Arduino. Nun soll sich der STM32 performancemäßig beweisen. Schafft er es, die Laser-Datenübertragung schneller zu dekodieren als der Arduino?
Portable Spielekonsole mit Joystick-Shield und Nokia 5110 Display

Mir kam schon öfters die Idee mit dem Arduino eine kleine, portable Spielekonsole zu realisieren und dieses Shield sah wie gemacht dafür aus. Noch ein Gehäuse aus dem 3D-Drucker und das Ganze sieht schon sehr ansehnlich aus. Fehlt nur noch ein selbstentwickeltes Spiel.
Das Spiel Snake auf dem Arduino Gamuino

Als erstes Spiel für den Gamuino wählte ich - natürlich - ein Nokia Spiel (wenn schon ein Nokia Display verbaut ist). Und zwar den Kult-Klassiker Snake.
Tricks und Fallstricke bei der Speicherplatzoptimierung auf dem Arduino

Der Arduino ist ist mit 32 kB Programmspeicher und nur 2 kB Variablenspeicher nicht sonderlich verschwenderisch ausgestattet. Da wird der Speicher schnell knapp. Doch es gibt Tricks, um Speicherplatz zu sparen und das Programm doch noch zum Laufen zu bekommen.
ST-Link statt Serial-Adapter zum Flashen des STM32 benutzen

Mit einem ST-Link spart man sich das Umstecken des Boot-Jumpers beim Flashen eines STM32. Und er hat noch weitere Vorteile.
Den STM32dunio-Bootloader flashen, um den STM32 direkt per USB zu programmieren

Wäre es nicht schön, wenn man den STM32 so einfach programmieren könnte wie einen Arduino Nano? Ohne Serial Adapter und ST Link? Und wenn man ein Serial Interface über den USB-Anschluss hätte bei beim Arduino? Das ist möglich - mit dem STM32dunio-Bootloader.
Interne Echtzeituhr des STM32 nutzen

Ein Vorteil neben mehr Speicher und Geschwindigkeit des STM32F103 gegenüber dem Arduino Uno ist die bereits integrierte Echtzeituhr (Real Time Clock, RTC). Zusatzplatinen wie das RTC DS1307-Modul kann man sich damit sparen. Es ist bereits alles an Bord, was man braucht.
Batteriegepufferten Backup-Registern des STM32 nutzen

In meinem Artikel zur internen Echtzeituhr des STM32 hatte ich ja schon erwähnt, dass es Backup-Register gibt, dessen Inhalt durch die Pufferbatterie an VBat erhalten bleibt, auch wenn der STM32 den Strom verliert.
Interne Echtzeituhr des STM32 kalibrieren

Der STM32 bestitzt Register für die interne Echtzeituhr zur Kalibrierung. Setzt man diese auf die richtigen Werte, so liefert die RTC immer die richtige Uhrzeit.
Countdown-Wecker mit dem STM32 für Schlafzeit-Experimente

Ich bin kein Mensch, der immer zur selben Zeit ins Bett geht und bei dem ein Wecker, der immer zur selben Zeit in der Früh klingelt Sinn machen würden. Ich hätte lieber einen Wecker, der mich nach einer bestimmten abgelaufenen Zeit weckt. Gibt es nur leider nicht zu kaufen - also muss ich es wohl selbst erfinden.
Grove Shield zum schnellen Aufbau von Schaltungen und LCD mit RGB Backlight

Grove nennt seeed sein Konzept, mit dem Breadboard und Jumper-Kabel überflüssig werden sollen. Alles wird nur noch mit 4-poligen Kabeln verbunden. Diese steckt man einfach auf der einen Seite in die Buchse des Arduino und mit der anderen in die Buchse des Grove Sensors.