Taula de continguts:
- Pas 1: Muntatge
- Pas 2: Muntatge - Taula
- Pas 3: biblioteca TFT_eSPI
- Pas 4: ESP32_Check_Internet_Connection.ino
- Pas 5: baixeu els fitxers
Vídeo: Què passa si el vostre enllaç falla ?: 5 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
En aquest vídeo, crearem un sensor de caiguda d’enllaços amb un ESP32 i un SIM800. Això significa que amb aquest projecte podem verificar la connexió a Internet i, en cas de fallada de la connexió, trucar a un número de telèfon per notificar que la xarxa té problemes.
Aquesta és una de moltes maneres de realitzar aquest tipus de control. Tot i que és senzill, us permet provar diversos dispositius que poden existir dins del vostre CPD. El seu poder de comprovació es fa molt més gran quan s’utilitza l’ESP32. Tot i que faig servir WiFi en aquest exemple, si ho preferiu, podeu utilitzar internet per cable.
Pas 1: Muntatge
Pas 2: Muntatge - Taula
Pas 3: biblioteca TFT_eSPI
A l’IDE Arduino, aneu a Sketch-> Inclou
Biblioteca-> Gestiona les biblioteques …
Instal·leu TFT_eSPI
Aneu a la carpeta de la biblioteca i canvieu les línies del fitxer User_Setup.h per deixar-lo tal com es mostra a la imatge.
Pas 4: ESP32_Check_Internet_Connection.ino
Inclou i defineix
#define TINY_GSM_MODEM_SIM800 # include
#incloure
#incloure
#incloure
// Mude para o nome e senha da su rede WiFi que quer testar #define SSID "SSID" #define PASSWORD "12345678" // + 55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Temps que s'ha d'esperar per considerar com desconectat #define MAX_DISCONNECTED_TIME 10000 // 10 seg // Tempo que deu esperar per cada lliga #define MAX_CALL_TIME_INTERVAL 1800000 // 30 min // Usar serial 1 para o módulo gsm HardwareSerial SerialGSM (1); TinyGsm modemGSM (SerialGSM); // Tempo em que connectou à internet pela última vez uint32_t lastTimeConnected = 0; // Tempo em que fez a última lliga. Col·loquem com -MAX_CALL_TIME_INTERVAL per lligar immediatament // da primera vegada que cair uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h na pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Configuració
configuració nul·la () {Serial.begin (115200); setupDisplay (); // Inicialitzar i configurar o mostrar setupGSM (); // Inicialització o mòdul GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Funció que serà executada "checkWiFiConnection", // Nom de la tarefa 10000, // Tamanho da pilha NULL, // Parámetro da tarefa (no caso no usamos) 2, // Prioritat da tarefa NULL, // Cas queria mantenir uma referência para a tarefa que vai ser criada (no caso no precisamos) 0); // Número do core que serà executada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Funcionament que serà executat "checkInternet", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parámetro da tarefa (no caso no usamos) 2, // Prioridade da tarefa NULL, // Cas queria mantenir uma referência para a tarefa que vai ser criada (no caso no precisamos) 0); // Número do core que serà executat a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
Configuració de visualització
void setupDisplay () {display.init (); // Inicialitzar o mostrar display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limpa o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o text com a blanc com a fons blau display.setTextWrap (false, false); // Desativa a quebra de linha display.setTextSize (1); // Muda o tamanho do texto display.setCursor (0, 0, 2); // Posição x, y e fonte do texto}
Configuració de GSM
void setupGSM () {showDisplay ("Configuració GSM"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); retard (1000); // Reinicieu o módulo if (! ModemGSM.restart ()) {ESP.restart (); tornar; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("Error de xarxa GSM"); retard (3000); ESP.restart (); tornar; }}
checkWiFiConnection
void checkWiFiConnection (void * p) {while (true) {// No està connectat al roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda connectar connectWiFi (); } // Delay de 1s da tarefa. He fetita em tick. Per executar-los mil·límetres dividits constantment portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
connectar-se a Wi-Fi
void connectWiFi () {// Manda connectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Connexió"); // Espera no while até connectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); retard (500); } // Se chegou aqui està connectat Serial.println (); Serial.println ("Connectat"); }
comproveu Internet
void checkInternet (void * p) {// Delay de 5 segundos da tarefa. He fetita em tick. Per executar-los mil·límetres dividits constant portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Se tem internet if (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplica o delay vTaskDelay (taskDelay); }}
té Internet
bool hasInternet () {client Client WiFi; // Endreço IP do Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Temps límit per a connexió client.setTimeout (5); // Tenta connectar bool connectat = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se està connectat o false se está desconectado return connected; }
Bucle
void loop () {// Es troba desconnectat per més temps que definits if (isDisconnectedForTooLong ()) {// Mostra no display that està desconectat showDisplay ("Disconnected"); // Se faz tempo que no liga para o teléfono definido if (hasNotCalledPhoneInAWhile ()) {// Lliga per a un telèfon definit callPhone (); }} else {// Mostra no display que està connectat showDisplay ("Connected"); } // Espera 1 segon per a la propera iteração do loop delay (1000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Retorna true se o tempo desde una última conexión for maior que o definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna true se o tempo desde un último ligacão para o telefone for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
trucada telefònica
void callPhone () {// Faz a lligação for o telefone definido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Se entrou aqui é porque conseguiu realizar a ligação Serial.println ("callphone ok"); // Atualiza o tempo em que foi feita a última ligação lastTimeCalledPhone = millis (); } else {// Se entrou aqui é porque no conseguiu fazer a ligação Serial.println ("callphone failure"); } // Termina un lligaç modemGSM.callHangup (); }
showDisplay
void showDisplay (String message) {// Mostra un missatge a primera línia de visualització, esborrant els esdeveniments de caràcters addicionals display.setCursor (0, 0); display.println (missatge + ""); }
Pas 5: baixeu els fitxers
INO
Recomanat:
Per tant, carregueu el carregador d’arrencada STM32duino a la vostra "píndola blava" I ara què passa ?: 7 passos
Per tant, carregueu el carregador d’arrencada STM32duino a la vostra "píndola blava" … I ara ?: Si ja heu llegit les instruccions que expliquen com es carrega el carregador d’arrencada STM32duino o qualsevol altra documentació similar, proveu de carregar l’exemple de codi i …. pot ser que no sigui res El problema és molts, si no tots, exemples de " Genèric " STM32 serà
Enllaç de Steam al vostre Raspberry Pi: 4 passos
Steam Link al vostre Raspberry Pi: Steam Link és una solució per estendre la biblioteca de jocs de Steam a qualsevol habitació de la casa a través de la vostra xarxa domèstica. Podeu convertir el vostre Raspberry Pi en un enllaç de Steam
Feu que el vostre ordinador parli el que escriviu mitjançant el bloc de notes: 3 passos
Feu que el vostre ordinador parli el que escriviu mitjançant el bloc de notes: aquí teniu un codi interessant creat per fer que el vostre ordinador parli el que escriviu. Utilitzarem el bloc de notes per crear-lo. Comencem
Com evitar que el vostre gos mastegi el vostre control remot: 4 passos
Com evitar que el vostre gos mastegi el vostre control remot: cansat que la vostra mascota familiar us robi l’única font d’R & R per trobar-lo arrugat a trossos al jardí del jardí o sota les mantes del llit? cansat de perdre aquest maleït control remot al sofà? cansat de discutir amb la teva parella sobre qui ho va deixar
Mireu en secret el que passa sense importar allà on sou: 4 passos
Mireu en secret el que passa a qualsevol lloc on sigueu: aquest instructiu us mostrarà com utilitzar l'aplicació iCam iphone / ipod touch i l'ordinador per veure què passa amb la vostra càmera web allà on sigueu. Aquesta és la meva primera instrucció, així que si us plau, cap crítica dura. No m'importa cap comentari que h