Smart Farm EP.4 เตรียมซอฟต์แวร์สำหรับระบบสมาร์ทฟาร์มให้พร้อม

Smart Farm EP.4 เตรียมซอฟต์แวร์สำหรับระบบสมาร์ทฟาร์มให้พร้อม

หลังจากในบทความที่แล้ว ที่เราได้ทำการเตรียม Home Assistant จนพร้อมใช้งานบน Edgebox RPi200 แล้ว อันดับต่อมา เราก็จะมาทำการเตรียมเครื่องมือต่างๆใน Home Assistant ที่จำเป็นสำหรับการสร้าง Dashboard, Automation ต่างๆที่จำเป็น

เตรียมเครื่องมือต่างๆใน Home Assistant ให้พร้อม

ติดตั้ง Mosquitto Broker สำหรับการรับค่าและส่งค่าไปยังโหนดต่างๆ

โดยไปที่ Settings > Add-ons > Add-on Store แล้วค้นหา Add-on ที่มีชื่อว่า Mosquitto broker

 

 


กด Install เพื่อติดตั้ง Mosquitto Broker

 

กด Start เพื่อเริ่มการทำงานของ MQTT Broker ได้เลย

 

เพียงเท่านี้ MQTT Broker ของเราก็พร้อมใช้งานแล้ว โดยกลับไปที่โหนดต่างๆที่เราได้เตรียมไว้ ให้นำข้อมูลไปกรอกในส่วนของไฟล์ secret.py ในบอร์ดที่ได้ทำการโปรแกรมไปแล้ว โดยมีรายละเอียด ดังนี้

 

  1. แทนที่ด้วย IP address ของ Home Assistant 
  2. แทนที่ ด้วย username ที่เราใช้ในการ Login เข้าใช้งาน Home Assistant
  3. แทนที่ ด้วย password ที่เราใช้ในการ Login เข้าใช้งาน Home Assistant

หลังจากแก้ไขข้อมูลทั้งหมดเสร็จสิ้น กด Save
เพียงเท่านี้โหนดเซนเซอร์ต่างๆของเรา ก็สามารถที่จะเชื่อมต่อมาที่ MQTT Broker ที่เราติดตั้งไว้ได้แล้ว


ติดตั้ง Node-RED และ HACS สำหรับจัดการข้อมูลที่จะเข้าสู่ระบบ

อันดับต่อมา เราจะมาทำการติดตั้ง Node-RED ที่เป็นเครื่องมือสำหรับการจัดการข้อมูลที่เราจะได้รับมาจากเซนเซอร์โหนดต่างๆ

ไปที่ Settings > Add-ons > Add-on Store แล้วค้นหา Add-on ที่มีชื่อว่า Node-RED

 

 

กดเข้าไปเพื่อทำการกด Install ได้เลย

 

 

หลังจากทำการติดตั้งแล้ว ไปที่หัวข้อ Configuration เพื่อทำการตั้งค่า Credential Secret (เป็นเหมือนรหัสผ่าน) และ ปิดการทำงาน SSL แล้วกด Save

 

 


กลับมาที่หัวข้อ Info แล้วกด Start เพื่อเริ่มการทำงานของ Node-RED ได้เลย

 

 

ตอนนี้เราก็จะได้ Node-RED พร้อมสำหรับการสร้าง Flow แล้ว แต่ก่อนที่เราจะไปทำการสร้าง Flow เพื่อจัดการข้อมูลนั้น เราจำเป็นที่จะต้องติดตั้งเครื่องมือสำหรับการนำข้อมูลเข้าสู่ Home Assistant ด้วย Node-RED ก่อน โดยการติดตั้ง Node-RED Companion ซึ่งต้องมีการติดตั้งผ่าน HACS (Home Assistant Community Store) ซึ่งเราก็จะต้องมาติดตั้ง HACS ด้วย โดยมีวิธีการ ดังนี้

 

ไปที่ Settings > Add-ons > Add-on Store ค้นหา Add-on ที่มีชื่อว่า Advance SSH & Web Terminal โดยคลิกเข้าไปเพื่อทำการติดตั้งได้เลย

 

 

 

หลังจากทำการติดตั้งแล้ว ไปที่หัวข้อ Configuration เพื่อทำการตั้งค่า Password แล้วกด Save

 

 

กลับไปที่หัวข้อ Info แล้วเริ่มการทำงาน โดยกดที่ Start

 

 

หลังจากนั้น ไปที่เมนูด้านซ้าย เลือก Terminal

 


โดยเมื่อเข้าไปแล้ว ทำการติดตั้ง HACS (Home Assistant Community Store) โดยใช้คำสั่ง

 

wget -O - https://get.hacs.xyz | bash -

 

แล้วกด Enter


โดยหลังจากการติดตั้ง HACS เสร็จสิ้น ให้ทำการรีสตาร์ต Home Assistant หนึ่งครั้ง โดยไปที่ Developer Tools แล้วเลือก Restart

 

 


รอสักครู่หนึ่ง จนกระทั่งการรีสตาร์ตเสร็จสิ้น ไปที่ Settings > Devices & Services > Add Integration แล้วค้นหาโดยใช้คำว่า HACS แล้วคลิกเพื่อติดตั้ง

 


หลังจากคลิกเพื่อติดตั้งแล้ว ทำการทำเครื่องหมายถูกทั้ง 4 ช่อง แล้วกด Submit

 

 

จะพบกับหน้านี้ ให้ทำการคลิกที่ลิงก์ดังภาพ เพื่อเปิด Github

 

 

โดยเมื่อเข้าเว็บไซต์ไปแล้ว กรณีที่ยังไม่มีบัญชี Github ให้ทำการสมัครให้เรียบร้อย แล้วกลับไปคลิกลิงก์ที่หน้า Home Assistant ใหม่ กรณีที่มีบัญชีแล้ว ให้ทำการ Login ให้เรียบร้อย แล้วกลับไปคลิกลิงก์ที่ Home Assistant จนมาพบหน้านี้ ให้ทำการนำเอารหัสที่แสดงใน Home Assistant มากรอกลงในช่องว่างให้ถูกต้อง แล้วกด Continue

 

 

กดปุ่ม Authorize hacs

 

 

หากสำเร็จ จะปรากฏหน้าต่างนี้ขึ้นมา

 


กลับไปที่ Home Assistant จะพบกับหน้านี้ ดังภาพ ให้กด Finish

 

 

สังเกตที่ด้านซ้าย จะพบกับเมนูใหม่ปรากฏขึ้นมา ชื่อว่า HACS ให้กดเข้าไป

 

 

เลือก Integrations > Explore & Download repositories

 

 

 

ทำการค้นหาโดยใช้คีย์เวิร์ดว่า nodered จะพบผลลัพธ์ดังภาพ ให้คลิกเข้าไป

 


คลิกที่ปุ่ม Download ทางด้านขวาล่าง

 

 

ทำการรีสตาร์ต Home Assistant อีกครั้ง

 

 

หลังจากรีสตาร์ตเสร็จสิ้น ให้ไปที่ Settings > Devices & Services > Add Integration แล้วค้นหาโดยใช้คำว่า nodered จนพบกับ Node-RED Companion ให้ทำการคลิกเพื่อติดตั้งได้เลย

 

 


คลิก Submit

 


คลิก Finish

 

จะปรากฏ Node-RED Companion ใน Devices ของ Home Assistant แล้ว

 

เพียงเท่านี้ Node-RED ก็พร้อมที่จะจัดการข้อมูลที่เราจะป้อนเข้าสู่ระบบแล้ว แต่ก่อนที่เราจะไปสร้าง flow กันนั้น เราจะมาติดตั้งเครื่องมือที่เหลืออีก 2 ส่วน ดังนี้


ติดตั้งใช้งานและสร้างฐานข้อมูลด้วย InfluxDB

โดยไปที่ Settings > Add-ons > Add-on Store แล้วค้นหา Add-on ที่มีชื่อว่า InfluxDB

 

 

กด Install เพื่อทำการติดตั้ง

 

 

ที่หัวข้อ Configuration ให้ทำการปิดฟังก์ชัน SSL แล้วกด Save

 


ทำการเปิดสวิตช์ในส่วนของ Watchdog และ Show in Sidebar แล้วทำการกด Start

 


โดยหลังจากกด Start จะพบกับเมนูใหม่ปรากฏขึ้นมาทางด้านซ้าย ชื่อว่า InfluxDB ให้ทำการรอประมาณ 1 นาที รอจนกระทั่ง InfluxDB เริ่มทำงาน ก่อนทำการคลิกเข้าใช้งาน

 

 

