Benachrichtigungen
Alle löschen

64x8 Dot Matrix W-LAN Display

pinki99
(@pinki99)
Registrierter Nutzer

Projektbeschreibung:

Kurz und knapp geht es bei dem Projekt darum eine Laufschrift zu bauen, die sich ihre anzuzeigenden Daten via W-LAN aus dem Internet holt. Gedacht ist das ganze für die Anzeige zuhause oder als kleines Geschenk für Freunde des WakLab (Geschäfte zb. die einen Freifunkrouter aufstellen -> bietet uns Werbeplatz). Der Wemos holt derzeit jede Minute eine html mit dem Datenstring vom Server. Auf dem Server wird die Datei minütlich neu erzeugt.

Foto 18.02.21, 18 34 19
Foto 17.02.21, 01 29 50

 

Probleme / Things to do:

- momentan übernimmt er die neuen Daten sofort, ohne den aktuellen Durchlauf vorher zu beenden -> führt zu zerhackten Worten

- es ist angedacht Parameter wie Helligkeit, Geschwindigkeit etc über die abzurufenden Datei steuerbar zu machen -> Umstieg auf json?

- Fehlermeldung wenn Datei nicht abgerufen werden kann

- Reconnect wenn W-LAN Verbindung verloren

- Sonderzeichen und Umlaute anzeigbar machen

- Frontend auf Server (damit Betreiber eigene Infozeilen hinzufügen können (Angebote, Urlaube, ect))

 

Ressourcen:

 

Schaltplan folgt

Druckdateien für stehendes/hängendes Gehäuse

 

Derzeitiger Code:

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <WiFiManager.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>


// Define the number of devices we have in the chain and the hardware interface
// NOTE: These pin numbers will probably not work with your hardware and may
// need to be adapted
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 8 #define CLK_PIN 14
#define DATA_PIN 13
#define CS_PIN 2

// Hardware SPI connection
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// Arbitrary output pins
// MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

uint8_t degC[] = {5, 6 , 15 , 9 , 15 , 6 };
uint8_t line[] = {4, 0, 8, 8, 8 };
uint8_t plus[] = {5, 8, 8, 62, 8, 8};
uint8_t block[] = {3, 255, 255, 255};
uint8_t heart[] = {5, 28, 62, 124, 62, 28};

WiFiManager wm;

char anzeige[300];
const int PAUSE = 60000;
long lastActionTime = -1;



void setup(void)
{

P.begin();
P.setSpeed (40);
P.setPause (40);
P.setIntensity(1);
P.addChar('$', degC);
P.addChar('-', line);
P.addChar('_', block);
P.addChar('?', heart);

wm.autoConnect("ESP8266_AP", "esp8266_pwd");

HTTPClient http; //Declare an object of class HTTPClient

http.begin("http://wemosdisplay.ddns.net:81/waklab.html"); //Specify request destination
int httpCode = http.GET(); //Send the request
String request = http.getString();
request.toCharArray(anzeige,request.length());
http.end(); //Close connection
}


void loop(void)
{

long currentMillis = millis();

if(lastActionTime<(currentMillis-PAUSE)){
lastActionTime = currentMillis;
HTTPClient http; //Declare an object of class HTTPClient

http.begin("http://wemosdisplay.ddns.net:81/waklab.html"); //Specify request destination
int httpCode = http.GET(); //Send the request
String request = http.getString();
request.toCharArray(anzeige,request.length());
http.end(); //Close connection

}

if (P.displayAnimate())
P.displayText(anzeige, PA_LEFT, P.getSpeed(), P.getPause(), PA_SCROLL_LEFT);

}


Dieses Thema wurde geändert 10 Monaten zuvor 4 mal von pinki99
Zitat
Themenstarter Veröffentlicht : 18. Februar 2021 18:49
Micha gefällt das