جدول المحتويات:

ESP32: M5Stack مع DHT22: 10 خطوات
ESP32: M5Stack مع DHT22: 10 خطوات

فيديو: ESP32: M5Stack مع DHT22: 10 خطوات

فيديو: ESP32: M5Stack مع DHT22: 10 خطوات
فيديو: 001 - MicroPython TechNotes: Get Started with MicroPython 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 ونناقش تطبيقاته. أحتاج إلى التأكيد على أن هذا الجهاز يحتوي على مدخل لبطاقة micro SD ، ومكبر صوت 1 واط ، ومقبس بطارية ، ويحتوي أيضًا على أزرار تفاعل ، وموصل i2c ، و USB من النوع C ، و IOs مكشوفة ، وشاشة TFT بحجم 2 بوصة ، من بين ميزات أخرى. يظهر في الصورة أعلاه. يمكننا القول أن هذا الجهاز جاهز لـ IoT ، لأنه يأتي بالفعل مع Bluetooth و ESP32 WiFi. يتضمن أيضًا مغناطيسًا للتثبيت على الأسطح المعدنية.

هل أحببت M5Stack؟ انقر فوق:

الخطوة 1: M5Stack

M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack
M5Stack

يتمثل أحد ابتكارات M5Stack في أنه إذا خلعت الجزء الخلفي ، يمكنك تركيب وحدات مختلفة بوظائف مختلفة ، مثل وحدة GPS و GSM و LoRa وغيرها. يظهر هذا في الصورة.

لدي المزيد من الأمثلة على الوحدات أدناه ، بدءًا من RS485 ، و DC Motor ، و Maker ، و Core ، إلى التحكم في محرك السائر.

هذه في الواقع طريقة سريعة جدًا لتجميع نموذج أولي. في الأيام الخوالي ، كان من الضروري شراء العديد من رقائق الترانزستور وإجراء العديد من التجميعات ، الأمر الذي يتطلب الكثير من الوقت والاستثمار. فقط بعد ظهور النماذج الأولية للمنتج. عندها ظهر Arduino و Raspberry ، وهما لوحات.

الآن ، لدينا أخيرًا M5Stack ، وهو صندوق مغلق جاهز للاستخدام. هذا يحررنا من الاضطرار إلى القيام بخطوات أخرى لا حصر لها.

يتم عرض موديلات M5Stack الأخرى في الصور. لدينا جهاز به لوحات مفاتيح أبجدية رقمية وأرقام ولعبة. يتيح لك ذلك العمل كما لو كان نوعًا من أجهزة الكمبيوتر. لدينا أيضًا مثال على البرامج قيد التشغيل ، والتي يمكن برمجتها في MicroPython و Arduino و ESP-IDF و NodeJS ، بالإضافة إلى Basic.

الخطوة 2: تطبيقات M5Stack الممكنة

تطبيقات M5Stack الممكنة
تطبيقات M5Stack الممكنة
تطبيقات M5Stack الممكنة
تطبيقات M5Stack الممكنة
تطبيقات M5Stack الممكنة
تطبيقات M5Stack الممكنة

من بين أمثلة تطبيقات M5Stack ، لدينا راسم الذبذبات ، كما ترون في الصورة. لدينا أيضًا نوع من طاولة الآلة الحاسبة / أدوات القطع.

ماذا عن عداد السرعة للدراجة؟

يمكن أن يكون أيضًا تمرينًا عن بُعد ، يتم طباعته بأبعاد ثلاثية ومراقبته عن بُعد بواسطة عنصر تحكم.

كل هذا يدل على أن التحكم في الإلكترونيات أصبح في متناول الجميع هذه الأيام ، تمامًا كما أصبحت برمجة هذه الدوائر أسهل.

الخطوة 3: M5Stack - دبابيس

M5Stack - دبابيس
M5Stack - دبابيس

ظهر M5Stack في هذه الصورة ، مما يدل على أن الطاقة عند 5 فولت. تكشف الصورة كذلك أن لدينا كل ما هو موجود في ESP32 مع الاتصال.

الخطوة 4: مكتبة DHT

مكتبة DHT
مكتبة DHT

استخدم SimpleDHT lib ، وهو نفس الشيء الذي استخدمته في الفيديو: درجة الحرارة والرطوبة مع شاشة OLED.

الخطوة 5: إدارة مكتبة Arduino IDE

إدارة مكتبة Arduino IDE
إدارة مكتبة Arduino IDE

