فهرست مطالب:

ESP32: M5Stack با DHT22: 10 مرحله
ESP32: M5Stack با DHT22: 10 مرحله

تصویری: ESP32: M5Stack با DHT22: 10 مرحله

تصویری: ESP32: M5Stack با DHT22: 10 مرحله
تصویری: M5Stack Core2 ESP32. Карманный программируемый компьютер 2024, جولای
Anonim
Image
Image
ESP32: M5Stack با DHT22
ESP32: M5Stack با DHT22
ESP32: M5Stack با DHT22
ESP32: M5Stack با DHT22

بیایید امروز در مورد یک ESP32 بسیار ویژه ، مناسب برای اینترنت اشیاء ، که M5Stack است ، صحبت کنیم. این شامل ESP32 در داخل است و حتی صفحه نمایش ، صفحه کلید ، تقویت کننده ، بلندگو و باتری را اضافه می کند. بنابراین ، این دستگاه می تواند کارهای بی شماری انجام دهد. وقتی این سخت افزار را دریافت کردم ، قبلاً نرم افزاری برای ESP32 داشتم و فقط روی صفحه نمایش استفاده شده در این پروژه منتقل کردم ، که متفاوت است. با این حال ، کد منبع مورد استفاده ما همان کد مورد استفاده در دما و رطوبت ویدئویی ما با صفحه نمایش OLED است.

در مدار امروز ، من به طور خاص می خواهم تأکید کنم که ما M5Stack با اتصالات مثبت و منفی داریم که خود را با سنسور DHT22 تغذیه می کند. هر دو توسط GPIO متصل می شوند. داده ها در نمودار نمایش داده می شوند.

در این مقاله ، اجازه دهید M5Stack را معرفی کرده و درباره کاربردهای آن بحث کنیم. لازم است تأکید کنم که این دستگاه دارای ورودی برای کارت میکرو SD ، بلندگوی 1 وات و سوکت باتری است و همچنین دارای دکمه های تعامل ، اتصال i2c ، USB نوع C ، IO های در معرض دید ، صفحه نمایش TFT دو اینچی ، در میان ویژگی های دیگر در تصویر بالا نشان داده شده است. می توان گفت این دستگاه برای IoT آماده است ، زیرا از قبل دارای بلوتوث و ESP32 WiFi است. همچنین دارای آهنربا برای اتصال به سطوح فلزی است.

آیا M5Stack را دوست داشتید؟ کلیک کنید:

مرحله 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

یکی از نوآوری های M5Stack این است که اگر پشت را بردارید ، می توانید در ماژول های مختلف با عملکردهای مختلف مانند ماژول GPS ، GSM ، LoRa و سایر موارد قرار بگیرید. این در تصویر نشان داده شده است.

نمونه های بیشتری از ماژول ها در زیر دارم ، از RS485 ، DC Motor ، Maker ، Core ، تا کنترل موتور پله ای.

این در واقع یک راه بسیار سریع برای جمع آوری نمونه اولیه است. در روزهای گذشته ، خرید چند تراشه ترانزیستور و انجام مجموعه های متعدد ضروری بود ، که نیاز به زمان و سرمایه گذاری زیادی داشت. تنها پس از نمونه اولیه محصول آمد. در آن زمان بود که آردوینو و تمشک ظاهر شدند ، که بشقاب هستند.

اکنون ، ما سرانجام M5Stack را داریم ، که این جعبه بسته آماده استفاده است. این ما را از انجام مراحل بی شمار دیگر رهایی می بخشد.

سایر مدلهای M5Stack در تصاویر نشان داده شده است. ما دستگاهی با صفحه کلیدهای الفبایی ، عددی و بازی داریم. اینها به شما اجازه می دهند طوری کار کنید که انگار یک نوع کامپیوتر است. ما همچنین یک نمونه نرم افزار در حال اجرا داریم که می تواند علاوه بر Basic در MicroPython ، Arduino ، ESP-IDF ، NodeJS برنامه ریزی شود.

مرحله 2: برنامه های کاربردی احتمالی M5Stack

M5Stack برنامه های کاربردی احتمالی
M5Stack برنامه های کاربردی احتمالی
M5Stack برنامه های کاربردی احتمالی
M5Stack برنامه های کاربردی احتمالی
M5Stack برنامه های کاربردی احتمالی
M5Stack برنامه های کاربردی احتمالی

