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

Hallo. Ich habe das ganze soeben Probiert. nur sehe ich das das im Video gezeigte Script nicht übereinstimmt mit dem was da abgebildet ist. ich kann nirgens das Passwort zum Verbinden definieren.
Danke

Hallo Danke für dein Tutorial, funktioniert soweit recht gut, habe aber das Problem das ich in den 4 Feldern immer das selbe sehe, also 4x das selbe und nicht eine Laufschrift.
Was habe ich da falsch gemacht?
Mfg
Johann

Was für eine Matrix verwendest du den? Hast du eventuell hier was Falsch eingetragen:
int numberOfHorizontalDisplays = 4; //Anzahl der Module Horizontal
int numberOfVerticalDisplays = 1; //Anzahl der Module Vertikal
Gruess Philippe

Hallo,
Falls es jemand benötigt.
So können die Daten auch direkt z.B. per Terminal (mit cURL) übergeben werden. Somit muss nicht die Website aufgerufen werden
curl --data "lauftext=abc&helligkeit=1&wartenMs=300&submit=Senden" http://192.168.2.112/
Hier als Bsp --> Text = abc WartenMs = 300 und Helligkeit = 1
Mit freundlichen Grüßen

Hallo,
gibt es die Möglichkeit das ganze auch per direkt Link anzugeben. Also grobes Bsp: http://192.168.4.1/TestText-50-15
Danke
Mit freundlichen Grüßen
Marcus

Wen es interessiert, leerzeichen, Ausrufezeichen und Fragezeichen angezeigt zu bekommen, hier quick & dirty https://pastebin.com/hLRkjSGj
Danke für den Hinweis :-)

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.