Programm Beispiel zum ansteuern von einem Dot Matrix Modul mit MAX7219 Treiber. Das Programm habe ich für den ESP8266 programmiert da dieser bereits das Wlan Integriert hat. Verbinde dich mit deinem Handy mit dem ESP8266 und schicke drahtlos Text Nachrichten auf das Display.


ESP8266 in der Arduino IDE Software Installieren

Damit du dein Programm das du in der Arduino IDE Programmiert hast auf den ESP8266 laden kannst musst du zuerst das ESP8266 Board unter Arduino Installieren. Für die Installation kannst du unser Youtube Tutorial anschauen.


Schaltplan MAX7219 mit ESP8266 NodeMCU V3

Hier noch ein Schaltplan Schema wie du das Display an den ESP8266 anschliessen kannst.


Arduino Programm für ESP8266 mit Dot Matrix

/*******************************************************************************************
 *******************************************************************************************
 **                                www.bastelgarage.ch                                    **
 ** Der Onlineshop mit Videoanleitungen und kompletten Bausätzen für Anfänger und Profis! **
 *******************************************************************************************
 *******************************************************************************************
 ** Programm Beispiel zum ansteuern von einem Dot Matrix Modul mit MAX7219 Treiber.       **
 ** Das Programm habe ich für den ESP8266 programmiert da dieser bereits das Wlan         **
 ** Integriert hat. Mit diesem Projekt kann man sich mit einem Handy auf den ESP8266      **
 ** verbinden und Nachrichten über eine HTML Seite auf das DOT Matrix Display senden.     **
 ** Die Nachrichten werden anschliessend als Laufschrift auf dem Dot Matrix Display       **
 ** angezeigt.                                                                            **
 **                                                                                       **
 ** Für die Ansteuerung des DOT Matrix Displays musst du von GitHub noch zwei Libraries   **
 ** auf deinem PC Installieren. Die Libraries findest du unter folgenden Links:           **
 ** https://github.com/markruys/arduino-Max72xxPanel                                      **
 ** https://github.com/adafruit/Adafruit-GFX-Library                                      **
 **                                                                                       **
 **                                                                                       **
 ** Autor: Philippe Keller                                                                **
 ** Datum: September 2016                                                                 **
 ** Version: 1.0                                                                          **
 * *****************************************************************************************
*/

/************************( Importieren der genutzten Bibliotheken )************************/
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include "HTML_Seite.h"           //HTML Seite im gleichem  Verzeichnis wie das Programm

#include <SPI.h>                  //Einbinden von SPI für Kommunikation  mit DOT Matrix
#include <Adafruit_GFX.h>         //Zeichensätze für DOT Matrix
#include <Max72xxPanel.h>         //Ansteuerung für DOT Matrix mit MAX7219 Treiber


/****************************( Definieren der Globale Variablen )**************************/
const char *ssid = "DOT_Matrix_bastelgarage.ch"; //SSID für  Access Point ohne Passwort


/******************************( Bibliotheken initialisieren )*****************************/
ESP8266WebServer server(80);      //Webserver auf Port 80 starten. Verbindet man sich mit
                                  //einem Gerät mit dem ESP8266 ist die HTML Seite über
                                  //die IP http://192.168.4.1 erreichbar

//Anschliessen der DOT Matix
//DOT Matrix:       ESP8266 NodeMCU:
//VCC               5V (VUSB)
//GND               GND
//DIN               D7 (GPIO13)
//CS                D3 (GPIO0)
//CLK               D5 (GPIO14)

int pinCS = 0;                          //Für den PIN Select habe ich GPIO0 gewählt
int numberOfHorizontalDisplays = 4;     //Anzahl der Module Horizontal
int numberOfVerticalDisplays = 1;       //Anzahl der Module Vertikal

Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);

/****************************( Definieren der Globale Variablen )**************************/
String LaufschriftText = "bastelgarage.ch 192.168.4.1";  //Default Laufschrift

int wait = 50;                  //Zeit in ms für Scroll Geschwindigkeit wo gewartet wird
int helligkeit = 3;             //Default Helligkeit 0 bis 15
int spacer = 1;                 //leer Zeichen länge
int width = 5 + spacer;         //Schriftlänge ist 5 Pixel


/*****************************************( setup )****************************************/
void setup() {
  delay(1000);                  //1 Sekunde warten
  WiFi.softAP(ssid);            //Access Point Starten

  // Server Starten
  server.on("/", handleRoot);
  server.begin();

  matrix.setIntensity(helligkeit); //Helligkeit von Display auf Default Wert einstellen

  matrix.setRotation(0, 1);        //Erste DOT Matrix Drehen
  matrix.setRotation(1, 1);        //Zweite DOT Matrix Drehen
  matrix.setRotation(2, 1);        //Dritte DOT Matrix Drehen
  matrix.setRotation(3, 1);        //Vierte DOT Matrix Drehen
}

/************************( Funktion zum Darstellen der HTML Seite )************************/
void handleRoot() {
  server.send(200, "text/html", file1);
}

/*******************( Funktion zum Darstellen der Zeichen auf Display )********************/
// Wurde Teils aus dem Library Beisbiel übernommen
void anzeigen() {
  for ( int i = 0 ; i < width * LaufschriftText.length() + matrix.width() - 1 - spacer; i++ ) {

    matrix.fillScreen(LOW);

    int letter = i / width;
    int x = (matrix.width() - 1) - i % width;
    int y = (matrix.height() - 8) / 2; //Zentrieren des Textes Vertikal

    while ( x + width - spacer >= 0 && letter >= 0 ) {
      if ( letter < LaufschriftText.length() ) {
        matrix.drawChar(x, y, LaufschriftText[letter], HIGH, LOW, 1);
        server.handleClient();        //HTML Seite abfragen ob neue Nachricht gesendet wurde
      }
      letter--;
      x -= width;
    }

    matrix.write(); //Display beschreiben
    delay(wait);    //Warten für Scroll Geschwindigkeit
  }
}