در میان نمونه های برنامه های M5Stack ، ما اسیلوسکوپ داریم ، همانطور که در تصویر مشاهده می کنید. ما همچنین یک نوع ماشین حساب / جدول ابزار برش داریم.

سرعت سنج دوچرخه چطور؟

همچنین می تواند یک مته از راه دور باشد که به صورت سه بعدی چاپ شده و توسط کنترل از راه دور کنترل می شود.

همه اینها نشان می دهد که کنترل الکترونیکی این روزها بسیار مقرون به صرفه است ، همانطور که برنامه ریزی این مدارها آسان تر شده است.

مرحله 3: M5Stack - پین

M5Stack - پین ها
M5Stack - پین ها

پشت M5Stack در این تصویر قرار دارد که نشان می دهد قدرت 5 ولت است. تصویر بیشتر نشان می دهد که ما همه چیزهایی را که در ESP32 وجود دارد با قابلیت اتصال داریم.

مرحله 4: کتابخانه DHT

کتابخانه DHT
کتابخانه DHT

از lib SimpleDHT استفاده کنید ، همان چیزی که من در ویدیو استفاده کردم: دما و رطوبت با صفحه نمایش OLED.

مرحله 5: مدیریت کتابخانه Arduino IDE

مدیریت کتابخانه Arduino IDE
مدیریت کتابخانه Arduino IDE

در "Menu: Sketch -> Add Library -> Manage Libraries" بیایید دو کتابخانه نشان داده شده در تصویر زیر را نصب کنیم. به یاد داشته باشید که قبل از همه اینها ، باید هسته Arduino ESP32 را نصب کنید. این ویدئو نحوه انجام کار را به شما نشان می دهد. it: نحوه نصب ARDUINO IDE در ESP32.

مرحله 6: کد منبع

کد منبع ، همانطور که ذکر شد ، همان است که من در ویدیو استفاده کردم: نمودار دما با نمایشگر OLED. تنها تغییری که در این پروژه ایجاد کردم مربوط به اندازه صفحه نمایش بود.

مرحله 7: M5StackDHTGraph.ino

ما کتابخانه های M5Stack.h و SimpleDHT.h را قرار خواهیم داد و رنگهای مورد استفاده در صفحه نمایش و همچنین پین داده DHT را مشخص خواهیم کرد. ما همچنین یک شی برای ارتباط با سنسور ایجاد می کنیم ، متغیر مسئول قرائت ها را مشخص می کنیم و مقدار محور X را نشان می دهیم.

// Libs do M5Stack e DHT #include #include // definição das cores que serão χρήση // construtor do objeto para comunicar com o sensor SimpleDHT22 dht؛ // variável responsavel for contar o número de leituras realizadas e indicador do valor no eixo X int leituraAtual = 1؛

ما با تعاریف موقعیت محور X و Y ، مختصات نمایش داده دما و رطوبت و همچنین متغیرهایی که مقادیر خوانده شده را ذخیره می کنند ، ادامه می دهیم. ما هنوز به متغیر برای چاپ نمودار روی صفحه اشاره می کنیم.

// definições do posicionamento dos eixos X e Y #define POS_X_GRAFICO 30 #تعریف POS_Y_GRAFICO 3 #تعریف ALTURA_GRAFICO 180 #تعریف COMPRIMENTO_GRAFICO 270 // definição da koordenada onde escreveremos os deosdeosfosos que armazenarão os valores lidos da umidade e temperatura int umidade = 0؛ int temperatura = 0؛ // variável que armazenará o valor da coordenada Y para desenharmos uma linha de exemplo // que varia os valores de 1 em 1 int linhaExemplo = 20؛ int fator = 1؛ // indicará se somaremos ou subtrairemos uma unidade na variável linhaExemplo

مرحله 8: M5StackDHTGraph.ino - راه اندازی

در Setup ، M5Stack را مقداردهی اولیه می کنیم. ما دستوراتی را برای رسم نمودار تعریف می کنیم ، فونت و همچنین رنگ متن را پیکربندی می کنیم و مکان نما را برای نوشتن قرار می دهیم.

