Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În acest ansamblu, avem un card SD conectat la ESP8266. Am pus un DHT22, care măsoară temperatura și umiditatea și trimite aceste informații pe cardul SD.
Pe circuit, arată o umiditate de 43,40 și o temperatură de 26,80. De fiecare dată când apare mesajul „deschiderea cu succes a fișierului”, se întâmplă deoarece a rulat o dată în buclă. Ceea ce se întâmplă în acest scenariu este după cum urmează: numai valorile sunt scrise în fișierul jurnal și, prin urmare, mesajul „deschiderea fișierului cu succes” este doar o recomandare și nu este înregistrată.
Pasul 1: WiFi ESP8266 NodeMcu ESP-12E
Aici vom detalia componenta pe care o folosim, în acest caz NodeMCU ESP12, împreună cu foaia tehnică a dispozitivului respectiv.
Pasul 2: senzor de umiditate
În secvență, arăt detalii despre această altă componentă, DHT22, cu fixarea respectivă.
Pasul 3: modulul cardului SD
Acesta este modulul nostru de card SD. După cum puteți vedea din pinout, este cu conexiune SPI.
Pasul 4: Asamblare
Schema de asamblare se bazează pe cititor, DHT22, NodeMCU ESP12. Am ales-o pe aceasta din urmă, deoarece are nevoie de o cantitate rezonabilă de IO-uri. Astfel, ESP01 ar funcționa și pentru acest ansamblu.
Pasul 5: Biblioteci
Pentru acest ansamblu, aveți nevoie de biblioteca DHT a Arduino IDE în sine. Accesați „Schiță> Includeți bibliotecă> Gestionați bibliotecile” în timp ce descărcați DHT. Trebuie să faceți același lucru și pentru biblioteca SD.
Pasul 6: Cod sursă
Codul sursă utilizat în ansamblu este simplu și este doar pentru a arăta că cardul SD rulează. Trebuie să inserați toată rafinamentul mai târziu, dar puteți utiliza alte caracteristici nenumărate. Cu toate acestea, acest lucru nu se aplică acestui exemplu.
// biblioteca responsável pela comunicação com o Cartão SD # include // biblioteca responsável pela comunicação com o sensor DHT22 #include // pino de dados do DHT será ligado no D6 do esp #define DHTPIN D2 // tipo do sensor #define DHTTYPE DHT22 // construtor do objeto for comunicar com o sensor DHT dht (DHTPIN, DHTTYPE); // pino ligado ao CS do módulo SD Card #define CS_PIN D8;
Înființat
În funcția de configurare, vom începe comunicarea obiectului nostru cu senzorul și, de asemenea, inițializăm cardul SD.
void setup () {Serial.begin (9600); Serial.print ("Inicializando o cartão SD …"); // initializa o obiect pentru 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 initializado corect Serial.println ("Cartão inicializado."); }
Buclă
În buclă, citim umiditatea, umiditatea și temperatura. Acesta seamănă foarte mult cu limbajul C standard.
// 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 ("Temperatura:"); Serial.println (temperatura); Fișier dataFile = 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 (temperatura); // 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 pentru uma nova leitura dos dados. întârziere (2000); }