- ส่วนประกอบที่จำเป็น
- แผนภูมิวงจรรวม
- การตั้งค่า Thinger.io สำหรับเครื่องบันทึกอุณหภูมิ ESP8266
- การตั้งค่า IFTTT สำหรับ NodeMCU Data Logger
- การเขียนโปรแกรม NodeMCU สำหรับการบันทึกข้อมูล
- การบันทึกข้อมูลบน Thinger.io จาก NodeMCU
- การสร้าง Endpoint ใน Thinger.io เพื่อส่ง Email Alert
ก่อนหน้านี้เราใช้ NodeMCU เพื่อบันทึกข้อมูลอุณหภูมิในแผ่นงาน Google ตอนนี้เรากำลังจะส่งข้อมูลไปยังThinger.io IoT cloudและแสดงในรูปแบบกราฟิกที่น่าสนใจ เซ็นเซอร์ BMP180 เชื่อมต่อกับ NodeMCU ESP8266 เพื่อรวบรวมข้อมูลอุณหภูมิความชื้นและความสูงซึ่งจะถูกส่งไปยังแพลตฟอร์ม Thinger.io ในบทช่วยสอนนี้เราจะเรียนรู้วิธีจัดการคุณสมบัติต่างๆของแพลตฟอร์ม thinger.io เช่นอุปกรณ์ปลายทางที่เก็บข้อมูลหรือโทเค็นการเข้าถึง
ส่วนประกอบที่จำเป็น
- NodeMCU ESP8266
- BMP180 เซ็นเซอร์ความดัน
- สายจัมเปอร์
- เขียงหั่นขนม
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับเครื่องบันทึกข้อมูล ESP8266นี้ตรงไปตรงมามากที่นี่มีเพียงเซ็นเซอร์ BMP180 เท่านั้นที่เชื่อมต่อกับ NodeMCU
เซ็นเซอร์ BMP180 ใช้โปรโตคอลการสื่อสาร I2C ดังนั้นคุณต้องเชื่อมต่อพิน SCL และ SDA ของ BMP180 กับพิน SCL และ SDA (D1 และ D2) ของ NodeMCU นอกจากนี้ให้เชื่อมต่อขาV INและ GND ของ BMP180 เข้ากับ 3.3V และ GND ของ NodeMCU อย่าเชื่อมต่อเซนเซอร์โดยตรงกับ 5V เพราะอาจทำให้เซนเซอร์เสียหายอย่างถาวร
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ NodeMCU ให้ตรวจสอบโครงการ IoT ต่างๆตาม NodeMCU ESP8266
การตั้งค่า Thinger.io สำหรับเครื่องบันทึกอุณหภูมิ ESP8266
Thinger.io เป็นแพลตฟอร์มโอเพ่นซอร์สสำหรับ Internet of Things มีเครื่องมือที่จำเป็นทุกอย่างในการสร้างต้นแบบปรับขนาดและจัดการผลิตภัณฑ์ที่เชื่อมต่อด้วยวิธีง่ายๆ Thinger.io มีเครื่องมือสำคัญสามอย่าง ได้แก่Data Bucks, Dashboard และ Endpointเพื่อทำงานกับข้อมูลอุปกรณ์ เครื่องมือเหล่านี้สามารถใช้เพื่อแสดงภาพข้อมูลอุปกรณ์และขยายความสามารถในการทำงานร่วมกันของอุปกรณ์
Data Bucks:เครื่องมือ Data Bucks สามารถใช้เพื่อจัดเก็บข้อมูลอุปกรณ์ในรูปแบบที่ปรับขนาดได้ตั้งโปรแกรมช่วงการสุ่มตัวอย่างที่แตกต่างกันหรือบันทึกเหตุการณ์ที่เกิดขึ้นโดยอุปกรณ์
แดชบอร์ด:เครื่องมือแดชบอร์ดมีแผงบางส่วนพร้อมวิดเจ็ตที่ปรับแต่งได้ซึ่งสามารถสร้างได้ภายในไม่กี่นาทีโดยใช้เทคโนโลยีลากและวางเพื่อแสดงภาพข้อมูลแบบเรียลไทม์และที่จัดเก็บ
ปลายทาง:สามารถใช้ปลายทางเพื่อรวมแพลตฟอร์มเข้ากับบริการอื่น ๆ เช่น IFTTT, บริการเว็บที่กำหนดเอง, อีเมลหรือโทรหาอุปกรณ์อื่น ๆ
ในการบันทึก ESP8266 นี้เราจะสำรวจเครื่องมือเหล่านี้
ในการส่งข้อมูลไปยัง Thinger.io คุณต้องสร้างบัญชีฟรีบนแพลตฟอร์ม Thinger.io และทำตามขั้นตอนด้านล่างเพื่อเชื่อมต่ออุปกรณ์ของคุณ
ขั้นตอนที่ 1:ขั้นตอนแรกคือการสร้างอุปกรณ์ใหม่ ในการสร้างอุปกรณ์ใหม่ให้คลิกที่อุปกรณ์ในแท็บเมนูจากนั้นคลิกที่ปุ่มเพิ่มอุปกรณ์
จากนั้นกรอกแบบฟอร์มด้วยรหัสอุปกรณ์คำอธิบายและข้อมูลรับรองหรือสร้างข้อมูลรับรองแบบสุ่มสำหรับอุปกรณ์ของคุณและคลิกที่ ' เพิ่มอุปกรณ์ '
นั่นคือทั้งหมด; อุปกรณ์ของคุณพร้อมที่จะเชื่อมต่อ ในขั้นตอนต่อไปเราจะตั้งโปรแกรม NodeMCU เพื่อส่งข้อมูลไปยังแพลตฟอร์ม Thinger.io
การตั้งค่า IFTTT สำหรับ NodeMCU Data Logger
ที่นี่เราใช้ IFTTT เพื่อส่งคำเตือนทางอีเมลเมื่ออุณหภูมิสูงเกินขีด จำกัด IFTTT (ถ้าเป็นอย่างนั้น) เป็นบริการบนเว็บที่เราสามารถสร้างกลุ่มของคำสั่งเงื่อนไขที่เรียกว่าแอพเพล็ต การใช้แอพเพล็ตเหล่านี้เราสามารถส่งการแจ้งเตือนทางอีเมล Twitter และ Facebook
หากต้องการใช้ IFTTT ให้ลงชื่อเข้าใช้บัญชี IFTTT หากคุณมีอยู่แล้วหรือสร้างบัญชี
ตอนนี้ค้นหา ' Webhooks ' และคลิกที่ Webhooks ในส่วนบริการ
จากนั้นในหน้าต่าง Webhooks คลิกที่ 'เอกสารประกอบ' ที่มุมขวาบนเพื่อรับคีย์ส่วนตัว คัดลอกคีย์นี้คีย์นี้จะถูกใช้ขณะสร้าง Endpoint ใน Thinger.io
หลังจากที่สร้างแอปเพล็ใช้ Webhooks และบริการอีเมล์ ในการสร้างแอพเพล็ตให้คลิกที่โปรไฟล์ของคุณจากนั้นคลิกที่ ' สร้าง '
ตอนนี้ในหน้าต่างถัดไปให้คลิกที่ไอคอน " นี่ " ตอนนี้ค้นหา Webhooks ในส่วนการค้นหาและคลิกที่ ' Webhooks '
ตอนนี้เลือกทริกเกอร์' รับคำขอทางเว็บ' และป้อนชื่อเหตุการณ์เป็นชั่วคราวจากนั้นคลิกที่สร้างทริกเกอร์
หลังจากนี้ให้คลิกที่ ' Then That' จากนั้นคลิกที่อีเมล
ตอนนี้ในอีเมลคลิกที่ 'ส่งอีเมลถึงฉัน' แล้วป้อนหัวเรื่องและเนื้อหาของอีเมลจากนั้นคลิกที่สร้างการกระทำ ในขั้นตอนสุดท้ายคลิกที่ ' เสร็จสิ้น ' เพื่อเสร็จสิ้นการตั้งค่า Applet
การเขียนโปรแกรม NodeMCU สำหรับการบันทึกข้อมูล
รหัสที่สมบูรณ์สำหรับการส่งข้อมูลไปยัง Thinger.ioมีให้ที่ท้ายหน้า เรากำลังอธิบายบางส่วนที่สำคัญ
เริ่มต้นรหัสโดยรวมไลบรารีที่จำเป็นทั้งหมด ThingerESP8266.hจะใช้ในการสร้างการเชื่อมต่อระหว่างแพลตฟอร์ม IOT และ NodeMCU ขณะ Adafruit_BMP085.h จะใช้ในการอ่านข้อมูลเซ็นเซอร์ BMP คุณสามารถติดตั้งไลบรารีThingerESP8266.hจากตัวจัดการไลบรารี Arduino IDEs
# รวม
จากนั้นป้อนข้อมูลรับรองในรหัสเพื่อให้อุปกรณ์รับรู้และเชื่อมโยงกับบัญชีของคุณได้
# กำหนด USERNAME "บัญชีของคุณชื่อผู้ใช้" # กำหนด DEVICE_ID "NodeMCU" // ชื่ออุปกรณ์ของคุณ # กำหนด DEVICE_CREDENTIAL "FcLySVkP8YFR"
จากนั้นป้อนชื่อจุดสิ้นสุดของคุณ จุดสิ้นสุดใช้เพื่อรวมแพลตฟอร์มเข้ากับบริการภายนอกเช่น IFTTT คำขอ HTTTP เป็นต้น
# กำหนด EMAIL_ENDPOINT "IFTTT"
กำหนดตัวแปรเพื่อจัดเก็บข้อมูลความดันอุณหภูมิและระดับความสูง
int ความดันอุณหภูมิระดับความสูง;
ภายใน void loop () อ่านข้อมูลเซ็นเซอร์ PSON ชนิดข้อมูลสามารถเก็บข้อมูลต่างชนิด ดังนั้นชนิดข้อมูล Pson จึงถูกใช้เพื่อรับหลายค่าในเวลาเดียวกัน
สิ่ง >> (pson & out) {out = bmp.readPressure () / 100; ออก = bmp.readAltitude (); ออก = bmp.readTemperature (); };
ใช้ if condition เพื่อเรียก Endpoint หากค่าอุณหภูมิเกิน 15 องศา นี่คือข้อมูลชื่อ Endpoint
ถ้า (อุณหภูมิ> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "data");} Serial.print ("การส่งข้อมูล");
การบันทึกข้อมูลบน Thinger.io จาก NodeMCU
ตอนนี้เชื่อมต่อเซ็นเซอร์ BMP กับ NodeMCU และอัปโหลดรหัส NodeMCU จะใช้ข้อมูลรับรองบัญชีของคุณเพื่อเชื่อมต่อกับอุปกรณ์ที่คุณสร้างไว้ก่อนหน้านี้ หากเชื่อมต่อสำเร็จจะแสดงการเชื่อมต่อดังที่แสดงในภาพด้านล่าง:
คุณสามารถตรวจสอบสถิติอุปกรณ์ของคุณเช่นข้อมูลที่ส่ง, ข้อมูลที่ได้รับ, ที่อยู่ IP, เวลาที่เชื่อมต่อฯลฯ โดยเพียงแค่คลิกที่ชื่ออุปกรณ์จากเมนูอุปกรณ์
ขณะนี้เรากำลังรับข้อมูลเราจะสร้างแดชบอร์ดเพื่อแสดงภาพข้อมูลโดยใช้วิดเจ็ต
ในการสร้างแดชบอร์ดคลิกที่แดชบอร์ดจากแท็บเมนูจากนั้นคลิกที่ ' เพิ่มแดชบอร์ด '
ในหน้าต่างถัดไปป้อนรายละเอียดแดชบอร์ดเช่นชื่อแดชบอร์ด ID และคำอธิบายจากนั้นคลิกที่แดชบอร์ด
หลังจากนี้เข้าถึงแดชบอร์ดใหม่โดยคลิกที่ชื่อแดชบอร์ด ตามค่าเริ่มต้นแดชบอร์ดจะปรากฏว่างเปล่า ในการเพิ่มวิดเจ็ตก่อนอื่นคุณต้องเปิดใช้งานโหมดแก้ไขโดยคลิกที่สวิตช์ด้านขวาบนของแดชบอร์ด จากนั้นคลิกที่ ' เพิ่ม Widget' ปุ่ม
เมื่อคุณคลิกที่ปุ่ม ' เพิ่มวิดเจ็ต' มันจะแสดงป๊อปอัปที่คุณสามารถเลือกประเภทวิดเจ็ตสีพื้นหลัง ฯลฯ ในกรณีของฉันฉันได้เลือกวิดเจ็ตเกจ
เมื่อคุณคลิกที่บันทึกระบบจะนำคุณไปยังหน้าจอถัดไปซึ่งคุณต้องเลือกโหมด Source Value, Device, Resource, Value และ Refresh เลือกค่าทั้งหมดจากนั้นคลิกที่ปุ่มบันทึก
ตอนนี้ทำซ้ำขั้นตอนเดียวกันสำหรับตัวแปรที่เหลือ แดชบอร์ดของฉันมีลักษณะดังนี้:
การสร้าง Endpoint ใน Thinger.io เพื่อส่ง Email Alert
ตอนนี้เราจะสร้างปลายทางที่จะบูรณาการThinger.io กับ IFTTT อุปกรณ์สามารถเรียกจุดสิ้นสุดเพื่อดำเนินการใด ๆ เช่นส่งอีเมลส่ง SMS เรียก REST API โต้ตอบกับ IFTTT เรียกอุปกรณ์จากบัญชีอื่นหรือโทรหาปลายทาง HTTP อื่น ๆ
ในการสร้างจุดสิ้นสุดให้คลิกที่ตัวเลือก 'ปลายทาง' จากแท็บเมนูจากนั้นคลิกที่ 'เพิ่มปลายทาง'
ตอนนี้ในหน้าต่างถัดไปให้ป้อนรายละเอียดที่จำเป็น รายละเอียดคือ:
Endpoint Id:ตัวระบุเฉพาะสำหรับปลายทางของคุณ
คำอธิบายปลายทาง:เขียนคำอธิบายหรือข้อมูลโดยละเอียดเกี่ยวกับปลายทางของคุณ
Endpoint Type:เลือกประเภทปลายทางจากตัวเลือกที่กำหนด
ชื่อเหตุการณ์ Maker:ป้อนชื่อแอพเพล็ต IFTTT ของคุณ
Maker Channel Key:คีย์ลับ Webhooks ของคุณ
หลังจากนี้ให้คลิกที่ Test Endpoint เพื่อตรวจสอบว่าทุกอย่างทำงานหรือไม่ ควรส่งอีเมลพร้อมคำเตือนเกี่ยวกับข้อมูลอุณหภูมิ
แทนที่จะใช้ IFTTT Webhook Trigger คุณสามารถส่งอีเมลหรือข้อความโทรเลขหรือคุณสามารถส่งคำขอ HTTP โดยใช้คุณสมบัติปลายทาง
นี่คือวิธีที่ NodeMCU ESP8266 สามารถใช้เพื่อบันทึกข้อมูลอุณหภูมิความดันและระดับความสูงจากเซ็นเซอร์ BMP180 ไปยังอินเทอร์เน็ต
วิดีโอที่ใช้งานได้และโค้ดที่สมบูรณ์จะได้รับที่ส่วนท้ายของหน้า