Neopixel im SmartHome - AZ-Delivery

Hallo zusammen,

passend zu unserem Projekt auf Amazon möchten wir Ihnen heute eine Lösung vorstellen, mit deren Hilfe sich ohne großen Programmieraufwand Neopixel steuern und in bestehende Systeme integrieren lassen. Bei unserer Recherche sind wir dabei auf McLighting gestoßen. 

Wir benutzen im heutigen Bespiel unseren D1mini mit einem Button-Modul.

Bevor wir mit unserem Projekt beginnen möchte ich darauf hinweisen, dass WS2812 alias Neopixel nicht nur mit 5V betrieben werden, sondern auch auch mit 5V Logik kommunizieren, man benötigt also eigentlich bei Verwendung mit einem 3.3V Controller einen Logiklevelconverter.

Toblum stellt nicht nur die Software zur Verfügung, sondern liefert auch gleich die Files einer kleinen Platine mit, welche nach Adafruits vorgaben designed wurde.
Darauf findet der ESP, ein Logiclevelkonverter, ein ElKo und die empfohlenen Widerstände platz.

Sollten Sie noch nie mit NeoPixel gearbeitet haben, ist es dringend empfohlen die von Adafruit zur Verfügung gestellte NeoPixel Überguide zu lesen um Ihre Pixel nicht zu beschädigen und optimal betreiben zu können.

Für einen problemlosen Betrieb brauchen Sie also neben dem D1, einen Levelkonverter, einen 1000µF Elko und einen 300Ohm Widerstand. Den ElKo für die Stromversorgung und den Widerstand auf der Datenleitung.

Wir haben auf die schnelle eine Lochrasterplatine für den dauerhaften Betrieb gelötet:

Da wir heute aber nur die Software testen wollen verzichten wir auf die notwendige Schaltung. Wir schließen die LEDs direkt an den D1 mini an, die Verkabelung also:

 D1 mini WS2812 Netzteil 5V
VCC VCC 5V+
GND GND 5V-
D1 Data

 

Sie können also die Pins des D1 mit Jumperkabel direkt mit dem Stecker der Pixel verbinden. 

Übrigens lässt sich das Projekt viel komfortabler mit PlatformIO umsetzten, da die Libarys automatisch installiert werden.

Eine detailierte Anleitung finden Sie auf der GitHub-Seite hier.

Wir haben die Anleitung für die ArduinoIDE Schritt für Schritt für Sie überprüft und konnten diese 1:1 übernehmen, die notwendigen Arbeitsschritte kurz zusammengefasst mit den notwendigen Links:

Libarys installieren (für vollen Funktionsumfang)

  • WiFi-Manager
  • WebSockets
  • Adafruit NeoPixel
  • ArduinoJson
  • AMQQT
  • ESPAsyncTCP
  • MQTT
  • WS2812FX
  • NeoPixelBus
  • NeoAnimationFX

  • Code downloaden und ins Arduino Projektverzeichnis verschieben, z.B "C:\Users\Markus Neumann\Documents\Arduino". Anschließend "McLighting.ino" öffnen. Es sollten Sich weitere Tabs öffnen wenn Sie die kompletten Daten aus dem Download in den Projektordner kopiert haben.
     
  • Die "definitions.h" in Ihrem Projektordner auf Ihr Setup anpassen: Nummer der Pixel und der benutzte Pin sind wichtig, der Rest funktioniert in der Standartkonfiguration, wie Sie in der Datei erkennen können ist sogar ein Button auf Pin 4 vorgesehen um die Effekte durchzuschalten.

  • Code kompilieren und auf Controller hochladen

  • Der D1 eröffnet anschließend einen HotSpot mit dem Sie sich mit einem beliebigen Gerät verbinden können. Die Seite zur Konfiguration sollte automatisch aufgerufen werden, sollte das nicht der Fall sein können Sie den Controller unter 192.168.4.1 erreichen.

  • Klicken Sie auf WiFi (No Scan) und tragen Sie die Zugangsdaten in entsprechenden Zeilen ein, Sie haben hier auch die Möglichkeit Ihren MQTT-Broker mit anzugeben. Nach einem Abschließenden Neustart sollte sich der D1 mit Ihrem Netz verbinden und eine Adresse über DHCP beziehen. Sie finden diese in Ihrem Router.

  • Jetzt noch das Webinterface installieren: Öffnen Sie hierzu in Ihrem Browser die URL http://IP_ADRESSE_DES_D1/upload.
    Haben Sie den gesamten Download in Ihr Arduino-Projektverzeichniss geladen finden Sie die nötige Datei unter "C:\Users\MarkusNeumann\Documents\Arduino\McLighting\clients\web"
    Wählen Sie die Datei "index.htm" und klicken Sie auf "Upload".

  • Nach einem Reset steht die Bedienoberfläche über die IP-Adresse des Controllers zur Verfügung.

Sollten Sie Probleme mit der Umsetzung dieses Projekts haben können Sie gerne einen Kommentar hinterlassen, wir werden dann bei Interesse eine detailliertere Beschreibung veröffentlichen. Da die Pixel im Quellcode angepasst werden müssen können wir leider kein Image zur Verfügung stellen.

Bis zum nächsten Beitrag :)

Esp-8266Projekte für anfängerSmart home

2 Kommentare

Birger T

Birger T

@Klaus-Peter
Deine Anfrage ist ja schon Ewigkeiten her.. Siehe im Github die Datei “request_handlers.h”:
struct
{
uint16_t stripSize = NUMLEDS;
uint8_t RGBOrder = NEO_GRB;
#if defined(USE_WS2812FX_DMA) or defined(USE_WS2812FX_UART1) or defined(USE_WS2812FX_UART2)
#ifdef USE_WS2812FX_DMA
uint8_t pin = 3;
#endif
#ifdef USE_WS2812FX_UART1
uint8_t pin = 2;
#endif
#ifdef USE_WS2812FX_UART2
uint8_t pin = 1;
#endif
#else
uint8_t pin = LED_PIN;
#endif
} WS2812FXStripSettings;
Augenscheinlich ist hier die Zeile uint8_t RGBOrder = NEO_GRB;
anzupassen; z.B. in uint8_t RGBOrder = NEO_BRG;
Siehe auch https://adafruit.github.io/Adafruit_NeoPixel/html/_adafruit___neo_pixel_8h.html

Klaus-Peter

Klaus-Peter

Leider sind bei mir Blau und grün vertauscht.
Laut McLighting-wiki soll die Zeile
WS2812FX-Streifen = WS2812FX (NUMLEDS, PIN, NEO_BRG + NEO_KHZ800);
angepasst werden.
Im McLighting.ino ist die Zeile aber auskommentiert.
Was kann nun probieren?

Kommentar hinterlassen

Alle Kommentare werden von einem Moderator vor der Veröffentlichung überprüft

Empfohlene Blogbeiträge

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery