ระบบตรวจสอบสภาพอากาศในร่มที่ใช้ Raspberry Pi: 6 ขั้นตอน
ระบบตรวจสอบสภาพอากาศในร่มที่ใช้ Raspberry Pi: 6 ขั้นตอน
Anonim
Raspberry Pi-Based ระบบตรวจสอบสภาพอากาศในร่ม
Raspberry Pi-Based ระบบตรวจสอบสภาพอากาศในร่ม

อ่านบล็อกนี้และสร้างระบบของคุณเองเพื่อให้คุณสามารถรับการแจ้งเตือนเมื่อห้องของคุณแห้งหรือชื้นเกินไป

ระบบตรวจสอบสภาพอากาศภายในอาคารคืออะไร และเหตุใดเราจึงต้องการระบบดังกล่าว

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

1) นำสถิติสภาพอากาศ (อุณหภูมิ ความชื้นสัมพัทธ์ และความดัน) จาก Sense HAT มาสู่ Raspberry Pi

2) แสดงข้อมูลที่วัดได้บนเมทริกซ์ LED 8x8 ของ Sense HAT

3) ออกแบบอัลกอริธึมเพื่อตัดสินใจว่าความชื้นในร่มเป็น 'ดี', 'แย่' หรือ 'น่าเกลียด'

4) บันทึกข้อมูลบนคลาวด์และส่งการแจ้งเตือนหากข้อมูลถูกจัดประเภท 'น่าเกลียด' (ชื้นหรือแห้งเกินไป)

เสบียง

Raspberry Pi 3 รุ่น B

Raspberry Pi Sense HAT

ขั้นตอนที่ 1: ซอฟต์แวร์ที่จำเป็น

ซอฟต์แวร์ที่จำเป็น
ซอฟต์แวร์ที่จำเป็น

คุณต้องใช้ MATLAB, Simulink และเลือกโปรแกรมเสริมเพื่อติดตามและสร้างระบบตรวจสอบสภาพอากาศในร่มของคุณเอง

เปิด MATLAB ด้วยการเข้าถึงของผู้ดูแลระบบ (คลิกขวาที่ไอคอน MATLAB และเลือก Run as administrator) เลือกโปรแกรมเสริมจากแถบเครื่องมือ MATLAB แล้วคลิกรับส่วนเสริม

ค้นหาแพ็คเกจการสนับสนุนที่มีชื่ออยู่ด้านล่างและ "เพิ่ม" ได้ที่นี่

NS. แพ็คเกจสนับสนุน MATLAB สำหรับฮาร์ดแวร์ Raspberry Pi: รับอินพุตและส่งเอาต์พุตไปยังบอร์ด Raspberry Pi และอุปกรณ์ที่เชื่อมต่อ

NS. แพ็คเกจสนับสนุน Simulink สำหรับฮาร์ดแวร์ Raspberry Pi: เรียกใช้รุ่น Simulink บนบอร์ด Raspberry Pi

ค. RPi_Indoor_Climate_Monitoring_System: ตัวอย่างแบบจำลองที่จำเป็นสำหรับโครงการนี้

หมายเหตุ - ระหว่างการติดตั้ง ให้ทำตามคำแนะนำบนหน้าจอเพื่อตั้งค่า Pi ของคุณให้ทำงานกับ MATLAB และ Simulink

ขั้นตอนที่ 2: นำข้อมูลเซ็นเซอร์ไปที่ Raspberry Pi โดยใช้ Simulink

นำข้อมูลเซ็นเซอร์มาที่ Raspberry Pi โดยใช้ Simulink
นำข้อมูลเซ็นเซอร์มาที่ Raspberry Pi โดยใช้ Simulink

สำหรับผู้ที่ไม่คุ้นเคยกับ Simulink เป็นสภาพแวดล้อมการเขียนโปรแกรมแบบกราฟิกที่ใช้ในการสร้างแบบจำลองและจำลองระบบไดนามิก เมื่อคุณออกแบบอัลกอริทึมของคุณใน Simulink แล้ว คุณจะสามารถสร้างโค้ดและฝังโค้ดลงใน Raspberry Pi หรือฮาร์ดแวร์อื่นๆ ได้โดยอัตโนมัติ

