สารบัญ:

UCL-IIOT - ระบบเตือนภัยพร้อมฐานข้อมูลและโหนดสีแดง: 7 ขั้นตอน
UCL-IIOT - ระบบเตือนภัยพร้อมฐานข้อมูลและโหนดสีแดง: 7 ขั้นตอน

วีดีโอ: UCL-IIOT - ระบบเตือนภัยพร้อมฐานข้อมูลและโหนดสีแดง: 7 ขั้นตอน

วีดีโอ: UCL-IIOT - ระบบเตือนภัยพร้อมฐานข้อมูลและโหนดสีแดง: 7 ขั้นตอน
วีดีโอ: UCL-IIoT-Datalogger 2024, กรกฎาคม
Anonim
UCL-IIOT - ระบบเตือนภัยพร้อมฐานข้อมูลและ Node-red
UCL-IIOT - ระบบเตือนภัยพร้อมฐานข้อมูลและ Node-red
UCL-IIOT - ระบบเตือนภัยพร้อมฐานข้อมูลและ Node-red
UCL-IIOT - ระบบเตือนภัยพร้อมฐานข้อมูลและ Node-red

จุดประสงค์ของงานสร้างนี้คือการสอนเกี่ยวกับการเชื่อมต่อ Arduino กับ Node-red และฐานข้อมูล ดังนั้นคุณจึงสามารถบันทึกข้อมูลและรวบรวมข้อมูลเพื่อใช้ในภายหลังได้

สำหรับบิลด์นี้ ฉันใช้ระบบเตือนภัย Arduino แบบง่าย ๆ ที่ส่งออกตัวเลขข้อมูล 5 ตัว โดยแต่ละตัวคั่นด้วยเครื่องหมายจุลภาค

ไม่จำเป็นต้องมีจำนวนข้อมูลที่แน่นอนและโปรแกรมสามารถเป็นอะไรก็ได้

ส่วนสำคัญคือข้อมูลจะถูกคั่นด้วยเครื่องหมายจุลภาคตามที่เห็นในภาพหน้าจอนี้

ผลลัพธ์อาจมีลักษณะเช่นนี้: "324, 0, 0, 1, 1"

(การเขียนโปรแกรมและคำแนะนำในการสร้าง Arduino ที่เสร็จสิ้นแล้วจะเชื่อมโยงที่ด้านล่างของบทช่วยสอนนี้)

ขั้นตอนที่ 1: เริ่มต้นใช้งาน Node-red

เริ่มต้นใช้งาน Node-red
เริ่มต้นใช้งาน Node-red

สำหรับบทช่วยสอนนี้ เราถือว่าคุณได้ติดตั้ง Node-red แล้ว แต่มีจานสีพิเศษบางอย่างที่ใช้สำหรับโปรเจ็กต์นี้ที่เราต้องการให้มันทำงาน

ค้นหาปุ่ม "จัดการจานสี" และติดตั้งจานสีต่อไปนี้

  • node-red-แดชบอร์ด
  • node-red-node-mysql
  • node-red-node-arduino
  • node-red-node-serialport

ควรแสดงจานสีใหม่ ๆ ที่ด้านข้างของเมนูปุ่ม Node-red

ขั้นตอนที่ 2: แยกข้อมูลในโหนดสีแดง

การแยกข้อมูลในโหนดสีแดง
การแยกข้อมูลในโหนดสีแดง

ตอนนี้ Node-red พร้อมใช้งานแล้ว เราต้องเริ่มจากการแยกข้อมูลของเราออกเป็นชิ้นๆ

นี่คือเหตุผลที่เราตรวจสอบให้แน่ใจว่าได้แยกพวกมันด้วยเครื่องหมายจุลภาคภายในโค้ด Arduino

ขั้นแรกให้เริ่มต้นด้วยการวางโหนด Arduino Input ที่แผงด้านซ้าย

คุณต้องตรวจสอบให้แน่ใจว่ามีพอร์ตอนุกรมที่ถูกต้อง (ฉันใช้พอร์ต COM4) และอัตราบอด (ในโปรแกรมของฉันฉันใช้อัตราบอด 9600)

หากตั้งค่าอย่างถูกต้องควรแจ้งว่าเชื่อมต่อแล้ว

ขั้นต่อไป เราสร้างบล็อกฟังก์ชัน Javascript และเชื่อมต่อหลังจากโหนดอินพุต Arduino บล็อกนี้ช่วยให้เราเขียนโปรแกรมใน Javascript และที่นี่เราเขียนโค้ดที่สามารถแบ่งข้อมูลของเราสำหรับทุกเครื่องหมายจุลภาค

ในบล็อกฟังก์ชันนี้ ฉันแบ่งข้อมูล 5 รายการโดยใช้รหัสต่อไปนี้:

