#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
// Konfigurasi LED Matrix
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 4 // Total jumlah blok dot matrix
#define CS_PIN 21
#define CLK_PIN 18
#define DATA_PIN 23
// Konfigurasi WiFi
const char* ssid = "Wokwi-GUEST"; // Nama WiFi
const char* password = ""; // Password WiFi (kosong untuk Wokwi)
// URL JSON
const char* serverName = "https://idntimes.id/iot/data.txt";
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
void setup() {
Serial.begin(115200);
delay(1000);
// Menghubungkan ke WiFi
Serial.println();
Serial.print("Connecting to ");
Serial.print(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi Connected");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
// Inisialisasi LED Matrix
ledMatrix.begin();
ledMatrix.setIntensity(0); // Set brightness (0-15)
ledMatrix.displayClear(); // Clear LED Matrix
ledMatrix.setSpeed(50); // Kecepatan animasi (nilai lebih kecil = lebih cepat)
ledMatrix.setPause(0); // Waktu jeda sebelum teks mengulang
}
void loop() {
if (WiFi.status() == WL_CONNECTED) { // Pastikan WiFi terhubung
HTTPClient http;
http.begin(serverName); // Hubungkan ke URL
int httpResponseCode = http.GET(); // Ambil data
if (httpResponseCode > 0) {
String payload = http.getString();
Serial.println("Data diterima: ");
Serial.println(payload);
// Parsing JSON
StaticJsonDocument<500> doc;
DeserializationError error = deserializeJson(doc, payload);
if (!error) {
const char* body = doc["body"]; // Ambil "title" dari JSON
Serial.print("Menampilkan title: ");
Serial.println(body);
// Tampilkan teks berjalan di LED Matrix
ledMatrix.displayScroll(body, PA_LEFT, PA_SCROLL_LEFT, 100);
while (!ledMatrix.displayAnimate()) {
// Tunggu hingga animasi selesai
}
} else {
Serial.println("Gagal parsing JSON!");
}
} else {
Serial.print("Error HTTP: ");
Serial.println(httpResponseCode);
}
http.end();
} else {
Serial.println("WiFi tidak terhubung!");
}
delay(10000); // Tunggu 10 detik sebelum mengambil data lagi
}