พิมพ์ต่อไปนี้บน MATLAB Command Window เพื่อเปิดโมเดลตัวอย่างแรก เราจะใช้โมเดลนี้เพื่อนำข้อมูลอุณหภูมิ ความดัน และความชื้นสัมพัทธ์มาไว้ใน Raspberry Pi

>rpiSenseHatBringSensorData

บล็อกเซ็นเซอร์ความดัน LPS25H และเซ็นเซอร์ความชื้น HTS221 มาจากไลบรารี Sense HAT ภายใต้ Simulink Support Package สำหรับไลบรารี Raspberry Pi Hardware

ขอบเขตบล็อกมาจากไลบรารี Sinks ภายใต้ไลบรารี Simulink เพื่อให้แน่ใจว่าโมเดลของคุณได้รับการกำหนดค่าอย่างถูกต้อง ให้คลิกที่ไอคอนรูปเฟืองในโมเดล Simulink ของคุณ ไปที่ Hardware Implementation > Hardware board settings > Target hardware resources

หมายเหตุ – คุณไม่จำเป็นต้องกำหนดค่าหากคุณทำตามคำแนะนำการตั้งค่าขณะติดตั้ง Simulink Support Package สำหรับ Raspberry Pi ที่อยู่อุปกรณ์จะถูกเติมโดยอัตโนมัติไปยังที่อยู่ของ Pi ของคุณ

ตรวจสอบให้แน่ใจว่าที่อยู่อุปกรณ์ที่นี่ตรงกับที่อยู่ IP ที่คุณได้ยินเมื่อ Pi ของคุณเริ่มทำงาน คุณอาจต้องเปิดเครื่อง Pi ใหม่ด้วยหูฟังที่เชื่อมต่อกับแจ็คเพื่อฟังที่อยู่ของอุปกรณ์

คลิกที่ OK และกดปุ่ม Run ดังรูปด้านล่าง ตรวจสอบให้แน่ใจว่า Pi ของคุณเชื่อมต่อกับพีซีผ่านสาย USB หรืออยู่ในเครือข่าย Wi-Fi เดียวกันกับพีซีของคุณ

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

หมายเหตุ - รหัสกำลังทำงานบน Raspberry Pi และคุณกำลังดูสัญญาณจริงผ่านบล็อกขอบเขต Simulink เหมือนกับที่คุณทำหากคุณมีออสซิลโลสโคปเชื่อมต่อกับฮาร์ดแวร์ ค่าอุณหภูมิจากเซ็นเซอร์ทั้งสองจะห่างกันเล็กน้อย คุณสามารถเลือกอุณหภูมิที่สะท้อนอุณหภูมิจริงในห้องของคุณได้อย่างใกล้ชิดยิ่งขึ้น และใช้อุณหภูมินั้นในส่วนต่อๆ ไป ในการทดสอบทั้งหมดด้วย Sense HAT ที่เรามี ค่าอุณหภูมิของเซ็นเซอร์ความชื้น HTS221 นั้นใกล้เคียงกับอุณหภูมิจริงในห้องมากกว่า ด้วยเหตุนี้ เราจึงได้เห็นพื้นฐานของวิธีการนำข้อมูลเซ็นเซอร์จาก Sense HAT มาสู่ Raspberry Pi

ขั้นตอนที่ 3: แสดงข้อมูลเซ็นเซอร์บนเมทริกซ์ LED 8x8

แสดงข้อมูลเซ็นเซอร์บนเมทริกซ์ LED 8x8
แสดงข้อมูลเซ็นเซอร์บนเมทริกซ์ LED 8x8
แสดงข้อมูลเซ็นเซอร์บนเมทริกซ์ LED 8x8
แสดงข้อมูลเซ็นเซอร์บนเมทริกซ์ LED 8x8

ในส่วนนี้ เราจะมาดูกันว่าส่วนการแสดงผลภาพของโครงการนี้ถูกเพิ่มไปยังโมเดลล่าสุดอย่างไร องค์ประกอบ Sense HAT ที่ใช้ในส่วนนี้คือเซ็นเซอร์ความชื้น (เพื่อรับความชื้นสัมพัทธ์และอุณหภูมิ) เซ็นเซอร์ความดัน เมทริกซ์ LED และจอยสติ๊ก จอยสติ๊กใช้เพื่อเลือกเซ็นเซอร์ที่เราต้องการแสดง

หากต้องการเปิดโมเดลตัวอย่างถัดไป ให้พิมพ์ข้อความต่อไปนี้ในหน้าต่างคำสั่ง MATLAB

> rpiSenseHatDisplay

บล็อกจอยสติ๊กมาจากไลบรารี Sense HAT ช่วยให้เรานำข้อมูลจอยสติ๊กไปยัง Raspberry Pi ได้ เช่นเดียวกับบล็อกเซ็นเซอร์ความดันและความชื้นในตัวอย่างก่อนหน้านี้ สำหรับตอนนี้ เรากำลังใช้บล็อก Test Comfort เพื่อแสดง 'ดี' (เมื่อค่าของบล็อกเท่ากับ 1) บนเมทริกซ์ LED มันจะแสดง 'ไม่ดี' เมื่อค่าบล็อกเป็น 2 หรือ 'น่าเกลียด' เมื่อค่าเป็น 3 หรือ 4 อย่างใดอย่างหนึ่ง ในส่วนถัดไป เราจะเห็นอัลกอริทึมจริงที่ตัดสินว่าความชื้นในร่มดี ไม่ดี หรือน่าเกลียด มาสำรวจบล็อคตัวเลือกโดยดับเบิลคลิกที่มัน บล็อกฟังก์ชัน MATLAB ใช้เพื่อรวมโค้ด MATLAB ภายในโมเดล Simulink ของคุณ ในกรณีนี้ เราจะนำ SelectorFcn มาให้ด้านล่าง

ฟังก์ชั่น [ค่า, สถานะ] = SelectorFcn(JoyStickIn, ความดัน, ความชื้น, อุณหภูมิ, ihval)

JoyStickCount ถาวร

ถ้าว่างเปล่า(JoyStickCount)

JoyStickCount = 1;

จบ

ถ้า JoyStickIn == 1

JoyStickCount = JoyStickCount + 1;

ถ้า JoyStickCount == 6

JoyStickCount = 1;

จบ

จบ

เปลี่ยน JoyStickCount

กรณี 1 % แสดงอุณหภูมิใน C

ค่า = อุณหภูมิ;

รัฐ = 1;

กรณี 2% แสดงความดันเป็น atm

ค่า = ความดัน/1013.25;

รัฐ = 2;

กรณี 3 % แสดงความชื้นสัมพัทธ์เป็น %

ค่า = ความชื้น;

รัฐ = 3;

กรณี 4% แสดงอุณหภูมิใน F

ค่า = อุณหภูมิ*(9/5)+32;

รัฐ = 4;

กรณี 5% แสดงผล ดี/ไม่ดี/น่าเกลียด

ค่า = ihval;

รัฐ = 5;

มิฉะนั้น % ไม่แสดง/แสดง 0

ค่า = 0;

รัฐ = 6;

จบ

โดยทั่วไปคำสั่ง Switch-case จะใช้เป็นกลไกควบคุมการเลือก ในกรณีของเรา เราต้องการให้อินพุตจอยสติ๊กเป็นตัวควบคุมการเลือกและเลือกข้อมูลถัดไปที่จะแสดงทุกครั้งที่กดปุ่มจอยสติ๊ก สำหรับสิ่งนี้ เราตั้งค่า if loop ซึ่งเพิ่มตัวแปร JoyStickCount ด้วยการกดปุ่มแต่ละปุ่ม (ค่า JoyStickIn คือ 1 หากมีการกดปุ่ม) ในลูปเดียวกัน เพื่อให้แน่ใจว่าเราจะวนซ้ำระหว่างห้าตัวเลือกที่ให้ไว้ข้างต้น เราได้เพิ่มเงื่อนไขอื่นที่รีเซ็ตค่าตัวแปรเป็น 1 เมื่อใช้สิ่งนี้ เราเลือกค่าที่จะแสดงบนเมทริกซ์ LED กรณีที่ 1 จะเป็นค่าเริ่มต้นเมื่อเรากำหนด JoyStickCount ให้เริ่มต้นที่ 1 และนี่หมายความว่าเมทริกซ์ LED จะแสดงอุณหภูมิเป็นเซลเซียส บล็อกข้อมูล Scroll ใช้ตัวแปรสถานะเพื่อทำความเข้าใจว่าค่าเซ็นเซอร์ใดกำลังแสดงอยู่และควรแสดงหน่วยใด ตอนนี้เรารู้วิธีเลือกเซ็นเซอร์ที่เหมาะสมในการแสดงผลแล้ว เรามาดูกันว่าการแสดงผลจริงทำงานอย่างไร

การแสดงตัวอักษรและตัวเลข

เพื่อแสดงบนเมทริกซ์ Sense HAT LED เราได้สร้างเมทริกซ์ขนาด 8x8 สำหรับ:

1) ตัวเลขทั้งหมด (0-9)

2) ทุกหน่วย (°C, A, % และ °F)

3) จุดทศนิยม

4) ตัวอักษรจากคำว่าดีเลวและน่าเกลียด

เมทริกซ์ 8x8 เหล่านี้ถูกใช้เป็นอินพุตไปยังบล็อก 8x8 RGB LED Matrix บล็อกนี้ส่องสว่าง LED ที่สอดคล้องกับองค์ประกอบเหล่านั้นบนเมทริกซ์ที่มีค่า 1 ดังที่แสดงด้านล่าง

เลื่อนข้อความ

บล็อกข้อมูลการเลื่อนในแบบจำลองของเราเลื่อนดูสตริงที่มีความยาวได้ถึง 6 อักขระ เลือกค่า 6 เนื่องจากเป็นสตริงที่ยาวที่สุดที่เราจะส่งออกในโปรเจ็กต์นี้ เช่น 23.8 °C หรือ 99.1 °F หมายเหตุ ในที่นี้ °C ถือเป็นอักขระตัวเดียว แนวคิดเดียวกันนี้สามารถขยายไปยังสตริงที่มีความยาวอื่นๆ ได้เช่นกัน

นี่คือ-g.webp

www.element14.com/community/videos/29400/l/gif

ในการแสดงสตริงที่มีอักขระ 6 ตัวแต่ละตัวบนเมทริกซ์ 8x8 เราจำเป็นต้องมีรูปภาพขนาด 8x48 ทั้งหมด ในการแสดงสตริงที่มีความยาวสูงสุด 4 อักขระ เราจะต้องสร้างเมทริกซ์ขนาด 8x32 ตอนนี้เรามาดูการไม่ทำอะไรทั้งหมดโดยกดปุ่ม Run การแสดงผลเริ่มต้นบนเมทริกซ์ LED คือค่าอุณหภูมิในหน่วย °C บล็อกขอบเขตจะแสดงสถานะและค่าจากบล็อกตัวเลือก กดปุ่มจอยสติ๊กบน Sense HAT ค้างไว้หนึ่งวินาทีเพื่อตรวจสอบว่าค่าเปลี่ยนไปเป็นเอาต์พุตของเซ็นเซอร์ตัวถัดไปและทำซ้ำขั้นตอนนี้จนกว่าจะถึงค่าสถานะเท่ากับ 5 เพื่อสังเกตอัลกอริทึมที่สลับไปมาในทุกกรณีของการจัดหมวดหมู่ความชื้นในร่ม เปลี่ยนค่าของบล็อก Test Comfort เป็นตัวเลขใดๆ ระหว่าง 1 ถึง 4 สังเกตว่าการเปลี่ยนแปลงค่าของบล็อกในรุ่น Simulink จะเปลี่ยนวิธีการทำงานของโค้ดบนฮาร์ดแวร์ในทันทีได้อย่างไร สิ่งนี้มีประโยชน์ในสถานการณ์ที่ต้องการเปลี่ยนวิธีการทำงานของโค้ดจากตำแหน่งระยะไกล ด้วยเหตุนี้ เราจึงได้เห็นองค์ประกอบสำคัญที่อยู่เบื้องหลังการสร้างภาพข้อมูลของระบบตรวจสอบสภาพอากาศ ในส่วนถัดไป เราจะเรียนรู้วิธีทำให้ระบบตรวจสอบสภาพอากาศภายในอาคารสมบูรณ์

ขั้นตอนที่ 4: ออกแบบอัลกอริทึมใน Simulink เพื่อตัดสินใจว่าความชื้นในร่มนั้น 'ดี', 'แย่' หรือ 'น่าเกลียด'

ออกแบบอัลกอริทึมใน Simulink เพื่อตัดสินใจว่าความชื้นในร่มนั้น 'ดี', 'แย่' หรือ 'น่าเกลียด'
ออกแบบอัลกอริทึมใน Simulink เพื่อตัดสินใจว่าความชื้นในร่มนั้น 'ดี', 'แย่' หรือ 'น่าเกลียด'

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

ค่าความชื้นสัมพัทธ์ใดๆ ในบริเวณนี้ หมายความว่าห้องของคุณอยู่ในสภาพแวดล้อมที่สะดวกสบาย ตัวอย่างเช่น หากอุณหภูมิภายนอกอาคารอยู่ที่ -30 °F ค่าความชื้นสัมพัทธ์ใดๆ ที่ต่ำกว่า 15% ก็เป็นที่ยอมรับได้ ในทำนองเดียวกัน หากอุณหภูมิภายนอกอาคารอยู่ที่ 60 °F ความชื้นสัมพัทธ์ใดๆ ที่ต่ำกว่า 50% ก็เป็นที่ยอมรับได้ ในการจัดหมวดหมู่ความชื้นในร่มเป็นความสบายสูงสุด (ดี) ความสบายโดยเฉลี่ย (แย่) หรือชื้น/แห้งเกินไป (น่าเกลียด) คุณต้องใช้อุณหภูมิภายนอกอาคารและความชื้นสัมพัทธ์ เราได้เห็นวิธีการนำความชื้นสัมพัทธ์มาสู่ Raspberry Pi แล้ว ดังนั้น เรามาเน้นที่การนำอุณหภูมิภายนอกมาใช้ พิมพ์ข้อมูลต่อไปนี้ใน MATLAB Command Window เพื่อเปิดโมเดล:

> rpiOutdoorWeatherData

บล็อก WeatherData ใช้เพื่อนำเข้าอุณหภูมิภายนอกเมืองของคุณ (ใน K) โดยใช้ https://openweathermap.org/ ในการกำหนดค่าบล็อกนี้ คุณต้องมีคีย์ API จากเว็บไซต์ หลังจากสร้างบัญชีฟรีบนเว็บไซต์นี้แล้ว ให้ไปที่หน้าบัญชีของคุณ แท็บคีย์ API ที่แสดงด้านล่างจะให้คีย์แก่คุณ

บล็อก WeatherData ต้องการการป้อนชื่อเมืองของคุณในรูปแบบเฉพาะ เยี่ยมชมหน้านี้และป้อนชื่อเมืองของคุณ จากนั้นเครื่องหมายจุลภาคตามด้วยตัวอักษร 2 ตัวเพื่อระบุประเทศ ตัวอย่าง – Natick, US และ Chennai, IN หากการค้นหาส่งคืนผลลัพธ์สำหรับเมืองของคุณ ให้ใช้สิ่งนั้นในบล็อก WeatherData ในรูปแบบเฉพาะนั้น ในกรณีที่เมืองของคุณไม่พร้อมใช้งาน ให้ใช้เมืองใกล้เคียงที่มีสภาพอากาศใกล้กับคุณ ตอนนี้ดับเบิลคลิกที่บล็อก WeatherData แล้วป้อนชื่อเมืองและคีย์ API ของคุณจากเว็บไซต์

กด Run บน Simulink model นี้เพื่อตรวจสอบว่าบล็อกสามารถนำอุณหภูมิของเมืองของคุณเข้าสู่ Raspberry Pi ได้หรือไม่ ตอนนี้เรามาดูอัลกอริธึมที่จะตัดสินว่าความชื้นในร่มนั้นดี แย่ หรือน่าเกลียด พิมพ์ต่อไปนี้ใน MATLAB Command Window เพื่อเปิดตัวอย่างถัดไป:

>rpisenseHatIHval

คุณอาจสังเกตเห็นว่าบล็อกทดสอบความสบายจากรุ่นก่อนหน้าหายไป และบล็อกใหม่ที่เรียกว่า FindRoom Comfort กำลังจัดเตรียมบล็อก ihval ให้กับตัวเลือก ดับเบิลคลิกที่บล็อกนี้เพื่อเปิดและสำรวจ

เรากำลังใช้บล็อก WeatherData เพื่อนำอุณหภูมิภายนอกมาใช้ ระบบย่อย Humidity Limits แสดงแผนภูมิความชื้นสัมพัทธ์เทียบกับอุณหภูมิกลางแจ้งที่เราเห็นด้านบน ค่าขีดจำกัดความชื้นสูงสุดควรเป็นเท่าใด ทั้งนี้ขึ้นอยู่กับอุณหภูมิภายนอกอาคาร มาเปิดบล็อกฟังก์ชัน DecideIH MATLAB โดยดับเบิลคลิกที่มัน

หากค่าความชื้นสัมพัทธ์เกินขีดจำกัดความชื้นสูงสุด เครื่องหมายจะเป็นค่าบวกตามวิธีที่เราลบข้อมูล แสดงว่าห้องนั้นชื้นเกินไป เรากำลังส่งออก 3 (น่าเกลียด) สำหรับสถานการณ์นี้ เหตุผลเบื้องหลังการใช้ตัวเลขแทนสตริงคือง่ายต่อการแสดงบนกราฟและสร้างการแจ้งเตือน การจำแนกประเภทที่เหลือในฟังก์ชัน MATLAB นั้นขึ้นอยู่กับเกณฑ์ที่เราคิดขึ้นมาเอง เมื่อความแตกต่างน้อยกว่า 10 จะมีการจัดหมวดหมู่ความสบายสูงสุด และเมื่อน้อยกว่า 20 จะเป็นความสบายโดยเฉลี่ยและสูงกว่าที่แห้งเกินไป อย่าลังเลที่จะใช้งานโมเดลนี้และตรวจสอบระดับความสะดวกสบายในห้องของคุณ

ขั้นตอนที่ 5: บันทึกข้อมูลสภาพภูมิอากาศในร่มและข้อมูลที่จัดหมวดหมู่บนคลาวด์

บันทึกข้อมูลสภาพภูมิอากาศในร่มและข้อมูลที่จัดหมวดหมู่บนคลาวด์
บันทึกข้อมูลสภาพภูมิอากาศในร่มและข้อมูลที่จัดหมวดหมู่บนคลาวด์

ในส่วนถัดไปนี้ เราจะมาดูวิธีการบันทึกข้อมูลบนคลาวด์ หากต้องการเปิดตัวอย่างนี้ ให้พิมพ์ข้อความต่อไปนี้ในหน้าต่างคำสั่ง MATLAB

> rpiSenseHatLogData

ในโมเดลนี้ ส่วนที่แสดงของโมเดลตัวอย่างก่อนหน้าจะถูกลบโดยเจตนา เนื่องจากเราไม่ต้องการให้ระบบตรวจสอบแสดงสถิติขณะบันทึกข้อมูลและส่งการแจ้งเตือน เรากำลังใช้ ThingSpeak ซึ่งเป็นแพลตฟอร์ม IoT แบบโอเพ่นซอร์สฟรีที่มีการวิเคราะห์ MATLAB สำหรับด้านการบันทึกข้อมูล เราเลือก ThingSpeak เนื่องจากมีวิธีโดยตรงในการเขียนโปรแกรม Raspberry Pi และบอร์ดฮาร์ดแวร์ราคาประหยัดอื่นๆ เพื่อส่งข้อมูลไปยัง ThingSpeak โดยใช้ Simulink บล็อกการเขียน ThingSpeak มาจาก Simulink Support Package สำหรับไลบรารี Raspberry Pi Hardware และสามารถกำหนดค่าได้โดยใช้คีย์ API เขียนจากช่อง ThingSpeak ของคุณ คำแนะนำโดยละเอียดเกี่ยวกับวิธีสร้างช่องแสดงไว้ด้านล่าง ในการบันทึกข้อมูลบนคลาวด์อย่างต่อเนื่อง คุณต้องการให้ Pi ของคุณทำงานโดยไม่ขึ้นกับ Simulink สำหรับสิ่งนี้ คุณสามารถกดปุ่ม “ปรับใช้กับฮาร์ดแวร์” ในรุ่น Simulink ของคุณ

สร้างช่อง ThingSpeak ของคุณเอง

ผู้ที่ไม่มีบัญชีสามารถลงทะเบียนได้ที่เว็บไซต์ ThingSpeak หากคุณมีบัญชี MathWorks คุณจะมีบัญชี ThingSpeak โดยอัตโนมัติ

  • เมื่อคุณเข้าสู่ระบบแล้ว คุณสามารถสร้างช่องได้โดยไปที่ช่อง > ช่องของฉัน และคลิกที่ช่องใหม่
  • สิ่งที่คุณต้องมีคือชื่อสำหรับช่องและชื่อสำหรับฟิลด์ที่คุณจะเข้าสู่ระบบดังที่แสดงด้านล่าง
  • ตัวเลือก Show Channel Location ต้องการละติจูดและลองจิจูดของเมืองของคุณเป็นอินพุต และสามารถแสดงตำแหน่งภายในช่องบนแผนที่ได้ (ค่าตัวอย่างที่ใช้ในที่นี้มีไว้สำหรับนาติค แมสซาชูเซตส์)
  • จากนั้นกด บันทึกช่อง เพื่อสิ้นสุดการสร้างช่องของคุณ

4ก. แจ้งเตือนหากข้อมูลถูกจัดประเภท 'น่าเกลียด'

เพื่อให้ระบบตรวจสอบสภาพอากาศในร่มสมบูรณ์ เราต้องดูวิธีรับการแจ้งเตือนตามข้อมูลบนคลาวด์ นี่เป็นสิ่งสำคัญเพราะหากไม่มีสิ่งนี้ คุณจะไม่สามารถดำเนินการที่จำเป็นเพื่อเปลี่ยนระดับความสะดวกสบายในห้องได้ ในส่วนนี้ เราจะดูวิธีรับการแจ้งเตือนบนโทรศัพท์ของคุณเมื่อใดก็ตามที่ข้อมูลบนคลาวด์ระบุว่าห้องนั้นชื้นหรือแห้งเกินไป เราจะบรรลุเป้าหมายนี้โดยใช้สองบริการ: IFTTT Webhooks และ ThingSpeak TimeControl IFTTT (ย่อมาจาก If this, that) เป็นบริการออนไลน์ที่สามารถจัดการเหตุการณ์และทริกเกอร์การดำเนินการตามเหตุการณ์

ขั้นตอนในการตั้งค่า IFTTT Webhooks

หมายเหตุ: ลองใช้บนคอมพิวเตอร์เพื่อผลลัพธ์ที่ดีที่สุด

1) สร้างบัญชีบน ifttt.com (หากคุณไม่มี) และสร้างแอปเพล็ตใหม่จากหน้า My Applets

2) คลิกปุ่ม "นี้" สีฟ้าเพื่อเลือกบริการทริกเกอร์ของคุณ

3) ค้นหาและเลือก Webhooks เป็นบริการ

4) เลือกรับคำขอทางเว็บและระบุชื่อสำหรับกิจกรรม

5) เลือกสร้างทริกเกอร์

6) เลือก "ที่" ในหน้าถัดไปและค้นหาการแจ้งเตือน

7) เลือกส่งการแจ้งเตือนจากแอป IFTTT

8) ป้อนชื่อเหตุการณ์ที่คุณสร้างในขั้นตอนที่ 2 ของ IFTTT แล้วเลือกสร้างการดำเนินการ

9) ดำเนินการต่อไปจนกว่าจะถึงขั้นตอนสุดท้าย ตรวจสอบและกดเสร็จสิ้น

10) ไปที่ https://ifttt.com/maker_webhooks และคลิกปุ่มการตั้งค่าที่ด้านบนของหน้า

11) ไปที่ URL ในส่วนข้อมูลบัญชี

12) ป้อนชื่อกิจกรรมของคุณที่นี่และคลิกที่ 'ทดสอบ'

13) คัดลอก URL ในบรรทัดสุดท้ายเพื่อใช้ในอนาคต (พร้อมคีย์)

ขั้นตอนในการตั้งค่า ThingSpeak TimeControl

1) เลือกแอป> การวิเคราะห์ MATLAB

2) คลิกใหม่ในหน้าถัดไปและเลือกทริกเกอร์อีเมลจาก IFTTT แล้วคลิกสร้าง

ส่วนสำคัญที่นี่ในโค้ดเทมเพลตคือ:

Channel ID – ป้อนช่อง ThingSpeak ของคุณที่มีข้อมูล "ค่าความชื้นในร่ม"

IFTTTURL – ป้อน URL ที่คัดลอกมาจากส่วนก่อนหน้า ขั้นตอนที่ 13

readAPIKey – ป้อนคีย์ของส่วน ThingSpeak Channel. Action – คีย์ที่ดำเนินการกับค่าสุดท้าย เปลี่ยนเป็นรายการต่อไปนี้เพื่อทริกเกอร์การแจ้งเตือน

3) บนเว็บไซต์ ThingSpeak ให้คลิกที่ Apps > TimeControl

4) เลือก เกิดซ้ำ และเลือกความถี่ของเวลา

5) คลิกที่บันทึก TimeControl

ตอนนี้ การวิเคราะห์ MATLAB จะทำงานโดยอัตโนมัติทุกๆ ครึ่งชั่วโมง และส่งทริกเกอร์ไปยังบริการ IFTTT Webhooks หากค่ามากกว่าหรือเท่ากับ 3 จากนั้นแอปโทรศัพท์ IFTTT จะแจ้งเตือนผู้ใช้ด้วยการแจ้งเตือนดังที่แสดงในตอนเริ่มต้นของส่วนนี้

ขั้นตอนที่ 6: บทสรุป

ด้วยเหตุนี้ เราจึงได้เห็นแง่มุมที่สำคัญทั้งหมดในการสร้างระบบตรวจสอบสภาพอากาศของคุณเอง ในโครงการนี้ เราได้เห็นแล้วว่า Simulink สามารถใช้เพื่อ –

  • โปรแกรม Raspberry Pi เพื่อดึงข้อมูลจาก Sense HAT ไฮไลท์ - แสดงภาพข้อมูลใน Simulink เนื่องจากโค้ดยังคงทำงานบน Raspberry Pi
  • สร้างการแสดงภาพของระบบตรวจสอบสภาพอากาศในร่ม ไฮไลต์ - เปลี่ยนวิธีการทำงานของโค้ดบนฮาร์ดแวร์จาก Simulink
  • ออกแบบอัลกอริธึมของระบบตรวจสอบสภาพอากาศในร่ม
  • บันทึกข้อมูลจาก Raspberry Pi ลงบนคลาวด์และสร้างการแจ้งเตือนจากข้อมูลที่บันทึกไว้

คุณจะทำการเปลี่ยนแปลงอะไรบ้างกับระบบตรวจสอบสภาพอากาศในร่มนี้ กรุณาแบ่งปันข้อเสนอแนะของคุณผ่านทางความคิดเห็น