var m1 = {หัวข้อ: "light1", เพย์โหลด: msg.payload.split(", ")[0]}; var m2 = {หัวข้อ: "light2", เพย์โหลด: msg.payload.split(", ")[1]}; var m3 = {หัวข้อ: "light3", เพย์โหลด: msg.payload.split(", ")[2]}; var m4 = {หัวข้อ: "มิลลิวินาที", เพย์โหลด: msg.payload.split(", ")[3]}; var m5 = {หัวข้อ: "onoff", เพย์โหลด: msg.payload.split(", ")[4]}; กลับ [m1, m2, m3, m4, m5];

(เปลี่ยนรหัสตามความจำเป็น)

ตรวจสอบให้แน่ใจว่าโหนดถูกตั้งค่าเป็น 5 เอาต์พุต (หรือเทียบเท่าของคุณ)

ดังที่เห็นในภาพหน้าจอ ตอนนี้เรามีเอาต์พุต 5 รายการที่เราแต่ละลิงก์ไปยังโหนดดีบักและโหนดแดชบอร์ดข้อความ ซึ่งจะเป็นประโยชน์เมื่อเราต้องการดูบน UI

ขั้นตอนที่ 3: ฐานข้อมูลด้วย Wampserver

ฐานข้อมูลด้วย Wampserver
ฐานข้อมูลด้วย Wampserver

เพื่อให้ฐานข้อมูลของเราทำงานได้ คุณต้องติดตั้ง Wampserver หลังจากติดตั้งและแสดงเป็นไอคอนสีเขียว (หลังจากที่คุณได้เริ่มบริการทั้งหมดแล้ว) คุณควรเปิด "phpMyAdmin" ซึ่งจะนำคุณไปยังหน้าจอการเข้าสู่ระบบ ยกเว้นกรณีที่คุณมี ก่อนหน้านี้เปลี่ยนเพียงป้อน "root" ในชื่อผู้ใช้และเข้าสู่ระบบ

กดปุ่ม phpmyadmin ใต้เครื่องมือในแถบด้านซ้าย และควรเปิดเมนูฐานข้อมูล ซึ่งมีลักษณะเหมือนที่แสดงในภาพด้านบน

สร้างฐานข้อมูลใหม่และตั้งชื่อบางอย่างที่เกี่ยวข้องกับโครงการของคุณ เหมืองชื่อ "ระบบเตือนภัย" (ชื่อเหล่านี้จะคำนึงถึงขนาดตัวพิมพ์)

ภายใต้ฐานข้อมูลนั้น ให้สร้างตารางใหม่และตั้งชื่อมัน ของฉันชื่อ "alarmdata"

มันจะถามว่าคุณต้องการใช้ "latin1_swedish_ci" ไหม และเราก็แค่เก็บไว้อย่างนั้น

ตอนนี้คุณสร้างตาราง 6 ตาราง (1 มากกว่าข้อมูลที่เรามี)

ตารางแรกต้องใช้ประเภทข้อมูล "longtext"

และชุดข้อมูลที่เหลือใช้ "ข้อความกลาง"

อย่าลืมตั้งชื่อพวกเขา (ชุดข้อมูลแรกควรตั้งชื่อว่า "เวลา"

ขั้นตอนที่ 4: ฐานข้อมูล

ฐานข้อมูล
ฐานข้อมูล

ชุดข้อมูล Wampserver ควรมีลักษณะดังนี้

(แต่ไม่มีข้อมูลจริงเพราะเรายังไปไม่ถึง)

ขั้นตอนที่ 5: Node-red ไปยัง Wampserver

Node-red ไปยัง Wampserver
Node-red ไปยัง Wampserver

ตอนนี้เราต้องการข้อมูลที่เรากำลังส่งออกจาก Arduino เพื่อไปที่ Wampserver ของเรา

เริ่มต้นด้วยการสร้างบล็อกฟังก์ชัน Javascript อื่นและเชื่อมต่อกับโหนดอินพุต Arduino ของเรา

ในบล็อกสคริปต์นี้ เราแบ่งข้อมูลของเราอีกครั้ง แต่เราแทรกข้อมูลลงในฐานข้อมูลของเราด้วย

var data = msg.payload.split(", ");var Green1 = ข้อมูล[0]; var Green2 = ข้อมูล[1]; var Alarm = ข้อมูล[2]; var Millis = ข้อมูล[3]; var IsActive = ข้อมูล[4]; var out = "INSERT INTO alarmsystem.alarmdata (Time, Green1, Green2, Alarm, Millis, IsActive) VALUES('"+new Date().toISOString().slice(0, 19).replace('T', ' ')+"', '"+Green1+"', '"+Green2+"', '"+Alarm+"', '"+Millis+"', '"+IsActive+"')"; msg.topic = ออก; กลับผงชูรส;

สังเกตว่าฉันป้อน "INSERT INTO alarmsystem.alarmdata" ซึ่งเป็นชื่อที่เราตั้งให้ฐานข้อมูลและตารางของเรา ตรวจสอบให้แน่ใจว่าคุณได้เขียนชื่อที่ถูกต้องตามที่คุณตั้งให้ฐานข้อมูลไว้

ตอนนี้เชื่อมต่อบล็อก Javascript กับโหนดดีบักและโหนด "mysql" ที่อยู่ใต้จานเก็บข้อมูลทางด้านซ้าย

ภายใต้บล็อก mysql คุณตั้งชื่อเหมือนกับฐานข้อมูล "alarmsystem" ของคุณ

เปลี่ยนผู้ใช้เป็น "รูท" (ชื่อที่เราใช้ในการเข้าสู่ระบบเซิร์ฟเวอร์ของเรา)

โฮสต์พอร์ตและฐานข้อมูลควรกรอกด้วย:

โฮสต์: 127.0.0.1

พอร์ต: 3306

ฐานข้อมูล: ระบบเตือนภัย

หากทุกอย่างถูกต้อง ควรเชื่อมต่อหลังจากที่คุณปรับใช้การเปลี่ยนแปลงของคุณ

คุณควรจะเห็นด้วยว่าตอนนี้ฐานข้อมูลบันทึกข้อมูลของคุณจาก Arduino โดยตรง

ขั้นตอนที่ 6: การใช้ข้อมูลจาก Wampserver ไปยัง Node-red

การใช้ข้อมูลจาก Wampserver ถึง Node-red
การใช้ข้อมูลจาก Wampserver ถึง Node-red
การใช้ข้อมูลจาก Wampserver ถึง Node-red
การใช้ข้อมูลจาก Wampserver ถึง Node-red

สำหรับช่วงสุดท้าย เราต้องการดูว่าเราสามารถนำข้อมูลที่บันทึกไว้แล้วใส่กลับเข้าไปในโหนดสีแดงของเราได้หรือไม่ และหวังว่าจะแสดงผลได้

เริ่มต้นด้วยการวาง "inject" node

ภายใต้หัวข้อในโหนดนี้ เราใส่รหัส: SELECT*FROM alarmsystem.alarmdata

ซึ่งจะสามารถค้นหาฐานข้อมูลของเราได้เมื่อเรากดเข้าไป

เชื่อมต่อ inject node กับโหนด "mysql" ใหม่ที่ตั้งค่าเหมือนกับที่เราทำในขั้นตอนที่แล้ว

เชื่อมต่อโหนด mysql กับโหนดดีบักและโหนดเทมเพลตที่อยู่ใต้แดชบอร์ด

โหนดเทมเพลตจะเป็นตารางของเราที่เราสามารถอัปเดตเพื่อแสดงข้อมูลจากฐานข้อมูลในขณะที่สร้าง

ป้อนรหัสที่แสดงในภาพหน้าจอด้านบน (เปลี่ยนตามต้องการ) และตอนนี้ควรแสดงตารางข้อมูลใน UI โหนดสีแดงของเรา

นอกจากนี้เรายังสามารถเพิ่มปุ่มแดชบอร์ดเพื่ออัปเดตตารางจาก UI ได้อีกด้วย

เริ่มต้นด้วยการสร้างโหนดปุ่ม

เชื่อมต่อโหนดปุ่มกับบล็อกฟังก์ชัน Javascript

ในบล็อกฟังก์ชันเราใส่รหัสต่อไปนี้

msg.topic = "SELECT * FROM alarmdata ORDER BY Green1 DESC LIMIT 20";ส่งคืนข้อความ;

(Green1 เป็นตัวแปรข้อมูลตัวแรกในตาราง)

บล็อกฟังก์ชันนี้จะต้องเชื่อมต่อกับอินพุตของโหนด mysql ของเราที่เราทำไว้ก่อนหน้านี้ในขั้นตอนนี้

ขั้นตอนที่ 7: เสร็จสิ้น

กำลังสรุป
กำลังสรุป

ตอนนี้ UI ของเราควรมีการอัปเดตข้อมูลของเราและตารางที่มีข้อมูลจากเซิร์ฟเวอร์ของเรา

ซึ่งหมายความว่าเราได้สร้างการเชื่อมต่อระหว่าง Arduino โปรแกรมที่ใช้ UI และฐานข้อมูล

หากคุณสนใจในการทำงานของ Arduino Alarm System ฉันได้เพิ่มเอกสารที่อธิบายวิธีการตั้งโปรแกรมและตั้งค่า

เช่นเดียวกับการส่งออกการเขียนโปรแกรม node-red อย่างเต็มรูปแบบ

แนะนำ: