




โปรเจกต์นี้ใช้ [Arduino](https://s.shopee.co.th/7fUgFAWSki), Raspberry และ Attiny งานนี้จะทำให้คุณควบคุมและตรวจสอบบ้านตัวเองได้แบบจัดเต็มเลย ไม่ว่าจะเป็นปลั๊กไฟ ม่าน เครื่องทำน้ำอุ่น ไฟ ตัวตรวจจับประตู อุณหภูมิ ฯลฯ
เจ้า Raspberry ตัวนี้ทำหน้าที่เป็น Web Server ควบคุม Arduino ทั้งหมด งานนี้ควบคุมผ่านเว็บเบราว์เซอร์จากที่ไหนในโลกก็ได้ น้องจะใช้มือถือ แท็บเล็ต หรือคอมก็กดเปิด-ปิด Output ได้สบายๆ
เครือข่าย Arduino ของพี่เป็นแบบ Mesh Network หล่อเท่เลยงานนี้
ถ้าชอบโปรเจกต์นี้ อย่าลืมโหวตให้พี่ใน Competitions ข้างบนขวาด้วยนะ ขอบคุณมาก
รายการอุปกรณ์
อุปกรณ์หลายชิ้นพี่เอามาจากของเก่า ถ้าลองหาดีๆ ก็เจอในราคาถูกได้
- 1 [Raspberry Pi](https://s.shopee.co.th/6pvZFdZdRf) 1 B+ ~ $39.95
- 1 Arduino ~ $7.41
- 1 Reed Switch ~ $1.10
- 1 RF 433 Mhz ~$1.3
- 1 relayTemperature [sensor](https://s.shopee.co.th/7VBG2rX65j) ( ตัวอย่าง )
- 3 NRF24L01
โปรแกรม
พี่เขียนโปรแกรมทั้งหมดเองเลย ทั้งบน Raspberry (web server, Python) และ Arduino ทำให้พี่ทำสิ่งเหล่านี้ได้:
- จัดการทุกห้องในบ้าน
- จัดการ Module Arduino
- จัดการตารางเวลาเพื่อสั่งงานอัตโนมัติ
- สร้าง Scenario
- จัดการผู้ใช้
- มี Log เก็บไว้ดู
สคริปต์ Python ช่วยให้:
- รันตารางเวลาที่ตั้งไว้
- รัน Scenario
พี่ใช้ Raspberry เป็น Web Server สำหรับระบบบ้านอัตโนมัติ และเป็น Media Center ด้วย Kodi พี่เริ่มโปรเจกต์ด้วยการถอดรหัสสัญญาณจากเซ็นเซอร์วัดอุณหภูมินอกบ้าน (433 Mhz) จากนั้นก็พัฒนาอินเทอร์เฟซเว็บขึ้นมา (100% responsive)
การสื่อสาร
การสื่อสารเกิดขึ้นระหว่าง Raspberry กับ Arduino:
- Arduino ตัวหนึ่ง (master) (ซึ่งใช้สื่อสารกับ Module อื่นๆ ทั้งหมด) เชื่อมต่อกับ Raspberry ผ่าน USB เพื่อบันทึกข้อมูลที่ได้รับจาก Arduino
- Master ตัวนี้ช่วยให้พี่ดึงอุณหภูมิของห้องที่มันอยู่ได้ ทั้งเปิด/ปิดไฟ และสื่อสารกับ Arduino ตัวอื่นๆ ได้ด้วย
- Arduino ตัวอื่นๆ สื่อสารกับ Master โดยใช้ Module nrf24l01+ ดึงอุณหภูมิของทุกห้อง จัดการไฟ รู้ว่ามีคนส่งจดหมายมาหรือยัง รู้เมื่อมีคนกดกริ่ง รู้เมื่อมีคนผ่านประตูรั้วบ้าน ...
- การใช้ Module nrf24l01+ ทำให้พี่ตั้งเครือข่ายแบบ Mesh ขึ้นมาได้ ซึ่งช่วยให้ Arduino ที่อยู่ไกลจาก Master ยังสามารถสื่อสารกับมันได้ โดยส่งผ่าน Arduino ตัวที่อยู่ระหว่างทาง
ข้างในกล่อง


ข้างในกล่องเราจะเจอ:
- 1 Raspberry (web server และ kodi)
- 1 Arduino Uno
- 1 NRF24L01+
- 1 RF 433Mhz
- 1 Hub USB
- 1 HDD
- 1 Relai
- 1 Temperature sensor
Module NRF24L01 และ RF 433 Mhz

Module ตรวจจับสถานะกริ่งประตู

[Relay](https://s.shopee.co.th/3fyXTmWPbL) (12V) จะทำงานเมื่อมีคนกดกริ่ง Arduino จะส่งการกระทำนี้ไปให้ Master และแสดงผลบนเว็บไซต์ เราสามารถตั้ง Action อื่นๆ ได้ด้วยระบบ Scenario
อุปกรณ์ที่ใช้:
- 1 Arduino Uno
- 1 Relay
- 1 NRF24L01
Module ตู้จดหมาย

Module นี้ทำงานเหมือนเซ็นเซอร์ตรวจจับการเปิด เมื่อมีคนหย่อนจดหมายเข้ามา จะเกิดการ Contact ขึ้น
อุปกรณ์ที่ใช้:
- 1 Trustfire de 3.7v 900 Mh
- 1 Switch Reed $
- 1 Attiny84
- 1 Resistor
- 1 Capacitor
- 1 NRF24L01+
ราคา: $3
Arduino Bell

กระดิ่งนี้จะดังเมื่อมีคนกดกริ่งประตูครั้งแรก
เมื่อกริ่งดัง Master จะรับ Action นั้นมา และด้วยระบบ Scenario มันจะส่งคำสั่งไปให้กระดิ่งดัง
Web Interface

หน้าแรกแสดง Module ทั้งหมด เมื่อผู้ใช้คลิกที่ไอคอน Action จะถูกส่งไปยัง Raspberry ซึ่งส่งต่อไปให้ Master ผ่าน USB และส่งไปยัง Module ที่ถูกต้อง
กราฟประวัติ

ข้อมูลทั้งหมดถูกเก็บใน Database ทำให้พี่สามารถวาดกราฟของข้อมูลต่างๆ ได้
Planning

เราสามารถจัดการตารางเวลาได้สำหรับเซ็นเซอร์และ Module Arduino ทั้งหมด
จัดการเซ็นเซอร์/โมดูล:

จัดการ Scenario

ตัวอย่าง Scenario ที่ส่ง Notification ไปยังสมาร์ทโฟนของพี่ (แอป Android พี่พัฒนาขึ้นเอง) เมื่ออุณหภูมิอยู่ระหว่าง 0° ถึง 3° หรือเมื่ออุณหภูมิต่ำกว่า 0°
แสดง Log

เราสามารถดู Log ทั้งหมดได้
ตัวอย่างการสื่อสารเครือข่าย:
