فهرست مطالب:
- مرحله 1: تظاهرات
- مرحله 2: مونتاژ
- مرحله 3: مونتاژ - جدول
- مرحله 4: Ubidots
- مرحله 5: کتابخانه SimpleDHT
- مرحله 6: PubSubClient Library
- مرحله 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: PublishMQTT
- مرحله 21: CreateJsonString
- مرحله 22: ShowDataOnDisplay
- مرحله 23: فایل ها
تصویری: IOT با شبکه تلفن همراه با ESP32: 23 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
امروز ما در مورد مودم GPRS یا به عبارت بهتر ESP32 و استفاده از آن در شبکه تلفن همراه بحث خواهیم کرد. این چیزی است که بسیار خوب کار می کند. با استفاده از پروتکل MQTT ، داده ها را به داشبورد Ubidots ارسال می کنیم. در این مجموعه ، علاوه بر SIM800L و تراشه تلفن همراه ، از صفحه نمایش برای بازخورد مدار استفاده کنید. بنابراین ، با این پروژه ، داده های دما و رطوبت را از طریق GPRS و MQTT ارسال می کنیم و داده ها را در نمودار خطی تجسم می کنیم.
مرحله 1: تظاهرات
مرحله 2: مونتاژ
مرحله 3: مونتاژ - جدول
مرحله 4: Ubidots
مرحله 5: کتابخانه SimpleDHT
در Arduino IDE ، به Sketch-> Include Library-> Manage Libraries بروید…
SimpleDHT را نصب کنید
مرحله 6: PubSubClient Library
در 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 شوید و بر روی Devices کلیک کنید
روی دکمه "+" در گوشه بالا سمت راست کلیک کنید
روی خالی کلیک کنید
نام دستگاه را وارد کنید. به "برچسب دستگاه" توجه کنید ، زیرا این مورد در "موضوع" مورد استفاده ما در.ino استفاده می شود
در لیست دستگاه ها ، دستگاهی که به تازگی ایجاد کرده اید ظاهر می شود. روی آن کلیک کنید.
در صفحه ای که ظاهر می شود ، روی "افزودن متغیر" کلیک کنید. یک پنجره بازشو ظاهر می شود. روی "خام" کلیک کنید.
روی کادر متن کلیک کنید و نام ویژگی را وارد کنید.
باید دقیقاً همان چیزی باشد که ما در json of.ino ارسال می کنیم. این کار را برای ویژگی دیگر تکرار کنید.
با کلیک روی لوگوی Ubidots به داشبورد بازگردید.
در داشبورد ، روی "افزودن ویجت جدید" کلیک کنید
در لیست ابزارک ها ، "محور دوگانه" را انتخاب کنید
مرحله 11: تغییر داده ها در.ino
مرحله 12: GPRS_ESP32_DHT.ino - اعلامیه ها و متغیرها
#تعریف 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-abcdefghijklmosopo12modopo12 (esp32_gprs é o nome do dispositivo no Ubidots) #تعریف موضوع "/v1.6/devices/esp32_gprs" // id do dispositivo que pegamos no painel do Ubidots #define DEVICE_ID "5c01234567890abc12345678" // doT 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 // سریال سریال que vamos usar para comunicarmos com o modem. استفاده از semper 1 HardwareSerial SerialGSM (1)؛ modemGSM TinyGsm (SerialGSM) ؛ TinyGsmClient gsmClient (modemGSM) ؛ // Cliente MQTT، passamos a url do server، a porta // e o cliente GSM PubSubClient client (MQTT_SERVER، MQTT_PORT، gsmClient)؛ // Tempo em que o último envio/refresh foi feito uint32_t lastTime = 0؛ رطوبت شناور ؛ // Variável onde iremos armazenar o valor da umidade temperature float؛ // Variável onde iremos armazenar o valor da temperatura SimpleDHT22 dht؛ // Objeto que realizará a leitura da umidade e temperatura
مرحله 14: راه اندازی
void setup () {Serial.begin (115200)؛ setupDisplay ()؛ // Inicializa e configura o display setupGSM ()؛ // Inicializa e configura یا modem GSM connectMQTTServer ()؛ // Conectamos ao mqtt server // Espera 2 segundos e limpamos o display delay (2000)؛ display.fillScreen (TFT_BLUE) ؛ display.setCursor (0 ، 0) ؛ }
مرحله 15: SetupDisplay
void 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 ("Setup Display Complete") ؛ }
مرحله 16: SetupGSM
void setupGSM () {display.println ("راه اندازی GSM …")؛ // Inicializamos a serial 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 ("اتصال به شبکه ناموفق بود")؛ تاخیر (10000) ؛ ESP.restart ()؛ برگشت؛ } // Conecta à rede gprs (APN، usuário، senha) if (! modemGSM.gprsConnect (""، ""، "")) {display.println ("GPRS Connection Failed")؛ تاخیر (10000) ؛ ESP.restart ()؛ برگشت؛ } display.println ("راه اندازی GSM با موفقیت") ؛ }
مرحله 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 ("متصل")؛ } else {// Se ocorreu algum erro display.print ("error =")؛ display.println (client.state ())؛ تاخیر (10000) ؛ ESP.restart ()؛ }}
مرحله 18: حلقه کنید
void loop () {// Faz a leitura da umidade e temperatura readDHT ()؛ // اگر می خواهید (! client.connected ()) {// Mandamos conectar connectMQTTServer () را سرور MQTT انجام دهید } // Tempo decorrido desde o boot em milissegundos unsigned long now = millis ()؛ // Se passou o intervalo de envio if (now - lastTime> INTERVAL) {// Publicamos para o server mqtt publishedMQTT ()؛ // Mostramos os dados no display showDataOnDisplay ()؛ // Atualizamos o tempo em que foi feito o último envio lastTime = now؛ }}
مرحله 19: ReadDHT
void 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؛ رطوبت = h ؛ }}
مرحله 20: PublishMQTT
void publishedMQTT () {// 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 = "{"؛ if (! isnan (رطوبت) &&! isnan (دما)) {data+= "\" رطوبت / ":"؛ داده+= رشته (رطوبت ، 2) ؛ داده+= "،"؛ data+= "\" دما / ":"؛ داده+= رشته (دما ، 2) ؛ } data+= "}"؛ بازگشت داده ها ؛ }
مرحله 22: ShowDataOnDisplay
void showDataOnDisplay () {// Reseta a posição do cursor e mostra umidade e temperatura lidas display.setCursor (0، 0، 2)؛ display.println ("رطوبت:" + رشته (رطوبت ، 2)) ؛ display.println ("دما:" + رشته (دما ، 2)) ؛ }
مرحله 23: فایل ها
فایلها را بارگیری کنید
من نه
توصیه شده:
بیدار شدن در شبکه LAN هر رایانه ای از طریق شبکه بی سیم: 3 مرحله
Wake on LAN Any Computer over Wireless Network: این آموزش دیگر به دلیل تغییرات در تصویر Raspbpian دیگر به روز نیست. لطفاً آموزش به روز شده را اینجا دنبال کنید: https://www.instructables.com/id/Raspberry-Pi-As-Wake-on-LAN-ServerWOL امروزه تقریباً در تمام پورت های اترنت وجود دارد. این نیست
باتری یا منبع تغذیه خارجی تلفن همراه/تلفن همراه خود را تغذیه کنید: 3 مرحله
برق رسانی به تلفن همراه/تلفن همراه با باتری یا منبع تغذیه خارجی: مقدمه. این ایده تنها در صورتی با گوشی یا تبلت کار می کند که باتری قابل جدا شدن باشد. البته رعایت قطبیت مهم است. لطفاً مراقب باشید که از طریق بی دقتی به دستگاه خود آسیب نرسانید. اگر از توانایی خود در انجام این کار مطمئن نیستید ،
تطبیق یک گوشی تلفن همراه با تلفن همراه: 7 مرحله (همراه با تصاویر)
انطباق یک گوشی تلفن همراه با یک تلفن همراه: توسط بیل ریو ([email protected]) اقتباس شده برای دستورالعمل ها توسط موس ([email protected]) سلب مسئولیت: روش شرح داده شده در اینجا ممکن است برای شما کارساز نباشد گرفتن. اگر کار نمی کند ، یا اگر چیزی را خراب می کنید ، m نیست
گیره تلفن ورودی مستقیم تلفن همراه: 10 مرحله
گهواره تلفن ورودی مستقیم تلفن همراه: می دانم. جهان به همان اندازه که من به سوراخ سرم احتیاج دارم ، به یک نگهدارنده تلفن همراه دیگر نیاز دارد. به طرز تکان دهنده ای ، من نتوانستم یک نگهدارنده تلفن همراه برای کامیون خود پیدا کنم که مناسب نیازهای من باشد. فکر نمی کردم نیازهای من آنقدر عجیب باشد ، اما نتوانستم پیدا کنم
غرفه تاریخ شفاهی از تلفن تلفن عتیقه: 11 مرحله (همراه با تصاویر)
غرفه تاریخ شفاهی از یک تلفن تلفن عتیقه: خنده دار است که چگونه یک پروژه عالی به پروژه دیگری می انجامد. پس از نشان دادن قفسه حافظه صوتی خود در بوستون میکرز (سازنده شهر من) ، یکی از هنرمندان شهر 2018 در Residence از من پرسید که علاقه مند به ساختن یک تلفن تاریخ شفاهی هستم