โดยเมื่อคลิกเข้าไปแล้ว เลือกเมนูด้านขวาในหัวข้อ InfluxDB Admin แล้วเลือก Create Database

 

 

ทำการตั้งชื่อฐานข้อมูลเป็นภาษอังกฤษ แล้วคลิกเครื่องหมายถูกสีเขียวด้านหลัง

 

 

โดยเราสามารถกำหนดระยะเวลาที่จะให้ฐานข้อมูลของเราจัดเก็บข้อมูลได้ โดยคลิกที่ปุ่ม Edit แล้วกรอกวันที่ต้องการลงไปในช่อง Duration แล้วกด Save

 

 


สร้างผู้ใช้งานสำหรับให้ระบบสามารถเขียน-อ่านข้อมูลจากฐานข้อมูลได้ โดยไปที่หัวข้อ Users เลือก Create User

 

 

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

 


หลังจากตั้งค่าเสร็จสิ้น กด Create เพื่อบันทึกค่า

ทำการกำหนดสิทธิ์สำหรับการจัดการข้อมูลของผู้ใช้งานใหม่ที่เราพึ่งสร้างขึ้นมา โดยในกรณีที่เราจะใช้ชื่อผู้ใช้งานนี้กับทั้ง Node-RED และ Grafana ให้ทำการกำหนดสิทธิ์ให้ผู้ใช้งานนี้สามารถ เขียน และ อ่าน ข้อมูลบนฐานข้อมูลได้

 


เพียงเท่านี้ เราก็จะได้ ฐานข้อมูลสำหรับการจัดเก็บข้อมูลของเซนเซอร์จากโหนดต่างๆ พร้อมทั้งชื่อผู้ใช้งานสำหรับการนำไปใช้งานร่วมกับ Node-RED และ Grafana แล้ว

 


ติดตั้งใช้งาน Grafana สำหรับการอ่านข้อมูลจากฐานข้อมูล

โดยไปที่ Settings > Add-ons > Add-on Store แล้วค้นหา Add-on ที่มีชื่อว่า Grafana

 


ทำการกด Install เพื่อติดตั้งใช้งาน

ที่หัวข้อ Configuration ให้ทำการปิดฟังก์ชัน SSL แล้วกด Save

 


ทำการเปิดสวิตช์ในส่วนของ Watchdog และ Show in Sidebar แล้วทำการกด Start

 


โดยหลังจากกด Start จะพบกับเมนูใหม่ปรากฏขึ้นมาทางด้านซ้าย ชื่อว่า Grafana ให้ทำการรอประมาณ 1 นาที รอจนกระทั่ง Grafana เริ่มทำงาน ก่อนทำการคลิกเข้าใช้งาน

 


โดยเมื่อเข้ามาแล้ว คลิกที่สัญลักษณ์ 3 ขีดหน้าคำว่า Home ทางด้านซ้ายบน เลือก Connection > Add new connection

 


เลือกประเภทฐานข้อมูลเป็น InfluxDB

 


เลือก Create a InfluxDB data source

 


โดยเมื่อเข้ามาที่หน้านี้แล้ว เราจะต้องทำการกรอกข้อมูลเพื่อเชื่อมต่อฐานข้อมูล InfluxDB ของเราที่ได้สร้างมาเมื่อสักครู่ เข้ากับ Grafana โดยมีรายละเอียดข้อมูลต่างๆที่ต้องกรอก ดังนี้

 

 

  1. ชื่อแหล่งที่มาข้อมูล : ชื่อที่ใช้ในการเรียกแหล่งที่มาข้อมูลนี้ สามารถตั้งได้ตามใจชอบ
  2. ที่อยู่เซิฟเวอร์ InfluxDB : สามารถดูได้จากลิงก์ด้านบนเวลาที่เราเปิดใช้งาน InfluxDB (รายละเอียด ดังภาพด้านล่าง)

 

 

 

      3. ชื่อฐานข้อมูล : ที่เราได้ทำการสร้างไว้ ในขั้นตอนของการสร้างฐานข้อมูลบน InfluxDB
      4. ชื่อผู้ใช้งาน : ที่เราได้ทำการสร้างไว้ในขั้นตอนของการสร้างผู้ใช้งานบน InfluxDB
      5. รหัสผ่านฐานข้อมูล : ที่เราได้ทำการสร้างไว้ในขั้นตอนของการสร้างผู้ใช้งานบน InfluxDB

หลังจากกรอกข้อมูลทั้งหมดเสร็จสิ้น กดปุ่ม Save & Test เพื่อทำการทดสอบอ่านค่าจากฐานข้อมูล หากสามารถอ่านค่าจากข้อมูลได้ จะปรากฏดังภาพ

 


ติดตั้งใช้งาน ESPhome สำหรับการควบคุมรีเลย์ด้วย Raspberry Pi Pico W

โดยไปที่ Settings > Add-ons > Add-on Store แล้วค้นหา Add-on ที่มีชื่อว่า ESPHome

 


ทำการกด Install เพื่อติดตั้งใช้งาน

ทำการเปิดสวิตช์ในส่วนของ Watchdog และ Show in Sidebar แล้วทำการกด Start

 


โดยหลังจากกด Start จะพบกับเมนูใหม่ปรากฏขึ้นมาทางด้านซ้าย ชื่อว่า ESPHome ให้ทำการรอประมาณ 1 นาที รอจนกระทั่ง ESPHome เริ่มทำงาน ก่อนทำการคลิกเข้าใช้งาน

 

 

กด New Device เพื่อสร้างอุปกรณ์ใหม่

 


กด Continue

 


ทำการตั้งชื่ออุปกรณ์, ชื่อ WiFi (SSID) และ รหัสผ่านของ WiFi ที่บอร์ด Raspberry Pi Pico W จะทำการเชื่อมต่อ

 


เลือกบอร์ดเป็น Raspberry Pi Pico W 

 

 

กด Install เพื่อติดตั้ง

 


คลิก Manual download เพื่อดาว์นโหลดไฟล์ UF2 เข้าสู่คอมพิวเตอร์

 


เลือกแบบ Modern format

 

 

หากเจอ Error ลักษณะนี้ ให้ทำการกด Close ไปก่อน

 


คลิกที่สัญลักษณ์ สามจุดทางด้านขวาล่าง แล้วเลือก Install

 

 

รอโปรเจ็ค Compile เสร็จสิ้น 

 


หลังจากโปรเจ็กต์คอมไฟล์เสร็จสิ้น คำว่า Download project จะกลายเป็นสีฟ้า

 


หลังจากกด Download มาแล้ว เราก็จะได้ไฟล์ UF2 มา

 


อันดับต่อมา ในการอัพโหลดไฟล์ UF2 เข้าสู่ตัวบอร์ด Raspberry Pi Pico W นั้น เราจะต้องทำการเปิดโหมดในการอัพโหลด โดยการกดปุ่ม BOOTSEL บนตัวบอร์ดค้างไว้ โดยระหว่างนั้นให้นำปลายสาย USB อีกฝั่งเชื่อมต่อเข้ากับคอมพิวเตอร์ (ในขณะที่ปุ่ม BOOTSEL ยังคงถูกกดอยู่)

 


หลังจากเชื่อมต่อบอร์ดและคอมพิวเตอร์แล้ว จะพบกับไดรฟ์ของบอร์ด Raspberry Pi Pico ให้ทำการคัดลอกไฟล์ UF2 ที่ดาว์นโหลดมาจาก ESPHome เข้าสู่ตัวบอร์ด 

 

 


ไฟล์กำลังถูกอัพโหลดเข้าสู่ตัวบอร์ด Raspberry Pi Pico W

 

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

 


โดยในอันดับต่อมา เราก็จะมาทำการเขียนโปรแกรมในการควบคุม GPIO ของ Raspberry Pi Pico W 
โดยจากการที่เราจะใช้งาน Industrial 8-Channel Relay Module for Raspberry Pi Pico โดยใช้ Relay ตัวที่ 7 และ 8 ซึ่งใช้งาน GP15 และ GP14 ตามลำดับ

 

สามารถโปรแกรมได้ โดยการกด EDIT แล้วทำการเพิ่มโค้ดในส่วนของการควบคุม GPIO ของ Raspberry Pi Pico W โดยใช้โค้ดข้างต้น

 

 

switch:
  - platform: gpio
    name: "Solinoid 1"
    pin: 14
  - platform: gpio
    name: "Solinoid 2"
    pin: 15

 

 

หลังจากนั้นทำการกด Save และ Install
 

 

เลือกการอัพโหลดแบบ Wirelessly 

 

 

ระหว่างการอัพโหลดโปรแกรมชุดใหม่เข้าสู่ตัวบอร์ดอย่างไร้สาย หลังจากที่ได้มีการติดตั้ง ESPHome ลงบอร์ด Raspberry Pi Pico W เป็นพื้นฐานไปก่อนหน้าแล้ว

 

 

หลังจากอัพโหลดเสร็จสิ้น จะปรากฏดังภาพด้านล่าง ให้ทำการกด Stop ออกไปได้เลย

 


โดยเมื่อกลับมาที่ Home Assistant ไปที่ Settings > Devices & Services จะพบกับอุปกรณ์ที่ถูก Discovered ใหม่ โดยจะเป็นชื่ออุปกรณ์ที่เราได้ตั้งค่าไว้ใน ESPHome ให้ทำการกด Configure

 

 

กด Submit

 


กด Finish

 


โดยเมื่อกลับมาที่หน้า Devices & Services จะพบกับอุปกรณ์ใหม่ ให้คลิกเข้าไป

 


จะพบกับสวิตช์ที่ใช้ควบคุม GPIO ทั้ง 2 ตัว ที่เราตั้งชื่อไว้ว่าเป็น Solinoid Valve นั่นเอง

 


ลองทดสอบนำ Raspberry Pi Pico W มาใช้งานร่วมกับ Industrial 8-Channel Relay Module for Raspberry Pi Pico

 

 

ผลลัพธ์ที่ได้ คือสามารถควบคุมการทำงานของรีเลย์ผ่านสวิตช์บน Home Assistant ได้ตามปกติ ตาม GPIO ที่เราได้กำหนดไว้ใน ESPHome

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

อุปกรณ์ฮาร์ดแวร์


โพสต์ที่เกี่ยวข้อง

Smart Farm EP.1 เข้าใจคอนเซ็ปต์การสร้างด้วย Home Assistant

Smart Farm EP.1 เข้าใจคอนเซ็ปต์การสร้างด้วย Home Assistant

มาลองสร้างระบบ Smart Farm ขนาดเล็กที่สามารถสเกลเพื่อนำไปใช้งานในระบบขนาดใหญ่ได้ ด้วยความสามารถของระบบหลังบ้านอย่าง Home Assistant ที่ทำงานอยู่บน Raspberry Pi..
Smart Farm EP.2 เตรียมพร้อมโหนดเซนเซอร์ (อากาศ, แสง, ดิน)

Smart Farm EP.2 เตรียมพร้อมโหนดเซนเซอร์ (อากาศ, แสง, ดิน)

เตรียมพร้อม โปรแกรมการทำงานเซนเซอร์โหนดต่างๆ ไม่ว่าจะเป็น เซนเซอร์วัดค่าทางอากาศ, แสงสว่าง และดิน..
Smart Farm EP.3 เตรียม Edgebox RPi200 ให้พร้อมใช้งาน

Smart Farm EP.3 เตรียม Edgebox RPi200 ให้พร้อมใช้งาน

เตรียมพร้อมเซิฟเวอร์บน Edgebox RPi200 ให้พร้อมสำหรับการใช้งาน โดยการติดตั้ง Bootloader ใหม่ และติดตั้ง Home Assistant บน M.2 SSD..
Smart Farm EP.5 : จัดการข้อมูลด้วย Node-RED

Smart Farm EP.5 : จัดการข้อมูลด้วย Node-RED

Node-RED เป็นหนึ่งในเครื่องมือจัดการข้อมูลประสิทธิภาพสูง ที่จะช่วยให้การดำเนินการต่างๆกับข้อมูล สามารถทำได้ครบ จบในที่เดียว ซึ่งเหมาะกับงานจัดการข้อมูลจากเซนเซอร์..
Smart Farm EP.6 สร้าง Dashboard บน Home Assistant + Grafana

Smart Farm EP.6 สร้าง Dashboard บน Home Assistant + Grafana

เริ่มต้นสร้าง Dashboard สวยงาม สำหรับใช้งานบน Home Assistant พร้อมทั้ง Dashboard สำหรับการตรวจสอบข้อมูลอย่างละเอียดบน Grafana..