void setup (void) {Serial.begin (115200)؛ // Inicializa o M5Stack M5.begin ()؛ // pinta a tela toda de preto M5. Lcd.fillScreen (BLACK) ؛ // os comandos a seguir irão desenhar as linhas dos eixos cartesianos na cor branca // drawFastVLine (x، y، width، color) linha vertical M5. Lcd.drawFastVLine (POS_X_GRAFICO، POS_Y_GRAFICO، ALTURA_GRAFICO، WHITE؛ // eixo Y // drawFastHLine (x ، y ، عرض ، رنگ) linha horizontal M5. Lcd.drawFastHLine (POS_X_GRAFICO، ALTURA_GRAFICO+1 ، COMPRIMENTO_GRAFICO ، WHITE) ؛ // eixo X // configura o tamnaho do texto que escreveremos em tela M5. Lcd.setTextSize (3) ؛ // configura a cor branca para o texto M5. Lcd.setTextColor (WHITE) ؛ // posiciona o cursor para escrita M5. Lcd.setCursor (POS_X_DADOS ، POS_Y_DADOS) ؛ M5. Lcd.print ("T:") ؛ // indicando a temperatura M5. Lcd.setCursor (POS_X_DADOS+105 ، POS_Y_DADOS) ؛ M5. Lcd.print ("U:") ؛ // indicando a umidade}

مرحله 9: M5StackDHTGraph.ino - حلقه

در قسمت اول حلقه ، دما و رطوبت را می خوانیم ، مقدار متغیرها را برای قرار دادن روی نمودار ترسیم می کنیم و نقطه ای را روی صفحه ترسیم می کنیم که به این مقادیر خوانده شده از سنسور اشاره دارد.

void loop () {// Fazemos a leitura da temperatura e umiade float temp، umid؛ int status = dht.read2 (DHTPIN ، & temp ، & umid ، NULL) ؛ if (status == SimpleDHTErrSuccess) {temperatura = temp؛ umidade = umid؛ } // mapeando o valor das variáveis para colocar no gráfico // needário pois o display 240 px de altura e separamos apenas 180 para o gráfico // umidade pode ser lida de 0-100 int temperaturaMapeada = نقشه (temperatura، 0، 100، 0 ، ALTURA_GRAFICO) ؛ int umidadeMapeada = نقشه (umidade، 0، 100، 0، ALTURA_GRAFICO)؛ // desenha na tela o ponto referente aos valores lidos do sensor M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual، ALTURA_GRAFICO-temperaturaMapeada، RED) ؛ M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual ، ALTURA_GRAFICO-umidadeMapeada ، CYAN) ؛ // desenha na tela o ponto referente a nossa linha de exemplo que fica variando M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual، ALTURA_GRAFICO-linhaExemplo، YELLOW) ؛

سپس ، ما امکانات چاپ گرافیک را بر روی صفحه نمایش تعریف می کنیم.

// aqui controlamos nossa linha de exemplo، quando chega no valor máximo decmentamos o valor // até um valor mínimo determinado (no nosso caso 10)، e a partir daí، incrementa novamente if (linhaExemplo == 50) fator = -1؛ else if (linhaExemplo == 10) fator = 1؛ // soma o valor de linhaExemplo linhaExemplo += fator؛ // incrementa o contador de leituras realizadas leituraAtual ++؛ // se a leitura chegar em 270 (número máximo do eixo X) então limparemos a área do gráfico para voltarmos a desenhar. if (leituraAtual == 270) {// limpa a torea toda do gráfico M5. Lcd.fillRect (POS_X_GRAFICO+1، POS_Y_GRAFICO-1، COMPRIMENTO_GRAFICO، ALTURA_GRAFICO-1، BLACK)؛ leituraAtual = 1 ؛ // volta o contador de leitura para 1 (nova coordenada X)} // limpa a área onde colocamos o valor da temperatura e da umidade M5. Lcd.fillRect (POS_X_DADOS+50 ، POS_Y_DADOS ، 60 ، 30 ، BLACK) ؛ M5. Lcd.fillRect (POS_X_DADOS+165 ، POS_Y_DADOS ، 90 ، 30 ، BLACK) ؛

// reposiciona o cursor para escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS+50 ، POS_Y_DADOS) ؛ M5. Lcd.setTextColor (RED) ؛ M5. Lcd.print (temperatura) ؛ M5. Lcd.print ((char) 247) ؛ // reposiciona o cursor para escrever a umidade M5. Lcd.setCursor (POS_X_DADOS+165، POS_Y_DADOS)؛ M5. Lcd.setTextColor (CYAN) ؛ M5. Lcd.print (umidade) ؛ M5. Lcd.print ("٪") ؛ تاخیر (1000) ؛ }

مرحله 10: فایل ها

آیا M5Stack را دوست داشتید؟ می خواهید یکی بخرید؟ به آدرس: https://goo.gl/ruoYVj بروید

دانلود فایلها:

PDF

من نه

توصیه شده: