Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Në këtë asamble, ne kemi një Kartë SD të lidhur me ESP8266. Ne vendosim një DHT22, e cila mat temperaturën dhe lagështinë dhe e dërgon këtë informacion në kartën SD.
Në qark, ajo tregon lagështi prej 43.40 dhe një temperaturë prej 26.80. Sa herë që shfaq mesazhin "hapja e skedarit me sukses", është sepse ajo u ekzekutua një herë në lak. Ajo që ndodh në këtë skenar është si më poshtë: vetëm vlerat po shkruhen në skedarin log, dhe kështu, mesazhi "hapja e skedarit me sukses" është vetëm një këshillë dhe nuk regjistrohet.
Hapi 1: WiFi ESP8266 NodeMcu ESP-12E
Këtu ne detajojmë përbërësin që përdorim, në këtë rast NodeMCU ESP12, së bashku me fletën e të dhënave të asaj pajisjeje.
Hapi 2: Sensori i lagështisë
Në sekuencë, unë tregoj detaje në lidhje me këtë përbërës tjetër, DHT22, me fiksimin përkatës.
Hapi 3: Moduli i Kartës SD
Ky është moduli ynë i Kartës SD. Siç mund ta shihni nga pinout, është me lidhje SPI.
Hapi 4: Asambleja
Diagrami i montimit mbështetet në lexuesin, DHT22, NodeMCU ESP12. Zgjodha këtë të fundit sepse ka nevojë për një sasi të arsyeshme të IO -ve. Kështu, ESP01 do të punonte gjithashtu për këtë asamble.
Hapi 5: Bibliotekat
Për këtë asamble, keni nevojë për bibliotekën DHT të vetë Arduino IDE. Thjesht shkoni te "Sketch> Përfshi Bibliotekën> Menaxhoni Bibliotekat" ndërsa shkarkoni DHT. Ju duhet të bëni të njëjtën gjë për Bibliotekën SD.
Hapi 6: Kodi Burimor
Kodi burim i përdorur në asamble është i thjeshtë, dhe është vetëm për të treguar që karta SD po funksionon. Ju duhet të futni të gjithë sofistikimin më vonë, por mund të përdorni veçori të tjera të panumërta. Sidoqoftë, kjo nuk vlen për këtë shembull.
// biblioteca responsável pela comunicação com o Cartão SD #përfshijnë // 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 // ndërtues për të përcaktuar funksionin e sensorit DHT dht (DHTPIN, DHTTYPE); // pino ligjërata për CS ose për kartën SD #përcaktoni CS_PIN D8;
Konfigurimi
Në funksionin Setup, ne do të fillojmë komunikimin e objektit tonë me sensorin, dhe gjithashtu do të inicializojmë Kartën SD.
void setup () {Serial.begin (9600); Serial.print ("Inicializo o cartão SD …"); // inicializa ose objeto para comunicarmos com o sensor DHT dht.begin (); // verifikimi i kartës SD është paraqitur në kodin zyrtar nëse (! SD.fillon (CS_PIN)) {Serial.println ("Falha, verifiko se çfarë kartele është e pranishme."); // programi encerrrado return; } // se chegou aqui é porque o cartão foi inicializado corretamente Serial.println ("Cartão inicializado."); }
Lak
Në lak, ne lexojmë lagështi, lagështi dhe temperaturë. Kjo është shumë e ngjashme me gjuhën standarde C.
// 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); File 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 para uma nova leitura dos dados. vonesa (2000); }