Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
V této sestavě máme kartu SD připojenou k ESP8266. Vložili jsme DHT22, který měří teplotu a vlhkost a odesílá tyto informace na kartu SD.
Na okruhu ukazuje vlhkost 43,40 a teplotu 26,80. Pokaždé, když se zobrazí zpráva „úspěšné otevření souboru“, je to proto, že se ve smyčce jednou spustilo. V tomto scénáři dojde k následujícímu: do souboru protokolu se zapisují pouze hodnoty, a proto je zpráva "úspěšné otevření souboru" pouze informativní a není zaznamenána.
Krok 1: WiFi ESP8266 NodeMcu ESP-12E
Zde podrobně popisujeme komponentu, kterou používáme, v tomto případě NodeMCU ESP12, spolu s datovým listem tohoto zařízení.
Krok 2: Senzor vlhkosti
V pořadí zobrazuji podrobnosti o této další součásti, DHT22, s příslušným připnutím.
Krok 3: Modul karty SD
Toto je náš modul SD karty. Jak vidíte z pinoutu, je to s připojením SPI.
Krok 4: Sestavení
Schéma montáže se spoléhá na čtečku, DHT22, NodeMCU ESP12. Vybral jsem si to druhé, protože potřebuje rozumné množství IO. ESP01 by tedy fungoval i pro tuto sestavu.
Krok 5: Knihovny
Pro tuto sestavu potřebujete knihovnu DHT samotného Arduino IDE. Při stahování DHT přejděte na „Sketch> Include Library> Manage Libraries“. Totéž musíte udělat pro knihovnu SD.
Krok 6: Zdrojový kód
Zdrojový kód použitý v sestavě je jednoduchý a slouží pouze k ukázce běhu karty SD. Později musíte vložit veškerou sofistikovanost, ale můžete použít další nespočet funkcí. To však neplatí pro tento příklad.
// biblioteca responzel pela comunicação com o Cartão SD #include // biblioteca responzel 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 // konstrutor do objeto para comunicar com o sensor DHT dht (DHTPIN, DHTTYPE); // pino ligado ao CS do modulu SD karta #define CS_PIN D8;
Založit
Ve funkci Setup zahájíme komunikaci našeho objektu se senzorem a také inicializujeme SD kartu.
neplatné nastavení () {Serial.begin (9600); Serial.print („Inicializando o cartão SD…“); // inicializace o objeto para comunicarmos com o senzor 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 ujistěte se, že jste zahájili první kroky Serial.println ("inicializace Cartão."); }
Smyčka
Ve smyčce čteme vlhkost, vlhkost a teplotu. Je to velmi podobné standardnímu jazyku 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); Soubor 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. zpoždění (2000); }