Sisällysluettelo:
- Vaihe 1: Kokoonpano
- Vaihe 2: Kokoonpano - Taulukko
- Vaihe 3: TFT_eSPI -kirjasto
- Vaihe 4: ESP32_Check_Internet_Connection.ino
- Vaihe 5: Lataa tiedostot
Video: Mitä jos linkkisi kaatuu?: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Tässä videossa luomme linkinpudotustunnistimen, jossa on ESP32 ja SIM800. Tämä tarkoittaa sitä, että tämän projektin avulla voimme vahvistaa yhteyden Internetiin ja jos yhteys epäonnistuu, soita puhelinnumeroon ilmoittaaksesi verkon ongelmista.
Tämä on yksi monista tavoista, joilla voit suorittaa tämän tyyppisen valvonnan. Vaikka se on yksinkertaista, sen avulla voit testata erilaisia laitteita, joita CPD: ssä voi olla. Sen tarkastusvoima kasvaa paljon käytettäessä ESP32: ta. Vaikka käytän tässä esimerkissä WiFi -yhteyttä, voit käyttää langallista internetiä, jos haluat.
Vaihe 1: Kokoonpano
Vaihe 2: Kokoonpano - Taulukko
Vaihe 3: TFT_eSPI -kirjasto
Siirry Arduino IDE: ssä Sketch-> Include
Kirjasto-> Hallitse kirjastoja…
Asenna TFT_eSPI
Siirry kirjastokansioon ja muuta User_Setup.h -tiedoston rivejä niin, että ne jätetään kuvan mukaisesti.
Vaihe 4: ESP32_Check_Internet_Connection.ino
Sisältää ja määrittelee
#define TINY_GSM_MODEM_SIM800#include
#sisältää
#sisältää
#sisältää
// Mude para o nome e senha da sua rede WiFi que quer testar #define SSID "SSID" #define SALASANA "12345678" //+55 DDD Número do celular #define USER_PHONE_NUMBER "+5518912345678" // Tempo que deve esperar para 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 for o modeulo gsm HardwareSerial SerialGSM (1); TinyGsm -modeemiGSM (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 lastTimeConedPhone = -MAX_CALL_TIME_INTERVAL; // Pinagem em User_Setup.h ja pasta da biblioteca TFT_eSPI display = TFT_eSPI ();
Perustaa
void setup () {Serial.begin (115200); setupDisplay (); // Käyttöönotto ja määritykset tai näytön asetuksetGSM (); // Inicializa o modeulo GSM xTaskCreatePinnedToCore (checkWiFiConnection, // Função que será executab "checkWiFiConnection", // Nome da tarefa 10000, // Tamanho da pilha NULL, // Parâmetro da tarefa (no caso não usamos) 2, // Priorid 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á executab a tarefa (usamos o core 0 para o loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Função que será executab "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á executab a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
SetupDisplay
void setupDisplay () {display.init (); // Näyttö tai näyttö display.setRotation (1); // Rotaciona display.fillScreen (TFT_BLUE); // Limpa tai näyttö com tai vastaava näyttö.setTextColor (TFT_WHITE, TFT_BLUE); // Coloca tai texto como branco com fundo azul display.setTextWrap (false, false); // Desativa a quebra de linha display.setTextSize (1); // Muda tai tamanho do texto display.setCursor (0, 0, 2); // Posição x, y e fonte do texto}
SetupGSM
void setupGSM () {showDisplay ("Asenna GSM"); // O Modulo GSM: n GPIO: t 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); viive (1000); // Käynnistä uudelleen tai menetelmä, jos (! ModemGSM.restart ()) {ESP.restart (); palata; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM -verkkovirhe"); viive (3000); ESP.restart (); palata; }}
checkWiFiConnection
void checkWiFiConnection (void* p) {while (true) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNECTED) {// Manda conectar connectWiFi (); } // Viive de 1s da tarefa. Fe fe em punkit. Parametrien suorittaminen mill millis osiosta jatkuva portti TICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
connectWiFi
void connectWiFi () {// Manda conectar ao roteador com o nome and senha WiFi.begin (SSID, SALASANA); Serial.println ("Yhdistäminen"); // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); viive (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Yhdistetty"); }
checkInternet
void checkInternet (void* p) {// Viiden sekunnin viive. Fe fe em punkit. Parametrien suorittaminen millisivun osana pelaamista portti TICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; while (true) {// Se tem internet if (hasInternet ()) {// Atualiza tai tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplica tai delay vTaskDelay (taskDelay); }}
hasInternet
bool hasInternet () {WiFiClient -asiakas; // 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 = asiakas.yhteys (adr, 80); // Fecha a conexão client.stop (); // Retorna true se está conectado ou false se está desconectado return connected; }
Silmukka
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 phoneone definido if (hasNotConedPhoneInAWhile ()) {// Liga para tai puhelin määrittele callPhone (); }} else {// Mostra no display que está conectado showDisplay ("Connected"); } // Espera 1 segundo para a próxima iteração do loop delay (1000); }
isDisconnectedForTooLong
bool isDisconnectedForTooLong () {// Palauta todellinen se o tempo desde a última conexão for maior que o definido return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME; } bool hasNotConedPhoneInAWhile () {// Palauta todellinen se o tempo desde a última ligacão para o phone, for maior que o definido return millis () - lastTimeConedPhone> MAX_CALL_TIME_INTERVAL; }
soita puhelimeen
void callPhone () {// Faz a ligação para o phoneone defineido if (modemGSM.callNumber (USER_PHONE_NUMBER)) {// Katso entrou aqui é porque conseguiu realizar a ligação Serial.println ("callphone ok"); // Atualiza tai tempo em que foi feita a última ligação lastTimeConedPhone = millis (); } else {// Katso entrou aqui é porque não conseguiu fazer a ligação Serial.println ("puhelinsoitto epäonnistui"); } // Pääte ja modeemiGSM.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 (viesti + ""); }
Vaihe 5: Lataa tiedostot
INO
Suositeltava:
Raspberry Pi 4 Retropie Boot ulkoiselta, jos SD -korttia ei ole: 5 vaihetta
Raspberry Pi 4 Retropie Boot ulkoiselta, jos SD -korttia ei ole: ~ github.com/engrpanda
Tekstiviestien lähettäminen, jos savua havaitaan (Arduino+GSM SIM900A: 5 vaihetta)
Tekstiviestien lähettäminen, jos savua havaitaan (Arduino+GSM SIM900A: Hei kaikki! Ensimmäisessä ohjeessani teen kaasuhälytyksen, joka lähettää viestin käyttäjälle, jos saastuminen havaitaan. Tämä on yksinkertainen prototyyppi, joka käyttää Arduinoa, GSM -moduulia ja sähkökemikaalia savuanturi. Tulevaisuudessa tämä voidaan laajentaa koskemaan
Expression Robot- Jos tämä on tämä: 5 vaihetta
Expression Robot- If This Than That: Hallo ja tervetuloa Expression Robot Instructable.DIt is de instructable waar ik aan heb gewerkt tijdens mijn les van If This Than That. . Robottiyhteistyö
Mitä tehdä, jos laturi ei näe 18650 litiumioniakkua: 9 vaihetta
Mitä tehdä, jos laturi ei näe 18650-litiumioniakkua: Mitä tehdä, jos akku ei lataudu, laturi ei näe akkua kahdesta syystä: alhainen jännite tai lauennut lämpösuoja
Mitä tehdä, jos opetusmateriaalia ahdistellaan: 7 vaihetta
Mitä tehdä, jos ahdistellaan Instructables -ohjelmassa: Instructables on DIYers -perhe, jonka jäseniä on kaikkialla maailmassa. Huomaa perheen painottaminen. Joskus (onneksi ei kovin usein) muutama huono omena hiipii sisään ja häiritsee perhettämme. Tämän ohjeen kohteena on tällaisen tilanteen käsittely