Talaan ng mga Nilalaman:
- Hakbang 1: Assembly
- Hakbang 2: Assembly - Talahanayan
- Hakbang 3: TFT_eSPI Library
- Hakbang 4: ESP32_Check_Internet_Connection.ino
- Hakbang 5: I-download ang Mga File
Video: Paano Kung Nag-crash ang Iyong Link ?: 5 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Sa video na ito, lilikha kami ng isang link drop sensor na may isang ESP32 at isang SIM800. Nangangahulugan ito na sa proyektong ito, mapatunayan namin ang koneksyon sa internet, at sa kaganapan ng pagkabigo sa koneksyon, tumawag sa isang numero ng telepono upang abisuhan na ang network ay nagkaproblema.
Ito ay isang maraming paraan upang magawa mo ang ganitong uri ng pagsubaybay. Habang simple ito, pinapayagan kang subukan ang iba't ibang mga aparato na maaaring umiiral sa loob ng iyong CPD. Ang lakas ng tseke nito ay magiging mas malaki kapag ginagamit ang ESP32. Bagaman gumagamit ako ng WiFi sa halimbawang ito, maaari kang gumamit ng wired internet, kung nais mo.
Hakbang 1: Assembly
Hakbang 2: Assembly - Talahanayan
Hakbang 3: TFT_eSPI Library
Sa Arduino IDE, pumunta sa Sketch-> Isama
Library-> Pamahalaan ang Mga Aklatan…
I-install ang TFT_eSPI
Pumunta sa folder ng library at baguhin ang mga linya ng User_Setup.h file upang iwanan ito tulad ng ipinakita sa imahe.
Hakbang 4: ESP32_Check_Internet_Connection.ino
May kasamang at tumutukoy
# tukuyin ang TINY_GSM_MODEM_SIM800 # isama
# isama
# isama
# isama
// 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 sa karagdagang 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 sa 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 ();
Pag-set up
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 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á executiveada a tarefa (usamos o core 0 para sa loop ficar livre com o core 1) xTaskCreatePinnedToCore (checkInternet, // Função que será executiveada "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 sa 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}
Pag-setupGSM
walang bisa ang setupGSM () {showDisplay ("Setup GSM"); // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600, SERIAL_8N1, 4, 2, false); pagkaantala (1000); // Restart o módulo if (! ModemGSM.restart ()) {ESP.restart (); bumalik; } // Espera pela rede celular if (! ModemGSM.waitForNetwork ()) {display.setCursor (0, 0); showDisplay ("GSM Network Error"); pagkaantala (3000); ESP. restart (); bumalik; }}
checkWiFiConnection
void checkWiFiConnection (void * p) {habang (totoo) {// Se não estiver conectado ao roteador if (WiFi.status ()! = WL_CONNected) {// Manda conectar connectWiFi (); } // Delay de 1s da tarefa. É feita em ticks. Para sa pagpapatupad ng millid dividimos pela Constante portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay (taskDelay); }}
kumonektaWiFi
void connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID, PASSWORD); Serial.println ("Pagkonekta"); // Espera no habang até conectar habang (WiFi.status ()! = WL_CONNected) {Serial.print ("."); pagkaantala (500); } // Se chegou aqui está conectado Serial.println (); Serial.println ("Nakakonekta"); }
checkInternet
void checkInternet (void * p) {// Delay de 5 segundos da tarefa. É feita em ticks. Para sa pagpapatupad ng millid dividimos pela Constante portTICK_PERIOD_MS TickType_t taskDelay = 5000 / portTICK_PERIOD_MS; habang (totoo) {// Se tem internet if (hasInternet ()) {// Atualiza o tempo em que aconteceu a útlima conexão lastTimeConnected = millis (); } // Aplica o maantala ang vTaskDelay (taskDelay); }}
mayInternet
bool hasInternet () {WiFiClient client; // Endreço IP gawin ang 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 isang conexão client.stop (); // Retorna true se está conectado ou false se está desconectado return konektado; }
Loop
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 sa telefone definido if (hasNotCalledPhoneInAWhile ()) {// Liga para sa telefone definido callPhone (); }} iba pa {// Mostra no display que está conectado showDisplay ("Nakakonekta"); } // Espera 1 segundo para sa isang 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 sa telefone for maior que o definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL; }
callPhone
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 (); } iba pa {// Se entrou aqui é porque não conseguiu fazer a ligação Serial.println ("Nabigo ang callphone"); } // Termina a ligação modemGSM.callHangup (); }
ipakitaDisplay
void showDisplay (String message) {// Mostra a mensagem na primeira linha do display, limpando os eventuais caracteres extra extra display.setCursor (0, 0); display.println (mensahe + ""); }
Hakbang 5: I-download ang Mga File
INO
Inirerekumendang:
Ipagsalita ang Iyong Computer Kung Ano ang Na-type Mo Gamit ang Notepad: 3 Mga Hakbang
Ipagsalita sa Iyong Computer ang Iyong Na-type Gamit ang Notepad: Narito ang isang kagiliw-giliw na code na nilikha namin upang magsalita ang iyong computer sa iyong nai-type. Gagamitin namin ang notepad upang likhain ito. Magsimula Na Tayo
Paano Suriin Kung Tumatakbo ang isang Laro sa Iyong Computer Bago ka Bumili ng Laro .: 4 Mga Hakbang
Paano Suriin Kung Tumatakbo ang Isang Laro sa Iyong Computer Bago ka Bumili ng Laro .: Kamakailan-lamang na nakuha ko ang Tawag ng Tanghalan 4 mula sa isang kaibigan (nang libre ay maaari kong idagdag) dahil hindi tatakbo sa kanyang computer. Sa gayon, ang kanyang computer ay medyo bago, at ikinagulat ako nito kung bakit hindi ito tatakbo. Kaya pagkatapos ng ilang oras na paghahanap ng internet, napag-alaman ko
Paano ang Iyong Pasadyang Firmware MOD Ang Iyong PSP: 12 Hakbang
Paano sa Iyong Pasadyang Firmware MOD Ang Iyong PSP: Sa pagtuturo na ito ipapakita ko sa iyo kung paano lumikha ng isang pandora na baterya, magic memory stick at, ang proseso ng pag-install! Ipapakita ko rin sa iyo kung paano i-convert ang iyong baterya ng Pandora pabalik sa isang normal na baterya! Kasamang Video! Mga Kagamitan: -Unang-una sa lahat ng iyong g
Bling Out Ang Iyong Breadboard (kung paano magdagdag ng LED Power Indikator sa Solarbotics Transparent Breadboard): 7 Mga Hakbang
Bling Out Your Breadboard (kung paano magdagdag ng LED Power Indikator sa Solarbotics Transparent Breadboard): Ang mga transparent na breadboard na ito ay katulad ng anumang iba pang electronics breadboard, ngunit malinaw ang mga ito! Kaya, ano ang magagawa ng isang malinaw na tinapay? Sa palagay ko ang halatang sagot ay magdagdag ng isang power LEDs
Bola ng Kamatayan: o Paano Ko Natutuhan na Itigil ang Nag-aalala at Gustung-gusto ang Mga Nagsasalita ng Apple Pro: 11 Mga Hakbang (na may Mga Larawan)
Bola ng Kamatayan: o Paano Ko Natutuhan na Itigil ang Nag-aalala at Gustung-gusto ang Mga Nagsasalita ng Apple Pro: Palagi kong nasabi na mula nang itapon ang " beige box ", Palaging pinangunahan ng Apple ang lugar ng pang-industriya na disenyo. Ang pagsasama ng form at pag-andar ay hindi maaaring hawakan ng anumang iba pang mga tagagawa sa anumang industriya (malapit na ang Porsche). Ito ay