Bonjour, oui en effet, l'esp doit être connecté à son wifi.
Comme l'a proposé al1fch, je me suis donc dirigé pour cette partie vers wifimanager.
Et en effet, l'afficheur doit être connecté en permanence chez elle, et aller vérifier périodiquement la présence d'un nouveau texte.
Pour commencer, j'ai branché mon panneau led, et ai essayé d'afficher un texte en fonction de l'état de connexion, mais en mode de configuration, le texte associé ne s'affiche pas, et en mode connecté, le texte qui s'affiche réellement est constitué de caractères incompréhensibles.
Voici le code :
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
#define HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW
#define MAX_DEVICES 8
#define CLK_PIN D7
#define DATA_PIN D5
#define CS_PIN D6
MD_Parola P = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
#define SPEED_TIME 25
#define PAUSE_TIME 1000
int NUM_ZONES=2;
static int state = 0;
void setup(void)
{
Serial.begin(115200);
WiFiManager wifiManager;
P.begin(NUM_ZONES);
P.setInvert(false);
//wifiManager.resetSettings();
wifiManager.setAPCallback(configModeCallback);
wifiManager.autoConnect("Afficheur");
String stat = "Connected "+ WiFi.localIP().toString();
Serial.println(stat);
int stat_len = stat.length();
char stat_char[50];
stat.toCharArray(stat_char,stat_len);
P.setZone(0, 0, 7);
P.displayZoneText(0, stat_char, PA_CENTER, SPEED_TIME, PAUSE_TIME, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
if ( P.displayAnimate()) // animates and returns true when an animation is completed
{
P.displayReset(0);
}
}
void changezone(void){
if(state==0){
P.setZone(0, 0, 3);
P.displayZoneText(0, "Texte 1", PA_CENTER, SPEED_TIME, PAUSE_TIME, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
P.displayReset(0);
P.setZone(1, 4, 7);
P.displayZoneText(1, "Texte 2", PA_CENTER, SPEED_TIME, PAUSE_TIME, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
P.displayReset(1);
state=1;
}
else if(state==1){
P.setZone(0, 0, 7);
state=2;
P.displayZoneText(0, "Texte 3", PA_CENTER, SPEED_TIME, PAUSE_TIME, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
P.displayReset(0);
}
else if(state==2){
P.setZone(1, 0, 6);
P.setZone(0, 7, 7);
state=0;
P.displayZoneText(0, "Texte 4", PA_CENTER, 70, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
P.displayReset(0);
P.displayZoneText(1, "Texte 5", PA_CENTER, SPEED_TIME, PAUSE_TIME, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
P.displayReset(1);
}
P.synchZoneStart();
loop();
}
void loop(void)
{
// animates and returns true when an animation is completed. These are synchronised, so assume they are all done.
if (P.displayAnimate()) // animates and returns true when an animation is completed
{
for (uint8_t i=0; i<NUM_ZONES; i++)
{
boolean bAllDone = true;
for (uint8_t i=0; i<NUM_ZONES && bAllDone; i++)
{
bAllDone = bAllDone && P.getZoneStatus(i);
}
if (bAllDone) changezone();
}
}
}
void configModeCallback (WiFiManager *myWiFiManager) {
P.setZone(0, 0, 7);
P.displayZoneText(0, "Config mode : 192.168.4.1", PA_CENTER, SPEED_TIME, PAUSE_TIME, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
P.displayReset(0);
if ( P.getZoneStatus(0)) // animates and returns true when an animation is completed
{
loop();
}
}
Pouvez-vous m'aider avec cela dans un premier temps s'il vous plait ? Ensuite, je pensais créer un site web du genre todo list avec une bdd php pour envoyer des requêtes de lecture dessus avec l'esp. Qu'en pensez-vous ?