İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu derlemede, ESP8266'ya bağlı bir SD Kartımız var. Sıcaklık ve nemi ölçen ve bu bilgiyi SD karta gönderen bir DHT22 koyduk.
Devrede 43.40 nem ve 26.80 sıcaklık gösteriyor. "Dosya başarıyla açılıyor" mesajını her gösterdiğinde, bunun nedeni döngüde bir kez koşmasıdır. Bu senaryoda gerçekleşen şudur: günlük dosyasına yalnızca değerler yazılmaktadır ve bu nedenle "dosya başarıyla açılıyor" mesajı yalnızca bir tavsiye niteliğindedir ve kaydedilmez.
1. Adım: WiFi ESP8266 NodeMcu ESP-12E
Burada kullandığımız bileşeni, bu durumda NodeMCU ESP12'yi, o cihazın veri sayfasıyla birlikte detaylandırıyoruz.
Adım 2: Nem Sensörü
Sırada, ilgili sabitleme ile bu diğer bileşen olan DHT22 ile ilgili ayrıntıları gösteriyorum.
Adım 3: SD Kart Modülü
Bu bizim SD Kart modülümüzdür. Pinout'tan da görebileceğiniz gibi, SPI bağlantılı.
Adım 4: Montaj
Montaj şeması, okuyucuya, DHT22'ye, NodeMCU ESP12'ye dayanır. İkincisini seçtim çünkü makul miktarda IO'ya ihtiyacı var. Böylece, ESP01 bu montaj için de çalışacaktı.
Adım 5: Kitaplıklar
Bu derleme için Arduino IDE'nin kendisinin DHT kitaplığına ihtiyacınız var. DHT'yi indirirken "Çizim> Kitaplığı Dahil Et> Kitaplıkları Yönet" seçeneğine gidin. Aynı şeyi SD Kitaplığı için de yapmanız gerekir.
Adım 6: Kaynak Kodu
Montajda kullanılan kaynak kodu basittir ve sadece SD Kartın çalıştığını göstermek içindir. Tüm gelişmişliği daha sonra eklemeniz gerekir, ancak diğer sayısız özelliği kullanabilirsiniz. Ancak bu, bu örnek için geçerli değildir.
//Kartvizit iletişim bilgileri için iletişim bilgileri SD#içerir // iletişim bilgileri iletişim sensörleri DHT22 #içerir // DHT ile ilgili bilgiler DHT ile ilgili bilgiler D6 iletişim bilgileri için #define DHTPIN D2 // sensör için sensörler #define #define DHTTYPE DHT // kurucu ortak iletişim için nesne yapmak sensör DHT dht(DHTPIN, DHTTYPE); //pino ligado ao CS modlu SD Kart #define CS_PIN D8;
Kurmak
Setup işlevinde, nesnemizin sensörle iletişimini başlatacağız ve ayrıca SD Kartı başlatacağız.
geçersiz kurulum(){ Serial.begin(9600); Serial.print("Incializando veya cartão SD…"); //comunicarmos com o nesnesi için nesnelleştirme DHT dht.begin(); // SD'yi doğrulamak için mevcut e se pode ser inicializado if (!SD.begin(CS_PIN)) { Serial.println("Falha, doğrulama se o cartão está sunum."); //programa encerrrado dönüşü; } // en uygun fiyata bakın Serial.println("Cartão incializado."); }
Döngü
Döngüde nem, nem ve sıcaklık okuruz. Bu, standart C diline çok benzer.
// bir leitura da umidade şamandıra umidade = dht.readHumidity(); Serial.print("Umidade: "); Serial.println(umidade); // bir boş zaman ve sıcaklık kayan nokta sıcaklığı = dht.readTemperature(); Serial.print("Sıcaklık: "); Seri.println(sıcaklık); Dosya dataFile = SD.open("LOG.txt", FILE_WRITE); // arquivo foi aberto corretamente, escreve os dados nele if (dataFile) { Serial.println("O arquivo foi aberto com sucesso."); //arquivo yok: linha ve linha >> UMIDADE | TEMPERATURA dataFile.print(umidade); dataFile.print(" | "); dataFile.println(sıcaklık); //bundan sonra bize veriFile.close(); } // arquivo não pôde ser aberto os dados não serão gravados. else { Serial.println("Falha ao abrir veya arquivo LOG.txt"); } //arada kalan zaman aralığı. gecikme(2000); }