İçindekiler:
- Adım 1: Montaj
- Adım 2: Montaj – Tablo
- 3. Adım: TFT_eSPI Kitaplığı
- Adım 4: ESP32_Check_Internet_Connection.ino
- Adım 5: Dosyaları İndirin
Video: Ya Bağlantınız Çökerse?: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bu videoda ESP32 ve SIM800 ile bir link düşme sensörü oluşturacağız. Yani bu proje ile internete olan bağlantıyı doğrulayabiliyoruz ve bir bağlantı arızası durumunda bir telefon numarasını arayarak şebekenin sorunlu olduğunu bildiriyoruz.
Bu, bu tür izlemeyi gerçekleştirmenin birçok yolundan biridir. Basit olmasına rağmen, CPD'nizde bulunabilecek çeşitli cihazları test etmenize olanak tanır. ESP32'yi kullanırken kontrol gücü çok daha fazla olur. Bu örnekte WiFi kullanmama rağmen, isterseniz kablolu internet kullanabilirsiniz.
Adım 1: Montaj
Adım 2: Montaj – Tablo
3. Adım: TFT_eSPI Kitaplığı
Arduino IDE'de Sketch-> Include'a gidin
Kütüphane-> Kütüphaneleri Yönet…
TFT_eSPI'yi yükleyin
Kitaplık klasörüne gidin ve User_Setup.h dosyasının satırlarını resimde gösterildiği gibi bırakacak şekilde değiştirin.
Adım 4: ESP32_Check_Internet_Connection.ino
İçerir ve tanımlar
#define TINY_GSM_MODEM_SIM800#include
#Dahil etmek
#Dahil etmek
#Dahil etmek
//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 dikkate como desconectado #define MAX_DISCONNECTED_TIME 10000 //10 seg //Tempo que deve para cada ligação #define MAX_CALL_TIME_INTERVAL 1800000 //30 dak //Usar seri 1 para o módulo gsm HardwareSerial SerialGSM(1); TinyGsm modemGSM(SerialGSM); //İnternet üzerinden tempo ve bağlantı uint32_t lastTimeConnected = 0; //Tempo em que fez a última ligação. Colocamos commo -MAX_CALL_TIME_INTERVAL para ligar imediatamente // ilk ve son uint32_t lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL; //User_Setup.h ve biblioteca makarna için Pinagem TFT_eSPI ekranı = TFT_eSPI();
Kurmak
geçersiz kurulum(){ Serial.begin(115200); setupDisplay(); //İnicializa e yapılandırma veya ekran setupGSM(); //GSM xTaskCreatePinnedToCore(checkWiFiConnection, //Função que será executada "checkWiFiConnection", //Tarefa 10000, //Tamanho da pilha NULL, //Parâmetro da tarefa (kaso não usPriamode yok) 2, da tarefa NULL, //Caso queria manter uma referência para a tarefa que vai ser criada (caso não precisamos yok) 0); //Çekirdek que er a 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 (caso não usamos yok) 2, //Öncelikli da tarefa NULL, //Caso queria manter uma referência para a tarefa que vai ser criada (caso não precisamos yok) 0); //Número do core que será executada a tarefa (usamos o core 0 para o loop ficar livre com o core 1) }
KurulumEkran
geçersiz setupDisplay(){ display.init(); // Display.setRotation(1); //Rotaciona display.fillScreen(TFT_BLUE); //Limpa o ekran bir cor azul display.setTextColor(TFT_WHITE, TFT_BLUE); //Coloca veya textocomo branco com fundo azul display.setTextWrap(false, false);//Desativa bir linha göstergesi.setTextSize(1); //Muda veya tamanho yapmak texto display.setCursor(0, 0, 2); //Posição x, y e fonte do texto }
KurulumGSM
void setupGSM(){ showDisplay("GSM Kurulumu"); //O Modül GSM está nos GPIOs 4 e 2 SerialGSM.begin(9600, SERIAL_8N1, 4, 2, false); gecikme(1000); //Modulo if (!modemGSM.restart()) { ESP.restart(); dönüş; } //Espera pela celular if (!modemGSM.waitForNetwork()) { display.setCursor(0, 0); showDisplay("GSM Şebeke Hatası"); gecikme(3000); ESP.restart(); dönüş; } }
kontrolWiFiBağlantısı
void checkWiFiConnection(void* p){ while(true) { //Görünüşe göre bağımsız değişken if(WiFi.status() != WL_CONNECTED) { //Manda conectar connectWiFi(); } // 1 sn veri tarefa gecikmesi. Çok iyi tikler. Para yürütücü em millis bölünmeler pela sabiti portTICK_PERIOD_MS TickType_t taskDelay = 1000 / portTICK_PERIOD_MS; vTaskDelay(görev Gecikmesi); } }
bağlanWiFi
void connectWiFi(){ //WiFi.begin(SSID, PASSWORD); Serial.println("Bağlanıyor"); //Espera no while até conectar while(WiFi.status() != WL_CONNECTED) { Serial.print("."); gecikme(500); } //Bağlantıları kontrol et Serial.println(); Serial.println("Bağlandı"); }
kontrol internet
void checkInternet(void* p){ // Gecikme de 5 segundos da tarefa. Çok iyi tikler. Para yürütücü em millis bölünmeler pela sabiti 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(); } //Uygulama o gecikme vTaskDelay(taskDelay); } }
internete sahip
bool hasInternet(){ WiFiClient istemcisi; //Endreço IP Google 172.217.3.110 IPAdresi adr = IPAdresi(172, 217, 3, 110); //Tempo limiti, istemci.setTimeout(5); //Tenta conectar bool bağlı = client.connect(adr, 80); //Bir conexão client.stop(); //Retorna true se, conectado ou false se, deconectado deconectado geri bağlandı; }
Döngü
void loop() { //Tempo mais desconectado por mais tempo tanimlamalar if(isDisconnectedForTooLong()) { //Çoğu ekran yok, desconectado showDisplay("Disconnected"); //Telefon tanımlı if(hasNotCalledPhoneInAWhile()) { //Telefon tanımlı bir çağrı Telefon(); } } else { //Mostra no display que está conectado showDisplay("Bağlandı"); } //Espera 1 segundo para a proxima iteração do loop delay(1000); }
Çok Uzun İçin Bağlantı Kesildi
bool isDisconnectedForTooLong(){ //Maior que o için bir última conexão desde gerçek se o tempo retorna millis() - lastTimeConnected > MAX_DISCONNECTED_TIME; } bool hasNotCalledPhoneInAWhile() { //Maior que o definido dönüşü millis() - lastTimeCalledPhone > MAX_CALL_TIME_INTERVAL; }
araTelefon
void callPhone(){ //Telefon tanımlı bir telefon numarası if(modemGSM.callNumber(USER_PHONE_NUMBER)) { //Sesli bir serial.println("callphone tamam"); //Atualiza o tempo em que foi feita a última ligação lastTimeCalledPhone = millis(); } else { //Senin en son hali, en uygun zamanda, bir ligação Serial.println("arama başarısız"); } //Modemin sonlandırılmasıGSM.callHangup(); }
gösterEkran
void showDisplay(String iletisi){ // Gösterilen çoğu zaman bir mensagem ve primeira linha do display, limpando os eventuais karakter ekstraları display.setCursor(0, 0); display.println(mesaj + " "); }
Adım 5: Dosyaları İndirin
BEN HAYIR
Önerilen:
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): 9 Adım
Akıllı Motosiklet HUD Prototipi (adım adım Navigasyon ve Çok Daha Fazlası): Merhaba !Bu Talimatlar, motosiklet kasklarına monte edilmek üzere tasarlanmış bir HUD (Heads-Up Display) platformunu nasıl tasarladığımın ve inşa ettiğimin hikayesidir. "Haritalar" yarışması bağlamında yazılmıştır. Maalesef tamamen bitiremedim
Arduino Araba Geri Geri Park Uyarı Sistemi - Adım Adım: 4 Adım
Arduino Araba Geri Geri Park Uyarı Sistemi | Adım Adım: Bu projede Arduino UNO ve HC-SR04 Ultrasonik Sensör kullanarak basit bir Arduino Araba Geri Park Sensörü Devresi tasarlayacağım. Bu Arduino tabanlı Araba Ters uyarı sistemi, Otonom Navigasyon, Robot Mesafesi ve diğer menzil r
Adım Adım PC Oluşturma: 9 Adım
Adım Adım Bilgisayar Oluşturma: Sarf Malzemeleri: Donanım: AnakartCPU & CPU soğutucusuPSU (Güç kaynağı ünitesi)Depolama (HDD/SSD)RAMGPU (gerekli değil)CaseTools: TornavidaESD bilezik/aplikatörlü matstermal macun
Üç Hoparlör Devresi -- Adım Adım Eğitim: 3 Adım
Üç Hoparlör Devresi || Adım Adım Eğitim: Hoparlör Devresi, ortamdan alınan ses sinyallerini MIC'e güçlendirir ve bunu, güçlendirilmiş sesin üretildiği Hoparlöre gönderir. Burada, size bu Hoparlör Devresini kullanarak bu Hoparlör Devresini yapmanın üç farklı yolunu göstereceğim:
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)