Turinys:
- 1 žingsnis: „M5Stack“
- 2 veiksmas: „M5Stack“galimos programos
- 3 žingsnis: „M5Stack“- smeigtukai
- 4 žingsnis: DHT biblioteka
- 5 veiksmas: valdykite „Arduino IDE“biblioteką
- 6 žingsnis: šaltinio kodas
- 7 žingsnis: M5StackDHTGraph.ino
- 8 veiksmas: „M5StackDHTGraph.ino“- sąranka
- 9 veiksmas: „M5StackDHTGraph.ino“- kilpa
- 10 veiksmas: failai
Video: ESP32: M5 Dėklas su DHT22: 10 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Šiandien pakalbėkime apie labai ypatingą ESP32, puikiai tinkantį daiktų internetui, tai yra „M5Stack“. Jame yra ESP32 viduje ir netgi papildomas ekranas, klaviatūra, stiprintuvas, garsiakalbis ir baterija. Taigi, šis prietaisas gali atlikti daugybę dalykų. Kai gavau šią aparatinę įrangą, jau turėjau programinę įrangą ESP32 ir perkeliau tik į šiame projekte naudojamą ekraną, kuris skiriasi. Tačiau šaltinio kodas, kurį naudosime, yra tas pats, kuris buvo naudojamas vaizdo įraše TEMPERATŪRA IR DRĖGMĖ SU OLED EKRANU.
Šiandienos grandinėje konkrečiai noriu pabrėžti, kad turime „M5Stack“su teigiamomis ir neigiamomis jungtimis, kurios maitina save DHT22 jutikliu. Abu yra sujungti GPIO. Duomenys rodomi diagramoje.
Šiame straipsnyje pristatysime „M5Stack“ir aptarkime jo taikymo sritis. Turiu pabrėžti, kad šiame įrenginyje yra „micro SD“kortelės įvestis, 1 W garsiakalbis ir akumuliatoriaus lizdas, taip pat yra sąveikos mygtukai, „i2c“jungtis, C tipo USB, atviros IO, dviejų colių TFT ekranas, be kitų savybių. Tai parodyta aukščiau esančiame paveikslėlyje. Galime pasakyti, kad šis įrenginys yra paruoštas daiktų internetui, nes jame jau yra „Bluetooth“ir ESP32 „WiFi“. Jame taip pat yra magnetas, skirtas tvirtinti prie metalinių paviršių.
Ar jums patiko „M5Stack“? Spustelėkite:
1 žingsnis: „M5Stack“
Viena „M5Stack“naujovė yra ta, kad jei nuimsite nugarą, galėsite tilpti į skirtingus modulius su skirtingomis funkcijomis, pavyzdžiui, GPS modulį, GSM, „LoRa“. Tai parodyta paveikslėlyje.
Žemiau turiu daugiau modulių pavyzdžių, pradedant RS485, DC varikliu, gamintoju, branduoliu ir baigiant žingsninio variklio valdymu.
Tai iš tikrųjų yra labai greitas prototipo surinkimo būdas. Senais laikais reikėjo nusipirkti keletą tranzistorių lustų ir atlikti daugybę surinkimų, o tai pareikalavo daug laiko ir investicijų. Tik po to atsirado produkto prototipas. Būtent tada pasirodė „Arduino“ir „Raspberry“, kurios yra lėkštės.
Dabar pagaliau turime „M5Stack“, tai yra paruošta naudoti uždaryta dėžutė. Tai išlaisvina mus nuo kitų nesuskaičiuojamų veiksmų.
Kiti „M5Stack“modeliai rodomi paveikslėliuose. Turime įrenginį su raidinėmis ir skaitmeninėmis, skaitmeninėmis ir žaidimų klaviatūromis. Tai leidžia jums dirbti taip, tarsi tai būtų tam tikras kompiuteris. Taip pat turime programinės įrangos veikimo pavyzdį, kurį, be „Basic“, galima užprogramuoti „MicroPython“, „Arduino“, ESP-IDF, „NodeJS“.
2 veiksmas: „M5Stack“galimos programos
Tarp „M5Stack“programų pavyzdžių turime osciloskopą, kaip matote paveikslėlyje. Mes taip pat turime tam tikrą skaičiuoklės / pjovimo įrankių lentelę.
O kaip dviračio spidometras?
Tai taip pat gali būti nuotolinis grąžtas, atspausdintas 3D formatu ir valdomas nuotoliniu būdu.
Visa tai rodo, kad elektronikos valdymas šiais laikais yra daug pigesnis, kaip ir šių grandinių programavimas tapo lengvesnis.
3 žingsnis: „M5Stack“- smeigtukai
„M5Stack“galinė dalis yra šiame paveikslėlyje, o tai rodo, kad galia yra 5 voltai. Vaizdas taip pat atskleidžia, kad mes turime viską, kas egzistuoja ESP32 su ryšiu.
4 žingsnis: DHT biblioteka
Naudokite „SimpleDHT lib“, tą patį, kurį naudoju vaizdo įraše: TEMPERATŪRA IR DRĖGMĖ SU OLED EKRANU.
5 veiksmas: valdykite „Arduino IDE“biblioteką
Skiltyje „Meniu: eskizas -> Pridėti biblioteką -> Tvarkyti bibliotekas“įdiekime dvi bibliotekas, parodytas žemiau esančiame paveikslėlyje. Atminkite, kad prieš visa tai turite įdiegti ESP32 „Arduino“branduolį. Šiame vaizdo įraše parodyta, kaip tai padaryti it: KAIP ĮRENGTI ARDUINO IDE ESP32.
6 žingsnis: šaltinio kodas
Šaltinio kodas, kaip minėta, yra tas pats, kurį naudojau vaizdo įraše: TEMPERATŪROS GRAFIKA SU OLED DISPLAY. Vienintelis šio projekto pakeitimas buvo susijęs su ekrano dydžiu.
7 žingsnis: M5StackDHTGraph.ino
Įtrauksime M5Stack.h ir SimpleDHT.h bibliotekas, apibrėžsime ekrane naudojamas spalvas, taip pat DHT duomenų smeigtuką. Mes taip pat sukonstruosime objektą ryšiui su jutikliu, nustatysime kintamąjį, atsakingą už rodmenis, ir nurodysime X ašies vertę.
// Libs do M5Stack e DHT #include #include // definição das cores que serão utilizadas #define BLACK 0x0000 #define RED 0xF800 #define CYAN 0x07FF #define GELTONA 0xFFE0 #define WHITE 0xFFFFf # # // construtor do 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;
Tęsiame X ašies ir Y ašies padėties apibrėžimus, temperatūros ir drėgmės duomenų rodymo koordinates, taip pat kintamuosius, kurie išsaugos nuskaitytas vertes. Mes vis dar nurodome kintamąjį, kad diagramą spausdintume ekrane.
// apibrėžimai, padedantys nustatyti padėtį X e Y #apibrėžti POS_X_GRAFICO 30 #define POS_Y_GRAFICO 3 #define ALTURA_GRAFICO 180 #define COMPRIMENTO_GRAFICO 270 // definição da coordenada onde escredeados POS que armazenarão os valores lidos da umidade e temperatura int umidade = 0; int temperatura = 0; // varável que armazenará o valor da coordenada Y para desenharmos uma linha de examplelo // 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 veiksmas: „M5StackDHTGraph.ino“- sąranka
Sąrankoje inicijuojame „M5Stack“. Mes apibrėžiame grafiko piešimo komandas, sukonfigūruojame šriftą ir teksto spalvas bei nustatome žymeklį rašymui.
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, plotis, spalva) 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); // konfigūruoti tekstą M5. Lcd.setTextColor (BALTA); // pozicija arba žymeklis, 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 veiksmas: „M5StackDHTGraph.ino“- kilpa
Pirmoje ciklo dalyje mes skaitome temperatūrą ir drėgmę, priskiriame kintamųjų vertę, kad jie būtų išdėstyti grafike, ir ekrane nupiešiame tašką, nurodantį šias vertes, nuskaitytas iš jutiklio.
void loop () {// Fazemos a leitura da temperatura e umiade float temp, umid; int būsena = dht.read2 (DHTPIN, & temp, & umid, NULL); if (status == SimpleDHTErrSuccess) {temperatura = temp; umidade = umid; } // mapeando o valor das variáveis para colocar no gráfico // būtinasis vaizdas arba ekrano rodymas 240 pikselių ir atskiros apramos 180 para arba gráfico // umidade pode ser lida de 0-100 int temperaturaMapeada = map (temperatura, 0, 100, 0, ALTURA_GRAFICO); int umidadeMapeada = žemėlapis (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 examplelo que fica variando M5. Lcd.drawPixel (POS_X_GRAFICO+leituraAtual, ALTURA_GRAFICO-linhaExemplo, GELTONA);
Tada mes apibrėžiame grafikos spausdinimo ekrane galimybes.
// aqui controlamos nossa linha de examplelo, 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; // padidėjimas 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 á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);
// repozicija arba žymeklis, norint išgauti temperatūrą M5. Lcd.setCursor (POS_X_DADOS+50, POS_Y_DADOS); M5. Lcd.setTextColor (RAUDONA); M5. Lcd.print (temperatūra); M5. Lcd.print ((char) 247); // repozicionavimas arba žymeklio paleidimas umidade M5. Lcd.setCursor (POS_X_DADOS+165, POS_Y_DADOS); M5. Lcd.setTextColor (CYAN); M5. Lcd.print (umidade); M5. Lcd.print ("%"); vėlavimas (1000); }
10 veiksmas: failai
Ar jums patiko „M5Stack“? Norite nusipirkti? Eikite į:
Atsisiųskite failus:
AŠ NE
Rekomenduojamas:
„Lego Raspberry Pi“pritaikytas dėklas: 19 žingsnių
„Lego Raspberry Pi“individualus dėklas: Neseniai nusipirkau „Raspberry Pi 3“ir nusprendžiau, kad noriu sukurti savo individualų dėklą. Kaip 4 metų tėvas, man taip pat priklauso didelis „Lego“kiekis :) Tai tiesiog tobula! Taigi po daugelio prototipų sugalvojau kažką, kuo esu labai laimingas
„Raspberry Pi“rotacinis telefono dėklas: 10 žingsnių (su nuotraukomis)
„Raspberry Pi“rotacinis telefono dėklas: Aš ieškojau smagaus savo „Raspberry Pi“projekto ir nusprendžiau, kad dėklas bus įdomus. Radau seną rotacinį telefoną ir pavertiau jį „Pi“dėklu. Man reikėjo maždaug 40 USD vertės dalių, galbūt galėsite tai padaryti pigiau. Visas projektas užtruko
Sukurkite „Apple HomeKit“temperatūros jutiklio (DHT22) įrenginį naudodami „RaspberryPI“ir DHT22: 11 žingsnių
Sukurkite „Apple HomeKit“temperatūros jutiklio (DHT22) įrenginį naudodami „RaspberryPI“ir DHT22: Ieškojau nebrangaus temperatūros / drėgmės jutiklio, kuriuo galėčiau stebėti, kas vyksta mano nuskaitymo erdvėje, nes pastebėjau, kad šį pavasarį buvo labai drėgna , ir turėjo daug drėgmės. Taigi aš ieškojau nebrangaus jutiklio, kurį galėčiau
Akustinis „Levitator“dėklas: 14 žingsnių (su nuotraukomis)
Akustinis levitatoriaus dėklas: Akustinis levitatorius iš Asier Marzo yra labai populiarus dalykas čia dėl instrukcijų. Aš jį sukūriau, jis veikė, bet pastebėjau keletą problemų. Pavyzdžiui: 3D spausdinta erdvė tarp dubenų yra šiek tiek trapi. Levitatorius negali
Anglies pluošto mobiliojo telefono dėklas: 14 žingsnių
Anglies pluošto mobiliojo telefono dėklas: šis dėklas buvo pagamintas naudojant anglies pluoštą, epoksidinį sluoksnį ir vakuuminį maišelį. Šiam projektui jums reikalingos medžiagos: -Vinilo pirštinės-nitrilinės pirštinės-akių apsauga-telefono dėklas, kurį norite imituoti,-paspauskite „N“antspaudą („Glad“),-Paryžiaus gipsas-„Popsicle stick“(o