โมดูลการ์ด SD พร้อม ESP8266: 6 ขั้นตอน
โมดูลการ์ด SD พร้อม ESP8266: 6 ขั้นตอน
Anonim
Image
Image
โมดูลการ์ด SD พร้อม ESP8266
โมดูลการ์ด SD พร้อม ESP8266
โมดูลการ์ด SD พร้อม ESP8266
โมดูลการ์ด SD พร้อม ESP8266

ในชุดประกอบนี้ เรามีการ์ด SD ที่เชื่อมต่อกับ ESP8266 เราใส่ DHT22 ซึ่งวัดอุณหภูมิและความชื้นและส่งข้อมูลนี้ไปยังการ์ด SD

บนวงจรแสดงความชื้น 43.40 และอุณหภูมิ 26.80 ทุกครั้งที่ขึ้นข้อความว่า "เปิดไฟล์สำเร็จ" เป็นเพราะว่ารันครั้งเดียวในลูป สิ่งที่เกิดขึ้นในสถานการณ์นี้มีดังนี้: เฉพาะค่าที่ถูกเขียนลงในล็อกไฟล์ ดังนั้น ข้อความ "เปิดไฟล์สำเร็จ" เป็นเพียงคำแนะนำเท่านั้น และจะไม่มีการบันทึก

ขั้นตอนที่ 1: WiFi ESP8266 NodeMcu ESP-12E

WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

ในที่นี้ เราจะให้รายละเอียดส่วนประกอบที่เราใช้ ในกรณีนี้คือ NodeMCU ESP12 พร้อมกับแผ่นข้อมูลของอุปกรณ์นั้น

ขั้นตอนที่ 2: เซ็นเซอร์ความชื้น

เซ็นเซอร์ความชื้น
เซ็นเซอร์ความชื้น

ในลำดับนั้น ฉันแสดงรายละเอียดเกี่ยวกับส่วนประกอบอื่นนี้คือ DHT22 พร้อมการปักหมุดตามลำดับ

ขั้นตอนที่ 3: โมดูลการ์ด SD

โมดูลการ์ด SD
โมดูลการ์ด SD

นี่คือโมดูลการ์ด SD ของเรา ดังที่คุณเห็นจาก pinout มันคือการเชื่อมต่อ SPI

ขั้นตอนที่ 4: การประกอบ

การประกอบ
การประกอบ

แผนภาพการประกอบขึ้นอยู่กับเครื่องอ่าน DHT22, NodeMCU ESP12 ฉันเลือกอันหลังเพราะต้องการ IO ในปริมาณที่เหมาะสม ดังนั้น 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 // กำหนดเซ็นเซอร์ DHTPIN D2 // tipo // ตัวสร้างทำ objeto para comunicar com o เซ็นเซอร์ DHT dht (DHTPIN, DHTTYPE); //pino ligado ao CS do módulo SD Card #define CS_PIN D8;

ติดตั้ง

ในฟังก์ชันการตั้งค่า เราจะเริ่มการสื่อสารของวัตถุกับเซ็นเซอร์ และเริ่มต้นการ์ด SD ด้วย

การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); Serial.print("Inicializando o cartão SD…"); //inicializa o objeto para comunicarmos com o เซ็นเซอร์ DHT dht.begin(); // การยืนยันสำหรับการ์ด SD está นำเสนอ e se pode ser inicializado if (!SD.begin (CS_PIN)) { Serial.println ("Falha, verifique se o cartão está presente."); //โปรแกรม encerrrado กลับมา; } //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(อุมิดาเดะ); //faz a leitura da temperatura float temperature = 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 | dataFile.print (อุมิดาเดะ); 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"); } // ช่วงเวลาเดอ espera para uma nova leitura dos dados ล่าช้า (2000); }