Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šiame surinkime mes turime SD kortelę, prijungtą prie ESP8266. Mes įdėjome DHT22, kuris matuoja temperatūrą ir drėgmę ir siunčia šią informaciją į SD kortelę.
Grandinėje jis rodo 43,40 drėgmę ir 26,80 temperatūrą. Kiekvieną kartą, kai rodomas pranešimas „sėkmingai atidarant failą“, taip yra todėl, kad jis vieną kartą buvo paleistas cikle. Pagal šį scenarijų taip: į žurnalo failą įrašomos tik vertės, todėl pranešimas „sėkmingai atidaryti failą“yra tik patariamasis ir nėra įrašomas.
1 veiksmas: „WiFi ESP8266 NodeMcu ESP-12E“
Čia mes išsamiai aprašome komponentą, kurį naudojame, šiuo atveju „NodeMCU ESP12“, kartu su to įrenginio duomenų lapu.
2 žingsnis: drėgmės jutiklis
Iš eilės aš rodau išsamią informaciją apie šį kitą komponentą, DHT22, su atitinkamu prisegimu.
3 žingsnis: SD kortelės modulis
Tai yra mūsų SD kortelės modulis. Kaip matote iš kištuko, jis yra su SPI ryšiu.
4 žingsnis: Surinkimas
Surinkimo schema remiasi skaitytuvu DHT22, NodeMCU ESP12. Aš pasirinkau pastarąjį, nes jam reikia pagrįsto kiekio IO. Taigi, ESP01 taip pat tiktų šiam surinkimui.
5 žingsnis: bibliotekos
Šiam surinkimui jums reikia paties „Arduino IDE“DHT bibliotekos. Atsisiųsdami DHT tiesiog eikite į „Eskizas> Įtraukti biblioteką> Tvarkyti bibliotekas“. Tą patį turite padaryti ir su SD biblioteka.
6 žingsnis: šaltinio kodas
Surinkime naudojamas šaltinio kodas yra paprastas ir tik parodo, kad SD kortelė veikia. Visą įmantrumą turite įterpti vėliau, tačiau galite naudoti ir daugybę kitų funkcijų. Tačiau tai netaikoma šiam pavyzdžiui.
// biblioteka atsako į žaidimą com comunicação com o Cartão SD #include // biblioteca responseável pela comunicação com o sensor DHT22 #include // pino de dados do DHT seria ligado no D6 do esp #define DHTPIN D2 // tipo do sensor #define DHTTYPE DHT22 // construtor do objeto para comunicar com o sensor DHT dht (DHTPIN, DHTTYPE); // pino ligado ao CS do method SD Card #define CS_PIN D8;
Sąranka
Naudodami sąrankos funkciją pradėsime objekto ryšį su jutikliu, taip pat inicijuosime SD kortelę.
void setup () {Serial.begin (9600); Serial.print („Inicializando o cartão SD…“); // inicializa o objeto para comunicarmos com o sensor DHT dht.begin (); // verifica se o cartão SD está presente e se pode ser inicializado if (! SD.begin (CS_PIN)) {Serial.println ("Falha, verifique se o cartão está presente."); // programa encerrrado return; } // se chegou aqui é porque o cartão foi inicializado corretamente Serial.println ("Cartão inicializado."); }
Kilpa
Kilpoje mes skaitome drėgmę, drėgmę ir temperatūrą. Tai labai panašu į standartinę C kalbą.
// faz a leitura da umidade float umidade = dht.readHumidity (); Serial.print ("Umidade:"); Serial.println (umidade); // faz a leitura da temperatura float temperatura = dht.readTemperature (); Serial.print ("Temperatūra:"); Serial.println (temperatūra); Failo duomenysFailas = SD.open ("LOG.txt", FILE_WRITE); // se o arquivo foi aberto corretamente, escreve os dados nele if (dataFile) {Serial.println ("O arquivo foi aberto com sucesso."); // formatação no arquivo: linha a linha >> UMIDADE | TEMPERATURA dataFile.print (umidade); dataFile.print ("|"); dataFile.println (temperatūra); // fecha o arquivo após usá-lo dataFile.close (); } // se o arquivo não pôde ser aberto os dados não serão gravados. else {Serial.println ("Falha ao abrir o arquivo LOG.txt"); } // intervalo de espera para uma nova leitura dos dados. vėlavimas (2000 m.); }