Cuprins:

Modul card SD cu ESP8266: 6 pași
Modul card SD cu ESP8266: 6 pași

Video: Modul card SD cu ESP8266: 6 pași

Video: Modul card SD cu ESP8266: 6 pași
Video: #6 NodeMCU/ ESp8266 Tutorial: Interface SD card 2024, Iulie
Anonim
Image
Image
Modul card SD cu ESP8266
Modul card SD cu ESP8266
Modul card SD cu ESP8266
Modul card SD cu ESP8266

Î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

WiFi ESP8266 NodeMcu ESP-12E
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

Senzor de umiditate
Senzor de umiditate

În secvență, arăt detalii despre această altă componentă, DHT22, cu fixarea respectivă.

Pasul 3: modulul cardului SD

Modul card SD
Modul card SD

Acesta este modulul nostru de card SD. După cum puteți vedea din pinout, este cu conexiune SPI.

Pasul 4: Asamblare

Asamblare
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

Biblioteci
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); }

Recomandat: