תוכן עניינים:
- שלב 1: M5Stack
- שלב 2: יישומים אפשריים M5Stack
- שלב 3: M5Stack - סיכות
- שלב 4: ספריית DHT
- שלב 5: ניהול ספריית Arduino IDE
- שלב 6: קוד המקור
- שלב 7: M5StackDHTGraph.ino
- שלב 8: M5StackDHTGraph.ino - התקנה
- שלב 9: M5StackDHTGraph.ino - לולאה
- שלב 10: קבצים
וִידֵאוֹ: ESP32: M5Stack עם DHT22: 10 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
בואו נדבר היום על ESP32 מיוחד מאוד, מושלם לאינטרנט הדברים, שהוא M5Stack. הוא מכיל את ESP32 בפנים ואף מוסיף על צג, מקלדת, מגבר, רמקול וסוללה. לפיכך, מכשיר זה יכול לבצע אינספור דברים. כשקיבלתי את החומרה הזו, כבר הייתה לי תוכנה ל- ESP32 ונותרה רק לתצוגה המשמשת בפרויקט זה, שהיא שונה. עם זאת, קוד המקור בו נשתמש הוא אותו קוד שמשמש בסרטון שלנו טמפרטורה ולחות עם תצוגת OLED.
במעגל של היום, אני רוצה במיוחד להדגיש שיש לנו את ה- M5Stack עם חיבורים חיוביים ושליליים, שמזין את עצמו עם חיישן DHT22. שניהם מחוברים באמצעות GPIO. הנתונים מוצגים בתרשים.
במאמר זה, בואו להציג את M5Stack ולדון ביישומיו. אני צריך להדגיש כי למכשיר זה יש כניסה לכרטיס מיקרו SD, רמקול 1W ושקע סוללה, ויש לו גם לחצני אינטראקציה, מחבר i2c, USB מסוג C, IOs חשופים, צג TFT בגודל שני אינץ ', בין תכונות אחרות. זה מוצג בתמונה למעלה. אנו יכולים לומר שמכשיר זה מוכן ל- IoT, מכיוון שהוא כבר מגיע עם Bluetooth ו- ESP32 WiFi. הוא כולל גם מגנט לחיבור למשטחי מתכת.
אהבת את M5Stack? לחץ:
שלב 1: M5Stack
חידוש אחד של ה- M5Stack הוא שאם תוריד את הגב תוכל להתאים למודולים שונים עם פונקציות שונות, כגון מודול ה- GPS, GSM, LoRa, בין היתר. זה מוצג בתמונה.
יש לי דוגמאות נוספות למודולים למטה, החל מ- RS485, מנוע DC, יוצר, ליבה, ועד שליטה במנועי צעד.
זו למעשה דרך מהירה מאוד להרכיב אב טיפוס. בימים ההם, היה צורך לקנות כמה שבבי טרנזיסטורים ולבצע הרכבות רבות, מה שדרש הרבה זמן והשקעה. רק לאחר מכן הגיע אבות הטיפוס של המוצר. אז הופיעו ארדואינו ופטל, שהם צלחות.
כעת, סוף סוף יש לנו את ה- M5Stack, שהיא הקופסה הסגורה המוכנה לשימוש. זה משחרר אותנו מהצורך לבצע שלבים רבים אחרים.
דגמים אחרים של M5Stack מוצגים בתמונות. יש לנו מכשיר עם מקלדות אלפאנומריות, מספריות ומשחקים. אלה מאפשרים לך לעבוד כאילו זה סוג של מחשב. יש לנו גם דוגמה להפעלת תוכנה, הניתנת לתכנות ב- MicroPython, Arduino, ESP-IDF, NodeJS, בנוסף ל- Basic.
שלב 2: יישומים אפשריים M5Stack
בין הדוגמאות של יישומי M5Stack, יש לנו את האוסילוסקופ, כפי שניתן לראות בתמונה. יש לנו גם מעין מחשבון / שולחן כלי חיתוך.
מה עם מד מהירות אופניים?
זה יכול להיות גם מקדחה מרחוק, המודפסת בתלת מימד ומנוטרת מרחוק על ידי פקד.
כל זה מראה שבקרת האלקטרוניקה הרבה יותר נוחה בימינו, בדיוק כפי שהתכנות של המעגלים האלה הפכה לקלה יותר.
שלב 3: M5Stack - סיכות
החלק האחורי של ה- M5Stack נמצא בתמונה זו, מה שמראה שהספק הוא ב -5 וולט. התמונה מגלה עוד שיש לנו את כל מה שקיים ב- ESP32 עם קישוריות.
שלב 4: ספריית DHT
השתמש ב- lib lib SimpleDHT, שהוא אותו אחד בו השתמשתי בסרטון: טמפרטורה ולחות עם תצוגת OLED.
שלב 5: ניהול ספריית Arduino IDE
ב"תפריט: סקיצה -> הוסף ספרייה -> נהל ספריות ", בואו נתקין את שתי הספריות המוצגות בתמונה למטה. זכרו שלפני כל זה, עליכם להתקין את ליבת ה- Arduino של ESP32. סרטון זה מראה לכם כיצד לעשות זאת זה: כיצד להתקין את IDE ARDUINO ב- ESP32.
שלב 6: קוד המקור
קוד המקור, כאמור, זהה לזה שהשתמשתי בו בסרטון: TEMPERATURE GRAPH WITH OLED DISPLAY. השינוי היחיד שעשיתי בפרויקט זה היה ביחס לגודל התצוגה.
שלב 7: M5StackDHTGraph.ino
אנו נכלול את ספריות M5Stack.h ו- SimpleDHT.h, ונגדיר צבעים המשמשים את התצוגה, כמו גם את סיכת הנתונים של DHT. נבנה גם אובייקט לתקשורת עם החיישן, נגדיר את המשתנה האחראי לקריאות ונציין את ערך ציר ה- X.
// Libs do M5Stack e DHT #include #include // definiçao das cores que serão utilizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define DHTPIN 5 // p // מבצע לעשות objeto עבור comunicar com או חיישן SimpleDHT22 dht; // variabel responsavel 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 #define POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definição da coordenada onde escreveremos osdeos_deos_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_de_dep que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int טמפרטורה = 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 subrairemos uma unidade na variável linha Exemplo
שלב 8: M5StackDHTGraph.ino - התקנה
בהגדרות אנו מאתחלים את M5Stack. אנו מגדירים פקודות לציור הגרף, מגדירים את הגופן וכן את צבעי הטקסט וממקמים את הסמן לכתיבה.
הגדרת void (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; // eixo Y // drawFastHLine (x, y, רוחב, צבע) linha אופקי M5. Lcd.drawFastHLine (POS_X_GRAFICO, ALTURA_GRAFICO+1, COMPRIMENTO_GRAFICO, WHITE); // eixo X // הגדרות טקסט שנועדו לשלוח כתובות M5. Lcd.setTextSize (3); // configa a cor branca para o texto M5. Lcd.setTextColor (WHITE); // posiciona o cursor for escrita M5. Lcd.setCursor (POS_X_DADOS, POS_Y_DADOS); M5. Lcd.print ("T:"); // מציין טמפרטורה 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 = אומיד; } // mapeando o valor das variáveis para colocar no gráfico // necessário pois o display tem 240px de altura e separamos apenas 180 para o gráfico // umidade pode ser lida de 0-100 int temperaturaMapeada = מפה (טמפרטורה, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = map (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 decrementamos o val // // até um valor mínimo determinado (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 ledura 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, BLACK);
// reposiciona o cursor for escrever a temperatura M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (אדום); M5. Lcd.print (טמפרטורה); הדפסה M5. Lcd. ((char) 247); // reposiciona o cursor for escrever a umidade M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); הדפסה M5. Lcd. (umidade); M5. Lcd.print ("%"); עיכוב (1000); }
שלב 10: קבצים
אהבת את M5Stack? רוצה לקנות אחד? עבור אל:
הורד את הקבצים:
INO
מוּמלָץ:
M5STACK כיצד להציג טמפרטורה, לחות ולחץ ב- M5StickC ESP32 באמצעות Visuino - קל לביצוע: 6 שלבים
M5STACK כיצד להציג טמפרטורה, לחות ולחץ ב- M5StickC ESP32 באמצעות Visuino - קל לביצוע: במדריך זה נלמד כיצד לתכנת את ESP32 M5Stack StickC עם Arduino IDE ו- Visuino להצגת הטמפרטורה, הלחות והלחץ באמצעות חיישן ENV (DHT12, BMP280, BMM150)
טמפרטורה ולחות באמצעות ESP32-DHT22-MQTT-MySQL-PHP: 7 שלבים
טמפרטורה ולחות באמצעות ESP32-DHT22-MQTT-MySQL-PHP: חברה שלי רצתה חממה, אז הכנתי לה אחת. אבל רציתי חיישן טמפרטורה ולחות בתוך החממה. אז חיפשתי דוגמאות והתחלתי להתנסות. המסקנה שלי הייתה שכל הדוגמאות שמצאתי אינן בדיוק
כיצד לתכנת ESP32 M5Stack StickC עם Arduino IDE ו- Visuino: 12 שלבים
כיצד לתכנת ESP32 M5Stack StickC עם Arduino IDE ו- Visuino: במדריך זה נלמד כיצד לתכנת את ESP32 M5Stack StickC עם Arduino IDE ו- Visuino. צפה בסרטון הדגמה
בנה מכשיר חיישן טמפרטורה של Apple HomeKit (DHT22) באמצעות RaspberryPI ו- DHT22: 11 שלבים
בנה מכשיר חיישן טמפרטורה של Apple HomeKit (DHT22) באמצעות RaspberryPI ו- DHT22: חיפשתי חיישן טמפרטורה / לחות בעלות נמוכה שאוכל להשתמש בו כדי לעקוב אחר המתרחש במרחב הזחילה שלי, מכיוון שגיליתי שהאביב הזה היה רטוב מאוד , והיה לו הרבה לחות. אז חיפשתי חיישן במחיר סביר שאוכל לעמוד בו
תצוגת ESP32 ו- OLED: שעון אינטרנט - DHT22: 10 שלבים (עם תמונות)
תצוגת ESP32 ו- OLED: שעון אינטרנט - DHT22: הוראה זו מתחרה בתחרות: " אתגר GIFs 2017 ", אם אתה אוהב את זה, אנא ציין את הצבעתך על ידי לחיצה על הבאנר שלמעלה. תודה רבה! ;-) הדרכה זו היא המשך של מסע למידע נוסף על מכשיר ה- IoT הנהדר הזה