Inhaltsverzeichnis:
- Schritt 1: Montage
- Schritt 2: Montage – Tisch
- Schritt 3: TFT_eSPI-Bibliothek
- Schritt 4: ESP32_Check_Internet_Connection.ino
- Schritt 5: Laden Sie die Dateien herunter
Video: Was passiert, wenn Ihr Link abstürzt? - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
In diesem Video erstellen wir einen Link-Drop-Sensor mit einem ESP32 und einem SIM800. Dies bedeutet, dass wir mit diesem Projekt die Verbindung zum Internet überprüfen und im Falle eines Verbindungsfehlers eine Telefonnummer anrufen können, um zu benachrichtigen, dass das Netzwerk in Schwierigkeiten ist.
Dies ist eine der vielen Möglichkeiten, wie Sie diese Art der Überwachung durchführen können. Obwohl es einfach ist, können Sie verschiedene Geräte testen, die in Ihrem CPD vorhanden sein können. Seine Prüfkraft wird bei Verwendung des ESP32 viel größer. Obwohl ich in diesem Beispiel WLAN verwende, können Sie auf Wunsch auch kabelgebundenes Internet verwenden.
Schritt 1: Montage
Schritt 2: Montage – Tisch
Schritt 3: TFT_eSPI-Bibliothek
Gehen Sie in der Arduino IDE zu Sketch-> Include
Bibliothek-> Bibliotheken verwalten …
TFT_eSPI installieren
Gehen Sie zum Bibliotheksordner und ändern Sie die Zeilen der Datei User_Setup.h, um sie wie in der Abbildung gezeigt zu belassen.
Schritt 4: ESP32_Check_Internet_Connection.ino
Beinhaltet und definiert
#define TINY_GSM_MODEM_SIM800#include
#enthalten
#enthalten
#enthalten
//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 for cada ligação #define MAX_CALL_TIME_INTERVAL 1800000 //30 min //Usar serial 1 para oder módulo 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 für sofortige //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();
Aufstellen
Void setup () {Serial.begin (115200); setupDisplay(); //Inicialize 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 usamos). 2, // 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 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); //Número do core que será executada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) }
SetupAnzeige
Void setupDisplay () {display.init (); //Inicialize o display display.setRotation(1); // Rotaciona display.fillScreen (TFT_BLUE); //Limpa oder Display mit Cor Azul display.setTextColor (TFT_WHITE, TFT_BLUE); //Coloca oder texto como branco com fundo azul display.setTextWrap(false, false);//Desativa quebra de linha display.setTextSize(1); //Muda oder tamanho tun texto display.setCursor (0, 0, 2); //Posição x, y e fonte do texto}
EinrichtungGSM
Void setupGSM () { showDisplay ("Setup GSM"); //O Modul GSM-Está nos GPIOs 4 und 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); Verzögerung (1000); // Neustart oder Modul neu starten if (!modemGSM.restart()) { ESP.restart(); Rückkehr; } //Espera pela rede celular if (!modemGSM.waitForNetwork()) {display.setCursor (0, 0); showDisplay("GSM-Netzwerkfehler"); Verzögerung (3000); ESP.restart(); Rückkehr; } }
checkWiFiConnection
Void checkWiFiConnection (void * p) { Während (true) {//Se não conectado ao rotador if (WiFi.status () != WL_CONNECTED) {//Manda conectar connectWiFi (); } // Verzögerung de 1s da tarefa. É feita em tickt. Para executar em millis dividimos pela konstante portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (TaskDelay); } }
connectWiFi
Void connectWiFi () {//Manda conectar ao rotador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println("Verbinden"); // Espera keine Weile até conectar while (WiFi.status () ! = WL_CONNECTED) { Serial.print ("."); Verzögerung (500); } //Se chegou aqui está conectado Serial.println (); Serial.println("Verbunden"); }
checkInternet
void checkInternet(void* p){//Verzögerung von 5 segundos da tarefa. É feita em tickt. Para executar em millis dividimos pela Konstante portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while(true) { //Internet einstellen if(hasInternet()) { //Geschwindigkeit im Tempo mit einer Verknüpfung mit lastTimeConnected = millis(); } //Aplica o Verzögerung vTaskDelay (taskDelay); } }
hatInternet
bool hasInternet () { WiFiClient-Client; //Endreço IP von Google 172.217.3.110 IPAddress adr = IPAddress(172, 217, 3, 110); // Tempolimit für Verbindung client.setTimeout(5); //Tenta conectar bool verbunden = client.connect(adr, 80); //Fecha a conexão client.stop(); //Retorna true se está conectado ou false se está desconectado return connected; }
Schleife
Void loop () { //Es ist eine Auflösung für ein bestimmtes Tempo erforderlich if (isDisconnectedForTooLong ()) { // Keine Anzeige, die aus showDisplay ("Disconnected") besteht; //Dieses schnelle Tempo ist ohne Liga für die Telefondefinition if (hasNotCalledPhoneInAWhile ()) { // Liga für die Telefondefinition für callPhone (); } } else {//Mostra keine Anzeige que está conectado showDisplay("Connected"); } //Espera 1 segundo para a próxima iteração do loop delay (1000); }
istDisconnectedForTooLong
bool isDisconnectedForTooLong(){ //Wiedergeben von true das Tempo eines letzten Schlüssels oder definitiv zurück millis() - lastTimeConnected > MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile () {//Retorna true wie das Tempo eines letzten Ligacão für das Haupttelefon oder definiert zurück millis() - lastTimeCalledPhone > MAX_CALL_TIME_INTERVAL; }
AnrufTelefon
Void callPhone () {//Faz eine Ligação für eine Telefondefinition if (modemGSM.callNumber (USER_PHONE_NUMBER)) {//Seien Sie eine Verbindung mit einer Verbindung Serial.println ("callphone ok"); // Geschwindigkeit oder Tempo muss mit einer letzten Verknüpfung lastTimeCalledPhone = millis(); } Else {//Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("callphone failed"); } //Beende eine Verbindung modemGSM.callHangup(); }
anzeigenAnzeige
void showDisplay (String message) {//Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extras display.setCursor (0, 0); display.println (Nachricht + " "); }
Schritt 5: Laden Sie die Dateien herunter
INO
Empfohlen:
Erhalten Sie eine Benachrichtigungs-E-Mail, wenn ein Kanal auf ThingSpeak eine Weile nicht aktualisiert wurde – wikiHow
Erhalten Sie eine Benachrichtigungs-E-Mail, wenn ein Kanal auf ThingSpeak eine Weile nicht aktualisiert wurde: HintergrundgeschichteIch habe sechs automatisierte Gewächshäuser, die über Dublin, Irland, verteilt sind. Durch die Verwendung einer maßgeschneiderten Handy-App kann ich die automatisierten Funktionen in jedem Gewächshaus aus der Ferne überwachen und mit ihnen interagieren. Ich kann den Win manuell öffnen / schließen
HAIKU, wenn Mode und Technologie verschmelzen. TfCD-Projekt. TU Delft.: 4 Schritte
HAIKU, wenn Mode und Technologie verschmelzen. TfCD-Projekt. TU Delft.: Haiku ist ein von Mucahit Aydin entwickeltes Konzept für einen MSc-Studiengang der TU Delft. Das Hauptprinzip dieses Kimonos ist es, das Gefühl zu verstärken, von jemandem umarmt zu werden. Dazu zeigt der Kimono nach Berührung ein Muster. Wie? Durch implementieren
1,50 $ Arduino TV-Ärger !! (Schaltet Fernseher ein, wenn Sie sie ausschalten möchten): 5 Schritte
1,50 $ Arduino TV-Ärger !! (Schaltet Fernseher ein, wenn Sie sie ausschalten möchten): Hey Arduino-Fans! Hier ist eine Möglichkeit, ein Gerät zu erstellen, das Fernseher einschaltet, wenn Sie sie ausschalten möchten, und dann aus, wenn Sie sie einschalten möchten! Wenn Sie es in etwas Unauffälligem verstecken, wäre es ein tolles Aprilscherz- oder Gag-Geschenk. Und das Beste daran ist, dass
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Hinzugefügte Informationen: 4 Schritte
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen … Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Zusätzliche Informationen: Wenn Sie jemals auf eine Website gehen und ein Lied abspielen, das Sie mögen und es wollen, dann ist hier das anweisbare für Sie, nicht meine Schuld, wenn Sie etwas durcheinander bringen (nur so wird es passieren, wenn Sie ohne Grund anfangen, Dinge zu löschen) ) Ich konnte Musik für
So finden Sie Ihr verlorenes Handy oder Ihr schnurloses Telefon – wikiHow
So finden Sie Ihr verlorenes Handy oder schnurloses Telefon: Szenario: Meine Frau und ich haben beide Mobiltelefone. Wir benutzen kein Heimtelefon mehr, da wir die ganze Zeit unterwegs sind. Warum für einen Festnetzanschluss bezahlen, den Sie kaum nutzen