תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
במכלול זה יש לנו כרטיס SD המחובר ל- ESP8266. שמנו DHT22, המודד טמפרטורה ולחות ושולח מידע זה לכרטיס ה- SD.
במעגל, הוא מראה לחות של 43.40 וטמפרטורה של 26.80. בכל פעם שהוא מציג את ההודעה "פתיחת הקובץ בהצלחה", זה בגלל שהוא רץ פעם אחת בלולאה. מה שקורה בתרחיש זה הוא כדלקמן: רק הערכים נכתבים לקובץ היומן, ולכן ההודעה "פתיחת הקובץ בהצלחה" היא רק המלצה, והיא אינה מוקלטת.
שלב 1: WiFi ESP8266 NodeMcu ESP-12E
כאן נפרט את הרכיב בו אנו משתמשים, במקרה זה את NodeMCU ESP12, יחד עם גליון הנתונים של המכשיר.
שלב 2: חיישן לחות
ברצף, אני מציג פרטים על רכיב אחר זה, DHT22, עם הצמדת ההתאמה.
שלב 3: מודול כרטיס SD
זהו מודול כרטיס ה- SD שלנו. כפי שאתה יכול לראות מה- pinout, זה עם חיבור SPI.
שלב 4: הרכבה
תרשים ההרכבה מסתמך על הקורא, ה- DHT22, ה- NodeMCU ESP12. בחרתי באחרון מכיוון שהוא צריך כמות סבירה של IOs. לפיכך, ה- ESP01 יפעל גם עבור הרכבה זו.
שלב 5: ספריות
להרכבה זו, אתה צריך את ספריית ה- DHT של ה- Arduino IDE עצמה. פשוט עבור אל "סקיצה> כלול ספרייה> נהל ספריות" תוך הורדת ה- DHT. אתה צריך לעשות את אותו הדבר עבור ספריית SD.
שלב 6: קוד המקור
קוד המקור המשמש בהרכבה הוא פשוט, וזה רק כדי להראות שכרטיס ה- SD פועל. עליך להכניס את כל התחכום מאוחר יותר, אך תוכל להשתמש בתכונות רבות אחרות. עם זאת, הדבר אינו חל על דוגמה זו.
// 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 // מבצע לעשות objeto עבור comunicar com או חיישן DHT dht (DHTPIN, DHTTYPE); // pino ligado ao CS do módulo Card SD #define CS_PIN D8;
להכין
בפונקציית ההתקנה, נתחיל בתקשורת של האובייקט שלנו עם החיישן, וגם נתחיל את כרטיס ה- SD.
הגדרת void () {Serial.begin (9600); Serial.print ("Inicializando o cartão SD …"); // inicializa o objeto para 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 inicializado corretamente Serial.println ("Cartão inicializado."); }
לוּלָאָה
בלולאה אנו קוראים לחות, לחות וטמפרטורה. זה מאוד דומה לשפת 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 ("טמפרטורה:"); Serial.println (טמפרטורה); קובץ 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 (טמפרטורה); // 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. אחרת {Serial.println ("Falha ao abrir o arquivo LOG.txt"); } // intervalo de espera para uma nova leitura dos dados. עיכוב (2000); }