/***********************************( Hauptprogramm )*************************************/
void loop() {
  server.handleClient();             //HTML Seite abfragen ob neue Nachricht gesendet wurde

  //Abfragen ob ein Text übermittelt wurde über das WebFormular auf der HTML Seite
  if (server.arg("lauftext").length() != 0) {
    LaufschriftText = server.arg("lauftext"); //Wurde ein Text geschickt Laufschrift aktualisieren
    matrix.setIntensity(server.arg("helligkeit").toInt()); //Helligkeit einstellen
    wait = server.arg("wartenMs").toInt();                 //Wartezeit überschreiben
  }
  anzeigen();                                              //Funktion Anzeigen aufrufen
}


HTML Seite für Web Interface 

Damit das Programm etwas übersichtlicher wird habe ich die HTML Seite vom Arduino Programm ausgelagert. Du musst dir ein HTML_Seite.h mit folgendem Code erzeugen das du in den selben Ordner wie das Arduino Programm kopierst.

#ifndef header_h
#define header_h
String file1=
"<!DOCTYPE html>\r\n"
"<html>\r\n"
"<body style=\"font-family: Verdana, sans-serif\">Gib deinen Text ein:<br>\r\n"
"<form action=\"\" method=\"post\">\r\n"
  "Text: <input type=\"text\" name=\"lauftext\"  ><br>\r\n"
    "Warten ms: <input type=\"number\" name=\"wartenMs\" value=\"50\" max=\"500\" min=\"5\"><br>\r\n"
  "Helligkeit: <input type=\"number\" name=\"helligkeit\" value=\"6\" max=\"15\" min=\"0\"><br>\r\n"
  "<input type=\"submit\" value=\"Senden\">\r\n"
"</form>\r\n"
"</body>\r\n"
"</html>\r\n";
#endif


Neopixel Ring mit WS2812 RGB LED mit Rotary Encoder ansteuern
In diesem Tutorial möchte ich dir zeigen, wie du Neopixel RGB LED’s ansteuern kannst. Wir werden auch sehen wie du diverse Parameter mit einem Drehgeb...
Mit Touch Sensor MPR121 Sound Effekte abspielen
In diesem Blog Eintrag möchte ich euch zeigen wie ihr einen Kapazitiven Sensor mit dem Touch Sensor MPR121 selber bauen könnt....
4 Bemerkungen
Tobi
Tobi
Tuesday 23. May 2017

Wen es interessiert, leerzeichen, Ausrufezeichen und Fragezeichen angezeigt zu bekommen, hier quick & dirty https://pastebin.com/hLRkjSGj

Tobi
Tobi
Tuesday 23. May 2017

Hey, danke hier für! habe schon ewig Zeit verschwendet, das Display an einem Arduino via Bluetooth zum laufen zu bekommen.. Zum Glück hab ich die Seite hier (per Zufall) gefunden. Ich habe es gerade erfolgreich ausprobiert! Ich habe aber das Problem mit Leerzeichen und Sonderzeichen. bei nem Leerzeichen bspw. wird in der Nachricht auf dem Display ein '+' angezeigt. auch bei z.b. einem Ausrufezeichen wird (schätze ich mal) html code statt dem Zeichen angezeigt. Dies möchte ich nun gerne bereinigen, doch ich weiß leider nicht wie.

Andreas
Andreas
Sunday 18. September 2016

Hallo.. war heute an der Maker Faire in Zürich.. wie würde der Code aussehen, wenn das Teil sich an ein WiFi anmelden würde? Hier ist es ja so, dass ein AP erstellt wird.

Alf
Alf
Sunday 18. September 2016

Wenn Du den ESP8266 gemäss den Video https://youtu.be/0Lho9tLyh8E installierst, hat du im Arduino IDE unter Datei->Beispiele->ESp8266WiFi->WiFiCleint beispiel Dateien. mfg Alf

Nath
Nath
Friday 16. September 2016

Hallo Phipu, Wenn das ganze über Bluetooth gesteuert werden soll, kann ich da einfach ein "Arduino Bluetooth App" (es gibt einige habe ich gesehen) installieren oder ist es komplizierter als das? Lg Nath

Philippe
Philippe
Friday 16. September 2016

Hallo Nath, Es gibt auch Bluetooth Module wie HC-05 die dann die gesendeten Daten über RS232 an das Arduino schicken. Jedoch ist es sicher Hardware wie Software mässig wesentlicher aufwändiger desgleiche zu realisieren. Deshalb habe ich den ESP8266 genommen da er bereits Hardwaremäßig über ein Wlan verfügt und man einfach ein Webserver auf dem Controller laufen lassen kann. in der nächsten Zeit kommt die neue Generation ESP8266. Der ESP32 von Espressif wird nicht nur über Wlan ansteuerbar sein sondern er wird auch Bluetooth integriert haben. Wir werden schauen das wir den ESP32 schnell in unser Sortiment aufnehmen werden.

Zeige 1 bis 1 von 4 (1 Seite(n))
Einen Kommentar hinterlassen
Anmerkung: HTML wird nicht unterstützt!