ความชื้นและอุณหภูมิเป็นพารามิเตอร์ทั่วไปสำหรับการวัดในสถานที่ต่างๆเช่นฟาร์มโรงเรือนการแพทย์บ้านอุตสาหกรรมและสำนักงาน เราได้กล่าวถึงการวัดความชื้นและอุณหภูมิโดยใช้ Arduino แล้วและแสดงข้อมูลบน LCD
ในโครงการ IoT นี้เราจะตรวจสอบความชื้นและอุณหภูมิผ่านอินเทอร์เน็ตโดยใช้ ThingSpeak ซึ่งเราจะแสดงข้อมูลความชื้นและอุณหภูมิปัจจุบันทางอินเทอร์เน็ตโดยใช้เซิร์ฟเวอร์ ThingSpeak ทำได้โดยการสื่อสารข้อมูลระหว่างArduino, โมดูลเซ็นเซอร์ DHT11, โมดูล ESP8266 WIFIและ LCD เครื่องวัดอุณหภูมิขนาดเซลเซียสและเครื่องวัดความชื้นมาตราส่วนเปอร์เซ็นต์จะแสดงอุณหภูมิและความชื้นโดยรอบผ่านจอ LCD และยังส่งไปยังเซิร์ฟเวอร์ ThingSpeak เพื่อตรวจสอบสดจากทุกที่ในโลก
การทำงานและการตั้งค่า ThingSpeak:
โครงการนี้มี IOT ตามสี่ส่วนแรกความชื้นและอุณหภูมิเซนเซอร์ DHT11 ความรู้สึกความชื้นและอุณหภูมิข้อมูล ประการที่สองArduino Unoดึงข้อมูลของเซ็นเซอร์ DHT11 เป็นจำนวนที่เหมาะสมในหน่วยเปอร์เซ็นต์และระดับเซลเซียสและส่งไปยังโมดูล Wi-Fi ประการที่สามโมดูล Wi-Fi ESP8266ส่งข้อมูลไปยัง Sever ของ ThingSpeak และสุดท้ายThingSpeakจะวิเคราะห์ข้อมูลและแสดงในรูปแบบกราฟนอกจากนี้ยังใช้LCDเสริมเพื่อแสดงอุณหภูมิและความชื้น
ThingSpeakเป็นเครื่องมือที่ดีมากสำหรับโครงการที่ใช้ IoT สำหรับ Arduino ด้วยการใช้ไซต์ ThingSpeak เราสามารถตรวจสอบข้อมูลของเราผ่านทางอินเทอร์เน็ตได้จากทุกที่และเรายังสามารถควบคุมระบบของเราผ่านทางอินเทอร์เน็ตโดยใช้ช่องทางและหน้าเว็บที่ให้โดย ThingSpeak ThingSpeak 'รวบรวม'ข้อมูลจากเซ็นเซอร์'วิเคราะห์และแสดงภาพ'ข้อมูลและ'การกระทำ'โดยการกระตุ้นให้เกิดปฏิกิริยา เรากำลังอธิบายเกี่ยวกับวิธีการส่งข้อมูลไปยังเซิร์ฟเวอร์ ThingSpeak โดยใช้โมดูล WIFI ESP8266:
1. แรกของทุกความต้องการของผู้ใช้ในการสร้างบัญชีบน ThingSpeak.com แล้วเข้าสู่ระบบและคลิกที่เริ่มต้น
2. ไปที่เมนู 'ช่อง' แล้วคลิกตัวเลือกช่องใหม่ในหน้าเดียวกันเพื่อดำเนินการต่อไป
3. ตอนนี้คุณจะเห็นแบบฟอร์มสำหรับสร้างช่องกรอกชื่อและคำอธิบายตามที่คุณเลือก จากนั้นกรอก "ความชื้น" และ "อุณหภูมิ" ในป้ายกำกับฟิลด์ 1 และฟิลด์ 2 แล้วเลือกช่องทำเครื่องหมายสำหรับทั้งสองฟิลด์ ทำเครื่องหมายที่ช่องทำเครื่องหมายสำหรับตัวเลือก "ทำให้เป็นสาธารณะ" ด้านล่างในแบบฟอร์มและสุดท้ายบันทึกช่อง ตอนนี้ช่องใหม่ของคุณถูกสร้างขึ้นแล้ว
4. คลิกที่แท็บ 'คีย์ API' และบันทึกคีย์เขียนและอ่าน APIที่นี่เราใช้คีย์เขียนเท่านั้น คุณต้องคัดลอกคีย์นี้ใน char * api_key ในรหัส
5. หลังจากนั้นคลิกที่ 'Data Import / Export' และคัดลอก Update Channel Feed GET Request URLซึ่งก็คือ:
api.thingspeak.com/update?api_key=SIWOYBX26OXQ1WMS&field1=0
6. ตอนนี้ผู้ใช้ต้องเปิด“ api.thingspeak.com” โดยใช้ฟังก์ชัน httpGet กับ postUrl เป็น“ update? api_key = SIWOYBX26OXQ1WMS & field1 = 0” จากนั้นจึงส่งข้อมูลโดยใช้ data feed หรือ update request address
ก่อนส่งข้อมูลผู้ใช้ต้องแก้ไขสตริงการสืบค้นหรือ postUrl นี้ ด้วยฟิลด์ข้อมูลอุณหภูมิและความชื้นดังที่แสดงด้านล่าง ที่นี่เราได้เพิ่มพารามิเตอร์ทั้งสองในสตริงที่เราต้องการส่งโดยใช้คำขอ GET ไปยังเซิร์ฟเวอร์หลังจากนั้นเราได้ใช้ httpGet เพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์ ตรวจสอบรหัสเต็มด้านล่าง
sprintf (postUrl, "อัปเดต? api_key =% s & field1 =% s & field2 =% s", api_key, humidStr, tempStr); httpGet ("api.thingspeak.com", postUrl, 80);
กระบวนการทั้งหมดแสดงอยู่ในส่วนวิดีโอท้ายบทความนี้
การทำงานของโครงการนี้ใช้การสื่อสารแบบอนุกรมสายเดี่ยวสำหรับการดึงข้อมูลจาก DHT11 Arduino ตัวแรกส่งสัญญาณเริ่มต้นไปยังโมดูล DHT จากนั้น DHT จะให้สัญญาณตอบสนองพร้อมข้อมูลที่มี Arduino รวบรวมและแยกข้อมูลออกเป็นสองส่วนแรกคือความชื้นและที่สองคืออุณหภูมิจากนั้นส่งไปยัง 16x2 LCD และเซิร์ฟเวอร์ ThingSpeak ThingSpeak แสดงข้อมูลในรูปแบบของ Graph ดังนี้:
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับDHT11 Sensor และการเชื่อมต่อกับ Arduino ได้ที่นี่
คำอธิบายวงจร:
การเชื่อมต่อสำหรับโครงการตรวจสอบอุณหภูมิและความชื้นของ ThingSpeakนี้ง่ายมาก ที่นี่Liquid Crystal Displayใช้สำหรับแสดงอุณหภูมิและความชื้นซึ่งเชื่อมต่อโดยตรงกับ Arduino ในโหมด 4 บิต หมุดของ LCD ได้แก่ RS, EN, D4, D5, D6 และ D7 เชื่อมต่อกับขาดิจิตอล Arduino หมายเลข 14, 15, 16, 17, 18 และ 19 LCD นี้เป็นอุปกรณ์เสริม
DHT11 Sensor Moduleเชื่อมต่อกับพินดิจิตอล 12 ของ Arduino โมดูล Wi-Fi หมุด Vcc และ GND ของ ESP8266 เชื่อมต่อโดยตรงกับ 3.3Vและ GND ของ Arduino และ CH_PD ยังเชื่อมต่อด้วย 3.3V หมุด Tx และ Rx ของ ESP8266 เชื่อมต่อโดยตรงกับพิน 2 และ 3 ของ Arduino ซอฟต์แวร์ Serial Library ยังใช้ที่นี่เพื่ออนุญาตการสื่อสารแบบอนุกรมบนพิน 2 และ 3 ของ Arduino เราได้กล่าวถึงการเชื่อมต่อของโมดูล Wi-Fi ESP8266 กับ Arduino โดยละเอียดแล้ว
ส่วนการเขียนโปรแกรม:
การเขียนโปรแกรมเป็นส่วนหนึ่งของโครงการนี้มีบทบาทสำคัญมากในการดำเนินการทั้งหมด ก่อนอื่นเรารวมไลบรารีที่จำเป็นและตัวแปรเริ่มต้น
#include "dht.h" // รวมไลบรารีสำหรับ dht #include
หลังจากป้อนคีย์ Write API ของคุณแล้วรับสตริง
ถ่าน * api_key = "SIWOYBX26OXQ1WMS"; // ป้อนคีย์ Write API ของคุณจาก ThingSpeak static char postUrl; int humi, tem; เป็นโมฆะ httpGet (String ip, String path, int port = 80);
ในฟังก์ชัน void loop () เราจะอ่านอุณหภูมิและความชื้นจากนั้นจึงแสดงค่าที่อ่านบนจอ LCD
ฟังก์ชันโมฆะ send2server () ใช้เพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์ ฟังก์ชัน Send2server เป็นรูทีนการขัดจังหวะการตั้งเวลาโดยโทรเข้าทุกๆ 20 วินาที เมื่อเราเรียกใช้ฟังก์ชันการอัปเดตจะมีการเรียกรูทีนเซอร์วิสการขัดจังหวะตัวจับเวลา
โมฆะ send2server () {char tempStr; ถ่าน humidStr; dtostrf (อุณหภูมิ 5, 3, tempStr); dtostrf (humi, 5, 3, humidStr); sprintf (postUrl, "อัปเดต? api_key =% s & field1 =% s & field2 =% s", api_key, humidStr, tempStr); httpGet ("api.thingspeak.com", postUrl, 80); }