جدول المحتويات:
- الخطوة 1: التجميع
- الخطوة 2: التجميع - الجدول
- الخطوة 3: مكتبة TFT_eSPI
- الخطوة 4: ESP32_Check_Internet_Connection.ino
- الخطوة 5: قم بتنزيل الملفات
فيديو: ماذا لو تعطل الارتباط الخاص بك ؟: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
في هذا الفيديو ، سننشئ مستشعر إسقاط الارتباط باستخدام ESP32 و SIM800. هذا يعني أنه من خلال هذا المشروع ، يمكننا التحقق من الاتصال بالإنترنت ، وفي حالة فشل الاتصال ، اتصل برقم هاتف لإخطار أن الشبكة في مشكلة.
هذه إحدى الطرق العديدة التي يمكنك من خلالها إجراء هذا النوع من المراقبة. على الرغم من بساطته ، إلا أنه يسمح لك باختبار العديد من الأجهزة التي قد تكون موجودة ضمن CPD الخاص بك. تصبح قوة الفحص الخاصة به أكبر بكثير عند استخدام ESP32. على الرغم من أنني أستخدم WiFi في هذا المثال ، يمكنك استخدام الإنترنت السلكي ، إذا كنت تفضل ذلك.
الخطوة 1: التجميع
الخطوة 2: التجميع - الجدول
الخطوة 3: مكتبة TFT_eSPI
في Arduino IDE ، انتقل إلى Sketch-> Include
المكتبة-> إدارة المكتبات …
قم بتثبيت TFT_eSPI
انتقل إلى مجلد المكتبة وقم بتغيير أسطر ملف User_Setup.h لتركه كما هو موضح في الصورة.
الخطوة 4: ESP32_Check_Internet_Connection.ino
يشمل ويعرف
#define TINY_GSM_MODEM_SIM800 # تشمل
#يشمل
#يشمل
#يشمل
// 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 allow 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) ؛ مودم TinyGsmGSM (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 lastTimeCalledPhone = -MAX_CALL_TIME_INTERVAL ؛ // Pinagem em User_Setup.h na pasta da biblioteca TFT_eSPI display = TFT_eSPI () ؛
اقامة
إعداد باطل () {Serial.begin (115200) ؛ setupDisplay () ؛ // Inicializa e configura o عرض الإعداد GSM () ؛ // Inicializa o módulo GSM xTaskCreatePinnedToCore (checkWiFiConnection، // Função que será Exitada "checkWiFiConnection"، // Nome da tarefa 10000، // Tamanho da pilha NULL، // Parâmetro da tarefa (no caso não usamos) 2، // Priority 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á exático a tarefa (usamos o core 0 para o 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á Executive a tarefa (usamos o core 0 para o loop ficar livre com o core 1)}
الإعداد
setupDisplay () باطلة {display.init () ، // Inicializa o 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}
الإعداد
إعداد باطلGSM () {showDisplay ("إعداد GSM") ؛ // O Módulo GSM está nos GPIOs 4 e 2 SerialGSM.begin (9600، SERIAL_8N1، 4، 2، false) ؛ تأخير (1000) ؛ // Restart o módulo if (! modemGSM.restart ()) {ESP.restart ()؛ إرجاع؛ } // Espera pela rede celular if (! modemGSM.waitForNetwork ()) {display.setCursor (0، 0)؛ showDisplay ("خطأ شبكة GSM") ؛ تأخير (3000) ؛ ESP.restart () ، إرجاع؛ }}
checkWiFiConnection
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 القراد. تنفيذي جزئيًا ، تقسيم الميلي ، منفذ ثابت للثبات TICKType_t taskDelay = 1000 / portTICK_PERIOD_MS؛ vTaskDelay (TaskDelay) ، }}
connectWiFi
باطل connectWiFi () {// Manda conectar ao roteador com o nome e senha WiFi.begin (SSID ، PASSWORD) ؛ Serial.println ("توصيل") ؛ // Espera no while até conectar while (WiFi.status ()! = WL_CONNECTED) {Serial.print (".")؛ تأخير (500) ؛ } // Se chegou aqui está conectado Serial.println () ؛ Serial.println ("متصل") ؛ }
الإنترنت
checkInternet (void * p) {// Delay de 5 segundos da tarefa. É feita em القراد. تنفيذي جزئيًا بملف منفصل ، منفذ ثابت ، 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 ()؛ } // تطبيق o delay vTaskDelay (TaskDelay) ؛ }}
hasInternet
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 متصل = client.connect (adr ، 80) ؛ // Fecha a conexão client.stop () ؛ // Retorna true se está conectado ou false se está desconectado return connect ؛ }
حلقة
الحلقة الفارغة () {// 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 telefone Definido if (hasNotCalledPhoneInAWhile ()) {// Liga para o telefone Definido 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 () {// Retorna true se o tempo desde a última conexão for maior que o definitely return millis () - lastTimeConnected> MAX_DISCONNECTED_TIME ؛ } bool hasNotCalledPhoneInAWhile () {// Retorna true se o tempo desde a última ligacão para o telefone for maior que o Definido return millis () - lastTimeCalledPhone> MAX_CALL_TIME_INTERVAL؛ }
مكالمة هاتفية
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") ؛ // Atualiza 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 a ligação modemGSM.callHangup () ؛ }
عرض
void showDisplay (String message) {// Mostra a mensagem na primeira linha do display ، limpando os eventuais caracteres extras display.setCursor (0، 0)؛ display.println (message + "") ؛ }
الخطوة 5: قم بتنزيل الملفات
بي دي إف
انا لا
موصى به:
ماذا يوجد داخل المؤازرة وكيفية استخدامها مع برنامج تعليمي كامل من Arduino: 6 خطوات
ماذا يوجد داخل المؤازرة وكيفية استخدامها مع برنامج تعليمي كامل من Arduino: في هذا البرنامج التعليمي ، دعنا نستكشف ما هو مقطع الفيديو التعليمي servowatch هذا
ملف تعريف الارتباط O Robô: 3 خطوات
ملف تعريف الارتباط O Robô: Materiais: 1. Arduino ؛ 2-موتورز دس ؛ 1.بلوتوث ؛ 1.لوحة التعريف _____________________________________________________________________________ المواد: 1. Arduino ؛ 2. محركات DC ؛ 1. bluetooth ؛ 1.Proto board
شاحن بطارية Li-Ion العالمي - ماذا يوجد في الداخل؟: 7 خطوات
شاحن بطارية Li-Ion العالمي - ماذا يوجد في الداخل؟: يمكن استخدام نتيجة تفكيك المنتج من قبل الهواة / الصانعين لمعرفة المكونات التي يتم استخدامها في المنتج الإلكتروني. يمكن أن تساعد هذه المعرفة في فهم كيفية عمل النظام ، بما في ذلك ميزات التصميم المبتكرة ، ويمكن أن يسهل
قرصنة الألعاب - ماذا يوجد بالداخل ؟: 4 خطوات
قرصنة الألعاب - ماذا يوجد بالداخل؟: يكشف هذا المشروع عن التكنولوجيا والمكونات الميكانيكية داخل لعبة. يمكنك تشريح ورسم تخطيطي وإعادة تصميم لعبة قديمة في ابتكار جديد. خطط لهذا المشروع بحيث يستغرق 90 دقيقة على الأقل ، وأكثر اعتمادًا على إعادة تصميمك. من خلال ال
ماذا تفعل عندما لا يتعرف iTunes على جهاز iPod الخاص بك: 7 خطوات
ماذا تفعل عندما لا يتعرف iTunes على جهاز iPod الخاص بك: لقد تلقيت iPod الجديد الخاص بك وأنت متحمس جدًا لاستخدامه. تقوم بتوصيل سلك USB بالكمبيوتر وتوصيل الطرف الآخر بجهاز iPod. الآن تواجه مشكلة. لسبب ما ، لا يقوم iTunes باكتشاف جهاز iPod الخاص بك. قد تعتقد أن هذا هو العلاقات العامة