DOT Matrix 8x8 Wlan Display mit ESP8266

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

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


 .

Verbundene Suchwörter

Elektro ESP8266 Arduino LED Tutorial Bauanleitung DIY Programm Code Anleitung Beispiel Lernen Display MAX7219 Matrix

Kommentare

Hinweis: HTML ist nicht verfügbar!

Im Beitrag erwähnte Produkte

4 Module mit 8x8 LED Dot Matrix 32x8 Rot mit MAX7219 für Display

4 Module mit 8x8 LED Dot Matrix 32x8 Rot mit MAX7219 für Display

Mit diesem DOT Matrix Display das aus 4x 8x8 LED Matrix Modul besteht kannst du auf einfache Weise e..

12,90CHF

ESP8266 NodeMCU V3 kompatibles Development Board

ESP8266 NodeMCU V3 kompatibles Development Board

Dieser kleine Mikrocontroller ist sehr leistungsstark und verfügt dabei noch über ein WLAN Funkmodul..

9,50CHF

ESP8266 NodeMCU V3 Base Board ProtoShield mit Spannungsregler

ESP8266 NodeMCU V3 Base Board ProtoShield mit Spannungsregler

Dieses Base Board ist ähnlich wie ein ProtoShield aufgebaut und eignet sich zum Experimentieren mit ..

7,50CHF

Jumperkabel Dupont Set 20cm 60 Stk.

Jumperkabel Dupont Set 20cm 60 Stk.

Dupont Kabel dienen zum schnellen verbinden von Bauteilen. In der Umgangssprache werden Dupont Kabel..

7,90CHF