في "القائمة: Sketch -> Add Library -> Manage Libraries" ، دعنا نثبت المكتبتين الموضحين في الصورة أدناه. تذكر أنه قبل كل هذا ، تحتاج إلى تثبيت Arduino core لـ ESP32. يوضح لك هذا الفيديو كيفية القيام بذلك كيفية تثبيت ARDUINO IDE في ESP32.

الخطوة 6: كود المصدر

شفرة المصدر ، كما ذكرنا ، هي نفسها التي استخدمتها في الفيديو: TEMPERATURE GRAPH WITH OLED DISPLAY. كان التغيير الوحيد الذي أجريته على هذا المشروع يتعلق بحجم العرض.

الخطوة 7: M5StackDHTGraph.ino

سنقوم بتضمين مكتبات M5Stack.h و SimpleDHT.h ، وسوف نحدد الألوان المستخدمة في الشاشة ، بالإضافة إلى دبوس بيانات DHT. سنقوم أيضًا ببناء كائن للتواصل مع المستشعر ، وتحديد المتغير المسؤول عن القراءات ، والإشارة إلى قيمة المحور X.

// Libs do M5Stack e DHT # تتضمن # تضمين // definição das cores que serão utilizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFF # defino de dTPad 5 // المترجم يفعل objeto para comunicar com o sensor SimpleDHT22 dht ؛ // varável responseavel por 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 # حدد POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definição da socenada onde escreveremos os dados de Coordenada que armazenarão os valores lidos da umidade e temperature int umidade = 0 ؛ درجة الحرارة الداخلية = 0 ؛ // vará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 - الإعداد

في الإعداد ، نقوم بتهيئة M5Stack. نحدد أوامر لرسم الرسم البياني ، ونضبط الخط وكذلك ألوان النص ، ونضع المؤشر على الكتابة.

إعداد باطل (باطل) {Serial.begin (115200) ؛ // Inicializa o M5Stack M5.begin () ؛ // pinta a tela toda de preto M5. Lcd.fillScreen (أسود) ؛ // 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 الأفقي 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 درجة الحرارة M5. Lcd.setCursor (POS_X_DADOS + 105 ، POS_Y_DADOS) ؛ M5. Lcd.print ("U:") ؛ // indicando a umidade}

الخطوة 9: M5StackDHTGraph.ino - Loop

في الجزء الأول من الحلقة ، نقرأ درجة الحرارة والرطوبة ، ونرسم قيمة المتغيرات للوضع على الرسم البياني ، ونرسم النقطة على الشاشة التي تشير إلى هذه القيم المقروءة من المستشعر.

حلقة فارغة () {// Fazemos a leitura da tematura e umiade float temp، umid؛ حالة int = dht.read2 (DHTPIN ، & temp ، & umid ، NULL) ؛ إذا (الحالة == SimpleDHTErrSuccess) {درجة الحرارة = درجة الحرارة ؛ أوميداد = أوميد ؛ } // mapeando o valor das variáveis para colocar no gráfico // required pois o display tem 240px de altura eeparamos apenas 180 para o gráfico // umidade pode ser lida de 0-100 int temperatureMapeada = map (temperature، 0، 100، 0، ALTURA_GRAFICO) ؛ int umidadeMapeada = خريطة (umidade، 0، 100، 0، ALTURA_GRAFICO) ؛ // desenha na tela o ponto refente aos valores lidos do sensor M5. Lcd.drawPixel (POS_X_GRAFICO + leituraAtual، ALTURA_GRAFICO-temperatureMapeada، RED) ؛ M5. Lcd.drawPixel (POS_X_GRAFICO + leituraAtual ، ALTURA_GRAFICO-umidadeMapeada ، CYAN) ؛ // desenha na tela o ponto refente 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 decrementamos o valor // até um valor mínimo selectinado (no nosso caso 10)، e a partir daí، incrementa novamente if (linhaExemplo == 50) fator = -1؛ وإلا إذا (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. إذا (leituraAtual == 270) {// limpa a área 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 ، أسود) ؛

// reposiciona o cursor para escrever a temperature M5. Lcd.setCursor (POS_X_DADOS + 50، POS_Y_DADOS) ؛ M5. Lcd.setTextColor (أحمر) ؛ M5. Lcd.print (درجة الحرارة) ؛ 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 (أوميداد) ؛ M5. Lcd.print ("٪") ؛ تأخير (1000) ؛ }

الخطوة 10: الملفات

هل أعجبك M5Stack؟ تريد شراء واحدة؟ انتقل إلى:

قم بتنزيل الملفات:

بي دي إف

انا لا

موصى به: