Inhoudsopgave:
- Stap 1: Montage
- Stap 2: Montage – Tafel
- Stap 3: TFT_eSPI-bibliotheek
- Stap 4: ESP32_Check_Internet_Connection.ino
- Stap 5: Download de bestanden
Video: Wat als uw link crasht?: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
In deze video maken we een link drop-sensor met een ESP32 en een SIM800. Dit betekent dat we met dit project de verbinding met internet kunnen verifiëren en in het geval van een verbindingsstoring een telefoonnummer kunnen bellen om te melden dat het netwerk in de problemen zit.
Dit is een van de vele manieren waarop u dit soort monitoring kunt uitvoeren. Hoewel het eenvoudig is, kunt u er verschillende apparaten mee testen die binnen uw CPD kunnen bestaan. Zijn controlekracht wordt veel groter bij gebruik van de ESP32. Hoewel ik in dit voorbeeld wifi gebruik, kun je desgewenst vast internet gebruiken.
Stap 1: Montage
Stap 2: Montage – Tafel
Stap 3: TFT_eSPI-bibliotheek
Ga in de Arduino IDE naar Sketch-> Include
Bibliotheek-> Bibliotheken beheren …
Installeer TFT_eSPI
Ga naar de bibliotheekmap en verander de regels van het User_Setup.h-bestand om het te laten zoals weergegeven in de afbeelding.
Stap 4: ESP32_Check_Internet_Connection.ino
Omvat en definieer
#define TINY_GSM_MODEM_SIM800#include
#erbij betrekken
#erbij betrekken
#erbij betrekken
//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 om te overwegen esper 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 o módulo gsm HardwareSerial SerialGSM(1); TinyGsm-modemGSM (SerialGSM); //Tempo met internettoegang tot uint32_t lastTimeConnected = 0; //Tempo em que fez a última ligação. Colocamos como -MAX_CALL_TIME_INTERVAL voor 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();
Opstelling
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 (nousamos) nãode da tarefa NULL, //Caso queria manter uma referência para a tarefa que vai ser criada (no caso não precisamos) 0); //Número do core que será executada a tarefa (usamos of 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 (geen 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)}
InstellingenDisplay
void setupDisplay(){ display.init(); // Beginnen om display.setRotation (1) weer te geven; // Rotaciona display.fillScreen (TFT_BLUE); //Limpa of display com a cor azul display.setTextColor (TFT_WHITE, TFT_BLUE); //Coloca of texto como branco com fundo azul display.setTextWrap (false, false);//Desativa een quebra de linha display.setTextSize(1); //Muda of tamanho do texto display.setCursor (0, 0, 2); //Posição x, y e fonte do texto}
GSM instellen
void setupGSM(){ showDisplay("Setup GSM"); //O Módulo GSM está nos GPIOs 4 en 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); vertraging (1000); // Herstart módulo if (!modemGSM.restart()) { ESP.restart(); opbrengst; } // Espera pela rede celular if (!modemGSM.waitForNetwork()) { display.setCursor(0, 0); showDisplay("GSM-netwerkfout"); vertraging (3000); ESP.herstart(); opbrengst; } }
checkWiFiVerbinding
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 tikt. Para executar em millis dividimos pela constant portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay(taakDelay); } }
verbindenWiFi
void connectWiFi () {// Manda conectar oa roteador com o nome en senha WiFi.begin (SSID, PASWOORD); Serial.println("Verbinden"); // Espera no while até conectar while(WiFi.status() != WL_CONNECTED) { Serial.print("."); vertraging (500); } //Zorg voor een goede verbinding met Serial.println(); Serial.println("Verbonden"); }
check internet
void checkInternet(void* p){ //Delay de 5 segundos da tarefa. É feita em tikt. Para executar em millis dividimos pela constant portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while(true) {//Se tem internet if(hasInternet()) { //Atualize o tempo em que aconteceu aútlima conexão lastTimeConnected = millis(); } //Aplica o vertraging vTaskDelay (taskDelay); } }
heeft internet
bool hasInternet(){ WiFiClient-client; //Endreço IP do Google 172.217.3.110 IPAddress adr = IPAddress(172, 217, 3, 110); //Tempo limite para conexão client.setTimeout(5); //Tenta conectar bool connected = client.connect(adr, 80); //Fecha een conexão client.stop(); //Retorna true se está conectado of false se está desconectado return aangesloten; }
Lus
void loop () {// Bekijk de laatste stap in het tempo van de definitie if (isDisconnectedForTooLong ()) { // Mostra no display que está desconectado showDisplay ("Disconnected"); //Se faz tempo que não liga para o telefonische definitie if(hasNotCalledPhoneInAWhile()) { //Liga para o telefonische definitie callPhone(); } } else { //Mostra no display que está conectado showDisplay("Verbonden"); } //Espera 1 segundo para a proxima 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 een última ligacão para o phone for maior que o definido return millis() - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
belTelefoon
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"); //Atualize o tempo em que foi feita a última ligação lastTimeCalledPhone = millis(); } else { //Se entrou aqui é porque não conseguiu fazer a ligação Serial.println("callphone failed"); } //Termina een ligação modemGSM.callHangup(); }
tonenWeergeven
void showDisplay (String-bericht) {//Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println(bericht + " "); }
Stap 5: Download de bestanden
INO
Aanbevolen:
Arduino als ISP -- Hex-bestand branden in AVR -- Zekering in AVR -- Arduino als programmeur: 10 stappen
Arduino als ISP || Hex-bestand branden in AVR || Zekering in AVR || Arduino als programmeur:…………………….. ABONNEER aub op mijn YouTube-kanaal voor meer video's…….. Dit artikel gaat helemaal over arduino als isp. Als u een hex-bestand wilt uploaden of als u uw zekering in AVR wilt plaatsen, hoeft u geen programmeur te kopen, u kunt dit doen
Wat is een CPU, wat doet het en hoe los je het op: 5 stappen
Wat is een CPU, wat doet het en hoe los je het op: elke dag zie je hier de termen "CPU" of "Verwerker" wordt rondgegooid, maar weet je echt wat het betekent? Ik zal bespreken wat een CPU is en wat het doet, dan zal ik veelvoorkomende CPU-problemen bespreken en hoe ik ze eventueel kan oplossen
Wat te doen als de oplader de 18650 Li-ion-batterij niet ziet - Ajarnpa
Wat te doen als de oplader 18650 Li-ion-batterij niet ziet: Wat te doen als de batterij niet oplaadt, de oplader ziet de batterij om 2 redenen niet: lage spanning erop of geactiveerde thermische beveiliging
Wat te doen als iTunes uw iPod niet herkent: 7 stappen
Wat te doen als iTunes uw iPod niet herkent: Dus u heeft uw nieuwe iPod ontvangen en u bent zo enthousiast om hem te gebruiken. Je steekt de USB-kabel in de computer en het andere uiteinde in je iPod. Nu loop je tegen een probleem aan. Om de een of andere reden detecteert iTunes uw iPod niet. Je zou denken dat dit een pr
Wat te doen als lastiggevallen op Instructables - Ajarnpa
Wat te doen als lastiggevallen op Instructables: Instructables is een familie van doe-het-zelvers met leden over de hele wereld. Let op de nadruk op het gezin. Soms (gelukkig niet vaak) sluipen een paar rotte appels binnen en verstoren ons gezin. Omgaan met dit soort situaties is het onderwerp van deze Instructab