HUB08 → Wemos D1 (ESP8266)
--------------------------
R1 → D2 (GPIO4)
CLK → D5 (GPIO14)
LAT → D6 (GPIO12)
OE → D7 (GPIO13)
A → D1 (GPIO5)
B → D3 (GPIO0)
C → D4 (GPIO2)
GND → GND
⚠️ Gebruik geen GPIO15 (D8) → boot-problemen
⚠️ RX/TX liever niet gebruiken
Gebruik PxMatrix (werkt perfect met HUB08)
PxMatrix
Adafruit GFX
#include <PxMatrix.h>
#define P_LAT D6
#define P_OE D7
#define P_A D1
#define P_B D3
#define P_C D4
PxMATRIX display(304, 76, P_LAT, P_OE, P_A, P_B, P_C);
hw_timer_t * timer = NULL;
void IRAM_ATTR display_updater() {
display.display(70);
}
void setup() {
display.begin(8); // HUB08 = meestal 1/8 scan
display.setBrightness(120);
display.setTextColor(display.color565(255, 0, 0));
display.setCursor(0, 30);
display.print("HALLO HUB08!");
timer = timerBegin(0, 80, true);
timerAttachInterrupt(timer, &display_updater, true);
timerAlarmWrite(timer, 2000, true);
timerAlarmEnable(timer);
}
void loop() {
}
display.begin(8); → correct voor HUB08
Helderheid niet te hoog → stabieler
Timer verplicht bij ESP8266
HUB08
Single color RED
2 × 8 modules
Resolutie totaal: 304 × 76 pixels
Meerdere tekstregels
Tekst via WiFi aanpassen
Dit is perfect haalbaar met een Wemos D1 (ESP8266).
Bij 76 pixels hoogte kun je goed werken met:
3 regels met groot lettertype
of
4–5 regels met kleiner font
Voorbeeld (standaard 8×16 font):
Regelhoogte ≈ 16 px
76 / 16 ≈ 4 regels
We gaan dus uit van 4 regels tekst.
(zoals eerder geadviseerd)
HUB08 → Wemos D1
------------------
R1 → D2
CLK → D5
LAT → D6
OE → D7
A → D1
B → D3
C → D4
GND → GND
Voeding:
5V externe voeding
GND voeding ↔ GND Wemos
We maken:
Wemos als WiFi Access Point
Webpagina op 192.168.4.1
Invoer van 4 tekstregels
Tekst verschijnt direct op display
📱 Werkt vanaf telefoon, tablet of PC.
👉 Kopieer dit in Arduino IDE
PxMatrix
Adafruit GFX
ESP8266WiFi
ESP8266WebServer
#include <PxMatrix.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#define P_LAT D6
#define P_OE D7
#define P_A D1
#define P_B D3
#define P_C D4
PxMATRIX display(304, 76, P_LAT, P_OE, P_A, P_B, P_C);
ESP8266WebServer server(80);
String line1 = "REGEL 1";
String line2 = "REGEL 2";
String line3 = "REGEL 3";
String line4 = "REGEL 4";
hw_timer_t * timer = NULL;
void IRAM_ATTR display_updater() {
display.display(70);
}
void handleRoot() {
String html =
"<html><body>"
"<h2>LED Tekst Instellen</h2>"
"<form action='/set'>"
"Regel 1:<br><input name='l1'><br>"
"Regel 2:<br><input name='l2'><br>"
"Regel 3:<br><input name='l3'><br>"
"Regel 4:<br><input name='l4'><br><br>"
"<input type='submit' value='Update'>"
"</form>"
"</body></html>";
server.send(200, "text/html", html);
}
void handleSet() {
if (server.hasArg("l1")) line1 = server.arg("l1");
if (server.hasArg("l2")) line2 = server.arg("l2");
if (server.hasArg("l3")) line3 = server.arg("l3");
if (server.hasArg("l4")) line4 = server.arg("l4");
server.sendHeader("Location", "/");
server.send(303);
}
void drawText() {
display.clearDisplay();
display.setTextColor(display.color565(255, 0, 0));
display.setCursor(0, 15);
display.print(line1);
display.setCursor(0, 31);
display.print(line2);
display.setCursor(0, 47);
display.print(line3);
display.setCursor(0, 63);
display.print(line4);
}
void setup() {
display.begin(8); // HUB08 = 1/8 scan
display.setBrightness(120);
timer = timerBegin(0, 80, true);
timerAttachInterrupt(timer, &display_updater, true);
timerAlarmWrite(timer, 2000, true);
timerAlarmEnable(timer);
WiFi.softAP("LED-TEXT", "12345678");
server.on("/", handleRoot);
server.on("/set", handleSet);
server.begin();
}
void loop() {
server.handleClient();
drawText();
}
Flash de code
Verbind WiFi met
SSID: LED-TEXT
Wachtwoord: 12345678
Ga naar:
👉 http://192.168.4.1
Vul de regels in → direct zichtbaar
✔ Scrollende tekst per regel
✔ Tijd / datum (NTP)
✔ Seriële input
✔ MQTT / Home Assistant
✔ Automatisch wisselende pagina’s
ledmatrix/line1
ledmatrix/line2
ledmatrix/line3
ledmatrix/line4
Payload:
Welkom
Temperatuur: 21C
Alarm actief
Bel 112
👉 Elk bericht update direct één regel.
Installeer via Arduino Library Manager:
PxMatrix
Adafruit GFX
PubSubClient
ESP8266WiFi
// ===== WIFI =====
const char* ssid = "JOUW_WIFI";
const char* password = "JOUW_WACHTWOORD";
// ===== MQTT =====
const char* mqtt_server = "192.168.1.10"; // IP van Mosquitto
#include <PxMatrix.h>
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
// HUB08 pinnen
#define P_LAT D6
#define P_OE D7
#define P_A D1
#define P_B D3
#define P_C D4
PxMATRIX display(304, 76, P_LAT, P_OE, P_A, P_B, P_C);
WiFiClient espClient;
PubSubClient client(espClient);
String line1 = "";
String line2 = "";
String line3 = "";
String line4 = "";
hw_timer_t * timer = NULL;
void IRAM_ATTR display_updater() {
display.display(70);
}
void drawText() {
display.clearDisplay();
display.setTextColor(display.color565(255, 0, 0));
display.setCursor(0, 15); display.print(line1);
display.setCursor(0, 31); display.print(line2);
display.setCursor(0, 47); display.print(line3);
display.setCursor(0, 63); display.print(line4);
}
void callback(char* topic, byte* payload, unsigned int length) {
String msg;
for (uint8_t i = 0; i < length; i++) msg += (char)payload[i];
if (String(topic) == "ledmatrix/line1") line1 = msg;
if (String(topic) == "ledmatrix/line2") line2 = msg;
if (String(topic) == "ledmatrix/line3") line3 = msg;
if (String(topic) == "ledmatrix/line4") line4 = msg;
drawText();
}
void reconnect() {
while (!client.connected()) {
if (client.connect("LEDMatrix")) {
client.subscribe("ledmatrix/line1");
client.subscribe("ledmatrix/line2");
client.subscribe("ledmatrix/line3");
client.subscribe("ledmatrix/line4");
} else {
delay(3000);
}
}
}
void setup() {
display.begin(8);
display.setBrightness(120);
timer = timerBegin(0, 80, true);
timerAttachInterrupt(timer, &display_updater, true);
timerAlarmWrite(timer, 2000, true);
timerAlarmEnable(timer);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) delay(500);
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void loop() {
if (!client.connected()) reconnect();
client.loop();
}
mosquitto_pub -t ledmatrix/line1 -m "Welkom thuis"
mosquitto_pub -t ledmatrix/line2 -m "Temp: 21.5C"
mosquitto_pub -t ledmatrix/line3 -m "Deur gesloten"
mosquitto_pub -t ledmatrix/line4 -m "Geen alarm"
service: mqtt.publish
data:
topic: ledmatrix/line1
payload: "Wasmachine klaar"
✔ Brightness niet hoger dan ±130
✔ Goede 5V voeding
✔ Korte IDC-kabel
✔ Gebruik retain als je tekst wilt bewaren:
mosquitto_pub -r -t ledmatrix/line1 -m "Status OK"
Mogelijke volgende upgrades:
🔁 scrollende tekst per regel
⏰ klok via NTP + MQTT override
📡 MQTT JSON (alle regels in één bericht)
⚠️ alarm-flash / invert
🔤 grote titel + kleine regels
Zeg maar wat je wilt — dit bord is nu professioneel inzetbaar 💪