Innehållsförteckning:
- Steg 1: Montering
- Steg 2: Montering - Tabell
- Steg 3: TFT_eSPI -bibliotek
- Steg 4: ESP32_Check_Internet_Connection.ino
- Steg 5: Ladda ner filerna
Video: Vad händer om din länk kraschar ?: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
I den här videon kommer vi att skapa en länkfallssensor med en ESP32 och ett SIM800. Det betyder att vi med detta projekt kan verifiera anslutningen till internet, och i händelse av en anslutningsfel, ring ett telefonnummer för att meddela att nätverket har problem.
Detta är ett av många sätt du kan utföra denna typ av övervakning. Även om det är enkelt kan du testa olika enheter som kan finnas inom din CPD. Dess kontrollkraft blir mycket större när du använder ESP32. Även om jag använder WiFi i det här exemplet kan du använda fast internet om du föredrar det.
Steg 1: Montering
Steg 2: Montering - Tabell
Steg 3: TFT_eSPI -bibliotek
I Arduino IDE, gå till Sketch-> Inkludera
Bibliotek-> Hantera bibliotek …
Installera TFT_eSPI
Gå till biblioteksmappen och ändra raderna i filen User_Setup.h för att lämna den som visas på bilden.
Steg 4: ESP32_Check_Internet_Connection.ino
Inkluderar och definierar
#define TINY_GSM_MODEM_SIM800#include
#omfatta
#omfatta
#omfatta
// Mude para o nome e senha da sua rede WiFi que quer testar #define SSID "SSID" #define PASSWORD "12345678" //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar para considerar como desconectado #define MAX_DISCONNECTED_TIME 10000 // 10 seg // Tempo que deve esperar para cada ligação #define MAX_CALL_TIME_INTERVAL 1800000 // 30 min // Usar serial 1 para ododo gsm HardwareSerial SerialGSM (1); TinyGsm -modemGSM (SerialGSM); // Tempo em que conectou à internet pela última vez uint32_t lastTimeConnected = 0; // Tempo em que fez a última ligação. Colocamos como -MAX_CALL_TIME_INTERVAL para ligar imediatamente // da primeira vez que cair uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h na pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Uppstart
void setup () {Serial.begin (115200); setupDisplay (); // Inicializa e configura o display setupGSM (); // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será executada "checkWiFiConnection", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamade) 2, // Prior da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Numero do core que será executada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Função que será executada "checkInternet", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamos) 2, // Prioridade da tarefa NULL, // Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); // Numero do core que será executada a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
SetupDisplay
void setupDisplay () {display.init (); // Inicializa o display display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limpa o display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca o texto como branco com fundo azul 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}
SetupGSM
void setupGSM () {showDisplay ("Setup GSM"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); fördröjning (1000); // Starta om eller om (! ModemGSM.restart ()) {ESP.restart (); lämna tillbaka; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM -nätverksfel"); fördröjning (3000); ESP.start (); lämna tillbaka; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Delay de 1s da tarefa. É feita em fästingar. Para executar em millis dividimos pela constante portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
connectWiFi
void connectWiFi () {// Manda conectar ao roteador com on nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Ansluter"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); fördröjning (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Ansluten"); }
checkInternet
void checkInternet (void* p) {// Delay de 5 segundos da tarefa. É feita em fästingar. Para executar em millis dividimos pela constante 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); }}
hasInternet
bool hasInternet () {WiFiClient -klient; // Endreço IP för Google 172.217.3.110 IPAddress adr = IPAddress (172, 217, 3, 110); // Tempo limite för conexão client.setTimeout (5); // Tenta conectar bool ansluten = client.connect (adr, 80); // Fecha a conexão client.stop (); // Retorna true se est est conectado ou false se está desconectado return connected; }
Slinga
void loop () {// Se está desconectado por mais tempo que definimos if (isDisconnectedForTooLong ()) {// Mostra no display que está desconectado showDisplay ("Disconnected"); // Se faz tempo que não liga para o telefone definido if (hasNotCalledPhoneInAWhile ()) {// Liga para o telefone definido callPhone (); }} annat {// Mostra no display que está conectado showDisplay ("Connected"); } // Espera 1 segundo para a próxima iteração do loop delay (1000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Retorna true se o tempo desde a última conexão for maior que o definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {// Retorna true se o tempo desde a última ligacão para o telefon for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
ringa telefon
void callPhone () {// Faz a ligação para 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 (); } annat {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("callphone failed"); } // Termina och ligação modemGSM.callHangup (); }
showDisplay
void showDisplay (String message) {// Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (meddelande + ""); }
Steg 5: Ladda ner filerna
INO
Rekommenderad:
Vad är en CPU, vad gör den och hur felsöker du den: 5 steg
Vad är en CPU, vad gör den och hur felsöker du den: Varje dag läser du här termen " CPU " eller " Processor " kastas runt, men vet du verkligen vad det betyder? Jag kommer att gå igenom vad en CPU är och vad den gör, sedan kommer jag att gå igenom vanliga CPU -problem och hur jag eventuellt kan fixa dem
Steam -länk på din Raspberry Pi: 4 steg
Steam Link på din Raspberry Pi: Steam Link är en lösning för att utöka ditt Steam -spelbibliotek till alla rum i huset via ditt hemnätverk. Du kan göra din Raspberry Pi till en Steam -länk
Hur man kraschar en dator med en batchfil!: 10 steg
Hur man kraschar alla datorer med en batchfil!: Krasch enkelt på en dator eller bärbar dator
Hur du kraschar din dator: 5 steg
Hur du kraschar din dator: Mycket enkelt
Se i hemlighet vad som händer oavsett var du är: 4 steg
Titta i hemlighet på vad som händer, oavsett var du är: Den här instruktören visar dig hur du använder iphone/ipod touch -appen "iCam" och din dator för att se vad som händer med din webbkamera var du än är. Detta är min första instruerbara, så snälla, ingen hård kritik. Jag har inget emot någon feedback du