جدول المحتويات:
- الخطوة 1: العرض التوضيحي
- الخطوة 2: التجميع
- الخطوة 3: التجميع - الجدول
- الخطوة 4: Ubidots
- الخطوة 5: مكتبة SimpleDHT
- الخطوة 6: مكتبة PubSubClient
- الخطوة 7: مكتبة TinyGSM
- الخطوة 8: مكتبة TFT_eSPI
- الخطوة 9: مكتبة TFT_eSPI
- الخطوة 10: Ubidots
- الخطوة 11: تغيير البيانات بتنسيق.ino
- الخطوة 12: GPRS_ESP32_DHT.ino - الإعلانات والمتغيرات
- الخطوة 13: التثبيت
- الخطوة 14: الإعداد
- الخطوة 15: SetupDisplay
- الخطوة 16: SetupGSM
- الخطوة 17: ConnectMQTTServer
- الخطوة 18: التكرار
- الخطوة 19: ReadDHT
- الخطوة 20: انشر MQTT
- الخطوة 21: CreateJsonString
- الخطوة 22: ShowDataOnDisplay
- الخطوة 23: الملفات
فيديو: إنترنت الأشياء مع الشبكة الخلوية مع ESP32: 23 خطوة
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
سنناقش اليوم مودم GPRS ، أو بالأحرى ESP32 واستخدامه مع شبكة الهاتف الخلوي. هذا شيء يعمل بشكل جيد جدا. باستخدام بروتوكول MQTT ، سنرسل البيانات بعد ذلك إلى لوحة معلومات Ubidots. استخدم في هذا التجميع شاشة لعرض ملاحظات الدائرة ، بالإضافة إلى SIM800L وشريحة الهاتف الخلوي. من خلال هذا المشروع ، سنرسل بيانات درجة الحرارة والرطوبة عبر GPRS و MQTT ، ونعرض البيانات في مخطط خطي.
الخطوة 1: العرض التوضيحي
الخطوة 2: التجميع
الخطوة 3: التجميع - الجدول
الخطوة 4: Ubidots
الخطوة 5: مكتبة SimpleDHT
في Arduino IDE ، انتقل إلى Sketch-> Include Library-> Manage Libraries…
قم بتثبيت SimpleDHT
الخطوة 6: مكتبة PubSubClient
في Arduino IDE ، انتقل إلى Sketch-> Include Library-> Manage Libraries…
قم بتثبيت PubSubClient
الخطوة 7: مكتبة TinyGSM
في Arduino IDE ، انتقل إلى Sketch-> Include Library-> Manage Libraries…
قم بتثبيت TinyGSM
الخطوة 8: مكتبة TFT_eSPI
في Arduino IDE ، انتقل إلى Sketch-> Include Library-> Manage Libraries…
قم بتثبيت TFT_eSPI
الخطوة 9: مكتبة TFT_eSPI
قم بتغيير دبابيس العرض في مجلد lib.
التثبيت موجود في ملف User_Setup.h بتنسيق
C: / Users / \ Documents / Arduino / libraries / TFT_eSPI
قم بتغيير هذه الإعدادات الافتراضية إلى القيم التالية في الصورة.
الخطوة 10: Ubidots
سجّل الدخول إلى Ubidots باستخدام حسابك وانقر على الأجهزة
انقر فوق الزر "+" في الزاوية اليمنى العليا
انقر فوق فارغ
أدخل اسم الجهاز. لاحظ "تسمية الجهاز" ، حيث سيتم استخدامها في "الموضوع" الذي سنستخدمه في.ino
سيظهر الجهاز الذي أنشأته للتو في قائمة الأجهزة. انقر عليه.
في الشاشة التي تظهر ، انقر فوق "إضافة متغير". ستظهر نافذة منبثقة. انقر على "الخام".
انقر فوق مربع النص ، وأدخل اسم الخاصية.
يجب أن يكون بالضبط ما سنرسله في ملف json الخاص بـ.ino. كرر هذا للممتلكات الأخرى.
ارجع إلى لوحة القيادة بالنقر فوق شعار Ubidots.
في لوحة التحكم ، انقر فوق "إضافة أداة جديدة"
في قائمة الأدوات ، اختر "محور مزدوج"
الخطوة 11: تغيير البيانات بتنسيق.ino
الخطوة 12: GPRS_ESP32_DHT.ino - الإعلانات والمتغيرات
#define TINY_GSM_MODEM_SIM800 // Tipo de modem que estamos usando # include #include #include #include #include // Token de usuário que pegamos no Ubidots #define TOKEN "BBFF-abcdefghijklmnopqrstuv3" (esp32_gprs é o nome do dispitivo no Ubidots) #define TOPIC "/v1.6/devices/esp32_gprs" // id do dispitivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // URL do MQERVER mqtt: //things.ubidots.com "// Porta padrão do MQTT #define MQTT_PORT 1883 // Pino onde está o DHT22 #define DHT_PIN 27
الخطوة 13: التثبيت
// Pinagem em User_Setup.h na pasta da bibliotecaTFT_eSPI display = TFT_eSPI () ؛ // Intervalo entre os envios e Refresh da tela #define INTERVAL 10000 // Canal serial que vamos usar para comunicarmos com o modem. استخدام semper 1 HardwareSerial SerialGSM (1) ؛ مودم TinyGsmGSM (SerialGSM) ؛ TinyGsmClient gsmClient (modemGSM) ؛ // Cliente MQTT ، passamos ، url do server ، a porta // e o client GSM PubSubClient client (MQTT_SERVER ، MQTT_PORT ، gsmClient) ؛ // Tempo em que o último envio / تحديث foi feito uint32_t lastTime = 0 ؛ الرطوبة العائمة // Variável onde iremos armazenar o valor da umidade درجة حرارة الطفو ؛ // Variável onde iremos armazenar o valor da tematura SimpleDHT22 dht؛ // Objeto que realizará a leitura da umidade e temperature
الخطوة 14: الإعداد
إعداد باطل () {Serial.begin (115200) ؛ setupDisplay () ؛ // Inicializa e configura o عرض الإعداد GSM () ؛ // Inicializa e configura o مودم GSM connectMQTTServer () ؛ // Conectamos ao mqtt server // Espera 2 segundos e limpamos o تأخير العرض (2000) ؛ display.fillScreen (TFT_BLUE) ؛ display.setCursor (0، 0)؛ }
الخطوة 15: SetupDisplay
setupDisplay () باطلة {display.init () ، display.setRotation (1) ؛ 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 (صحيح ، صحيح) ؛ // Ativa quebra de linha display.setTextSize (1) ؛ display.setCursor (0، 0، 2) ؛ // Posicção x، y e fonte do texto display.println ("اكتمال عرض الإعداد") ؛ }
الخطوة 16: SetupGSM
إعداد باطلGSM () {display.println ("إعداد GSM…") ؛ // Inicializamos a series onde está o modem SerialGSM.begin (9600، SERIAL_8N1، 4، 2، false) ؛ تأخير (3000) ؛ // Mostra informação sobre o modem Serial.println (modemGSM.getModemInfo ()) ؛ // Inicializa o modem if (! modemGSM.restart ()) {display.println ("فشل إعادة تشغيل مودم GSM") ؛ تأخير (10000) ؛ ESP.restart () ، إرجاع؛ } // Espera pela rede if (! modemGSM.waitForNetwork ()) {display.println ("Failed to connect to network")؛ تأخير (10000) ؛ ESP.restart () ، إرجاع؛ } // Conecta à rede gprs (APN، usuário، senha) if (! modemGSM.gprsConnect (""، ""، "")) {display.println ("فشل اتصال GPRS") ؛ تأخير (10000) ؛ ESP.restart () ، إرجاع؛ } display.println ("Setup GSM Success")؛ }
الخطوة 17: ConnectMQTTServer
void connectMQTTServer () {display.println ("الاتصال بخادم MQTT …") ؛ // Se conecta ao device que Definimos if (client.connect (DEVICE_ID، TOKEN، ")) {// Se a conexão foi bem sucedida display.println (" Connected ") ؛ } else {// Se ocorreu algum erro display.print ("error =")؛ display.println (client.state ()) ؛ تأخير (10000) ؛ ESP.restart () ، }}
الخطوة 18: التكرار
حلقة باطلة () {// Faz a leitura da umidade e temperatura readDHT () ؛ // Se desconectou do server MQTT if (! client.connected ()) {// Mandamos conectar connectMQTTServer () ؛ } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis ()؛ // Se passou o interalo de envio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt publishMQTT () ؛ // Mostramos os dados no display showDataOnDisplay () ؛ // Atualizamos o tempo em que foi feito o último envio lastTime = now؛ }}
الخطوة 19: ReadDHT
readDHT () باطل {float t، h؛ // Faz a leitura da umidade e temperatura e apenas atualiza as variáveis se foi bem sucedido if (dht.read2 (DHT_PIN، & t، & h، NULL) == SimpleDHTErrSuccess) {temperature = t؛ الرطوبة = ح ؛ }}
الخطوة 20: انشر MQTT
النشر باطل MQTT () {// Cria o json que iremos enviar para o server MQTT String msg = createJsonString ()؛ Serial.print ("نشر الرسالة:") ؛ Serial.println (msg) ؛ // Publicamos no tópico int status = client.publish (TOPIC، msg.c_str ()) ؛ Serial.println ("الحالة:" + سلسلة (الحالة)) ؛ // الحالة 1 se sucesso ou 0 se deu erro}
الخطوة 21: CreateJsonString
String createJsonString () {String data = "{"؛ إذا كانت (! isnan (الرطوبة) &&! isnan (درجة الحرارة)) {data + = "\" humidity / ":"؛ البيانات + = الخيط (الرطوبة ، 2) ؛ البيانات + = "،" ؛ البيانات + = "\" درجة الحرارة / ":" ؛ البيانات + = سلسلة (درجة الحرارة ، 2) ؛ } البيانات + = "}" ؛ عودة البيانات }
الخطوة 22: ShowDataOnDisplay
void showDataOnDisplay () {// Reseta a posição do cursor e mostra umidade e temperature lidas display.setCursor (0، 0، 2)؛ display.println ("الرطوبة:" + سلسلة (الرطوبة ، 2)) ؛ display.println ("درجة الحرارة:" + سلسلة (درجة حرارة ، 2)) ؛ }
الخطوة 23: الملفات
قم بتنزيل الملفات
انا لا
بي دي إف
موصى به:
إنترنت الأشياء - انشر البيانات إلى كلام الأشياء باستخدام ESP8266: 3 خطوات
إنترنت الأشياء | نشر البيانات في موقع Thingspeak باستخدام ESP8266: في الوقت الحاضر ، يتجه إنترنت الأشياء وهناك الكثير من البيانات التي يمكن تحميلها عبر السحابة وتحليل البيانات. تقوم المستشعرات الصغيرة بتحديث البيانات الموجودة على السحابة ويعمل المحرك على طرف آخر عليها ، وسأشرح أحد أمثلة إنترنت الأشياء. أنا هذا المقال وأنا
وحدة طاقة إنترنت الأشياء: إضافة ميزة قياس طاقة إنترنت الأشياء إلى وحدة التحكم في شحن الطاقة الشمسية لدي: 19 خطوة (بالصور)
وحدة طاقة إنترنت الأشياء: إضافة ميزة قياس طاقة إنترنت الأشياء إلى وحدة التحكم في شحن الطاقة الشمسية الخاصة بي: مرحبًا بالجميع ، أتمنى أن تكونوا جميعًا رائعون! في هذا الدليل ، سأوضح لك كيف صنعت وحدة قياس طاقة إنترنت الأشياء التي تحسب كمية الطاقة التي تولدها الألواح الشمسية الخاصة بي ، والتي يتم استخدامها بواسطة جهاز التحكم في الشحن الشمسي الخاص بي
أساسيات إنترنت الأشياء: توصيل إنترنت الأشياء الخاص بك بالسحابة باستخدام نظام تشغيل Mongoose: 5 خطوات
أساسيات إنترنت الأشياء: توصيل إنترنت الأشياء الخاص بك بالسحابة باستخدام نظام التشغيل Mongoose: إذا كنت شخصًا يعمل في مجال الإصلاح والإلكترونيات ، في كثير من الأحيان ، ستصادف مصطلح إنترنت الأشياء ، والذي يُختصر عادةً باسم IoT ، وهذا هو يشير إلى مجموعة من الأجهزة التي يمكنها الاتصال بالإنترنت! أن تكون مثل هذا الشخص
مراقبة تجمع إنترنت الأشياء باستخدام لوحة الأشياء: 8 خطوات
مراقبة IoT Pool with ThingsBoard: سيوضح هذا التوجيه كيفية مراقبة الأس الهيدروجيني و ORP ودرجة حرارة تجمع أو منتجع صحي وتحميل البيانات إلى خدمة التصور والتخزين في ThingsBoard.io
المدخلات التناظرية لإنترنت الأشياء - الشروع في استخدام إنترنت الأشياء: 8 خطوات
المدخلات التناظرية لإنترنت الأشياء - الشروع في استخدام إنترنت الأشياء: يعد فهم المدخلات التناظرية جزءًا مهمًا من فهم كيفية عمل الأشياء من حولنا ، ومعظم إن لم يكن كل المستشعرات عبارة عن مستشعرات تناظرية (في بعض الأحيان يتم تحويل هذه المستشعرات إلى رقمية). على عكس المدخلات الرقمية التي يمكن تشغيلها أو إيقاف تشغيلها فقط ، فإن الإدخال التناظري