| PANEL | ESP32 |
| VCC | Vin |
| GND | GND |
| DIN | GPIO23 |
| CS | GPIO5 |
| CLK | GPIO18 |
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <AsyncElegantOTA.h>
// Uncomment according to your hardware type
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
//#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
// Defining size, and output pins
#define MAX_DEVICES 4
#define CS_PIN 5
const char* ssid = "ESLAEKO_P.BAJA";
const char* password = NULL;
IPAddress ip(192,168,100,12);
IPAddress gateway(192,168,100,1);
IPAddress subnet(255,255,255,0);
IPAddress dns(8,8,8,8);
AsyncWebServer server(80);
MD_Parola Display = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
String my_ip;
String serverPath = "http://bateriaseko.lobo99.com/frases";
String payload ="";
int pinCoin = 15; // pin de la Arduino donde conectamos la salida COIN del detector de monedas
int lectura = 0; // variable para almacenar lo que leemos del pin COIN
void setup() {
Display.begin();
Display.setIntensity(0);
Display.displayClear();
Display.displayScroll("CONECTANDO WIFI", PA_CENTER, PA_SCROLL_LEFT, 25);
Serial.begin(115200);
delay(10);
Serial.println('\n');
WiFi.begin(ssid, password);
WiFi.config(ip, gateway, subnet, dns);
Serial.print("Connecting to ");
Serial.print(ssid);
while (WiFi.status() != WL_CONNECTED) {
if (Display.displayAnimate()) {
Display.displayReset();
}
}
Serial.println('\n');
Serial.println("Connection established!");
Serial.print("IP address:\t");
Serial.println(WiFi.localIP());
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
request->send(200, "text/plain", "V1.0 Atril");
});
AsyncElegantOTA.begin(&server);
server.begin();
Serial.println("HTTP server started");
delay(1000);
my_ip = WiFi.localIP().toString();
Serial.println(my_ip);
Display.displayClear();
Display.displayScroll(my_ip.c_str(), PA_CENTER, PA_SCROLL_LEFT, 25);
Serial.println(my_ip);
for (int muestra_ip = 1; muestra_ip <= 2; muestra_ip++) {
while (true) {
if (Display.displayAnimate()) {
Display.displayReset();
break;
}
}
}
pinMode(pinCoin,INPUT); // pinCoin es una entrada de información
}
void loop() {
lectura = digitalRead(pinCoin); // leemos el pinCoin
Serial.println(lectura); // escribimos la lectura en el puerto serie
if (lectura==1) // si detecta moneda
mensaje(); // esperamos un segundo, para que no nos de muchos unos seguidos
else // si no
delay(50); // esperamos solo 50 milisegundos para que la siguiente lectura sea muy seguida
}
void mensaje(){
HTTPClient http;
// Your Domain name with URL path or IP address with path
http.begin(serverPath.c_str());
// Send HTTP GET request
int httpResponseCode = http.GET();
if (httpResponseCode>0) {
Serial.print("HTTP Response code: ");
Serial.println(httpResponseCode);
String payload = http.getString();
Serial.println(payload);
//longitud frase
Serial.println(payload.length());
int largo = payload.length();
String cadena = payload.substring(0,largo-1);
//Frase sin caracter final
Display.displayClear();
Display.displayScroll(cadena.c_str(), PA_CENTER, PA_SCROLL_LEFT, 25);
while (true) {
if (Display.displayAnimate()) {
Display.displayReset();
break;
}
}
}
else {
Serial.print("Error code: ");
Serial.println(httpResponseCode);
}
// Free resources
http.end();
}