ปิดปั้มที่บ้านแบบ IoT Part 2: Hardware

สำหรับตอนที่ 2 นี้จะต่อจากตอนแรกซึ่งเราได้เซต VPN ไว้เพื่อความปลอดภัยแล้วครับ ในตอนนี้คุณพ่อจะมาเล่าถึง hardware และผมจะมาเล่าถึง software บน Sonoff ครับ


ชุดวงจรควบคุม

อุปกรณ์ที่จะสามารถต่อเข้ากับ wifi ได้ที่คิดออกก็คือ ESP8266 หรือพวก NodeMCU เพราะราคาไม่แพง แต่ต้องเอามาต่อกล่อง, ต่อสายไฟอีกแยะ เลยคิดว่าพวก Sonoff น่าจะสะดวกสุดอีกทั้งไม่แพง วิธีการใช้งานแบบ Basic หรือ stand alone อ่านได้จากในเน็ต

ปัจจุบันมี Sonoff หลาย version มากทั้งแบบ Basic, ต่อได้กับอุปกรณ์ 4 ชนิด, ต่อกับ Temp and Humidity Control, ต่อกับ remote RF433Mhz

แต่เนื่องจาก Relay ที่อยู่บน Sonoff ตัวเล็กมาก แม้ในสเปคบอกว่าสามารถทนได้ 10A แต่ดูแล้วมันไม่น่าเชื่อถือ อีกทั้งบางวันมันต้องทำงานมากกว่า 20 ชั่วโมง จึงจำเป็นต้องเพิ่ม external relay อีกตัวเพื่อความสบายใจ

อุปกรณ์ที่ใช้ควบคุมทั้งหมดมีดังนี้

  1. พระเอกของเรา Sonoff
  2. Relay MY2 ( coil 220 Volt ) พร้อม socket
  3. Breaker 10A เพื่อตัดวงจรออกในกรณีที่ต้องการ service Sonoff หรือปั้มน้ำ short
  4. Terminal พักสาย
  5. กล่องใส่อุปกรณ์ทั้งหมด

บิลนี้อันนี้ยังไม่รวม Sonoff อีก 250 บาท สิริรวมก็ 365+250 = 615 บาท


ปรับ Sonoff ให้ใช้ MQTT

ในฝั่ง software ของ Sonoff นั้นเราจะใช้ firmware ที่รองรับ MQTT ครับ เนื่องจาก firmware ที่ให้มาจะต้องใช้กับแอพของเค้าเท่านั้น ซึ่งตอนนี้ก็จะมี Sonoff-Tasmota สำหรับวิธีการแฟลชนั้นก็จะต้องบัดกรี terminal เข้าไปซะก่อน

(ขออภัยไม่มีภาพถ่าย ผมลืมถ่ายภาพไว้)

ถ้าแกะออกมาจะเห็นแบบในภาพครับ คือมี 5 รูอยู่ด้านข้างตัวเก็บประจุอยู่ (ที่เขียน 1 มีลูกศรไปหา 5 ในภาพ) และอีกฝั่งหนึ่งจะติดกับปุ่มกด ตรงนี้จะต้องบัดกรี terminal เข้าไปแล้วต่อสายเข้า USB TTL ดังนี้ (อ่านวิธีจาก Random Nerd Tutorial ก็ได้ครับ)

  1. พิน 1 ไม่ต้องต่อ (พินที่ 1 คือพินที่อยู่ใกล้กับแถว 9 พินที่ตั้งฉากกัน)
  2. พิน 2 ต่อที่ GND
  3. พิน 3 ต่อที่ RX
  4. พิน 4 ต่อที่ TX
  5. พิน 5 ต่อที่ 3V3 (พินที่ 5 คือพินที่อยู่ใกล้กับปุ่มกด)

จากนั้นให้ต่อ USB TTL เข้ากับคอมโดยกดปุ่มที่ Sonoff ค้างเอาไว้ด้วย (ห้ามต่อไฟ AC เด็ดขาด)

สำหรับการแฟลชสามารถโหลด Sonoff-Tamosta เข้ามาแฟลชด้วย Arduino IDE ได้เลยครับ ดังนี้

  1. ติดตั้ง ESP8266 โดยเปิดหน้า Preferences ตรง Additional Board Manager URLs ระบุ http://arduino.esp8266.com/stable/package_esp8266com_index.json
  2. Tools > Board > Board manager แล้วติดตั้ง ESP8266
  3. เลือกบอร์ดในเมนู Tools > Board > Generic ESP8266 Module
  4. เลือก Flash size เป็น 1M (64K SPIFFS)
  5. เปิดไฟล์ sonoff/sonoff.ino ใน Sonoff-Tasmota
  6. เปิดไฟล์ user_config.h ภายใน project
  7. กำหนด STA_SSID1 เป็นชื่อ Wireless ของเรา และ STA_PASS1 เป็นรหัส wireless สำหรับ STA_SSID2 และ STA_PASS2 เว้นว่างไว้ และส่วนอื่นๆ เราจะไปแก้ในเว็บทีหลัง
  8. กดปุ่ม Upload (ลูกศรชี้ด้านซ้ายของ toolbar)

เมื่อแฟลชเสร็จแล้วก็ทดสอบโดยการดึงสายออกจากคอมแล้วต่อไฟเข้า AC Input จากนั้นกดปุ่มค้างไว้จนไฟกระพริบทีนึง บอร์ดของเราก็น่าจะต่อเข้ามาใน wireless แล้ว เราก็สามารถเข้าไปใน IP ของมันเพื่อ config ต่อได้ (IP ผมใช้วิธีดูจากหน้า DHCP Lease ใน Mikrotik)

สำหรับเมนูที่เราจะตั้งค่าก็คือ Configuration > Configure MQTT แล้วระบุ IP ของ MQTT ไปในช่อง Host และระบุ Topic ด้วยก็ได้

(สำหรับ MQTT เราจะมา setup กันในตอนหน้าครับ)


ต่อวงจร

พอ Flash Sonoff แล้วก็ต่อวงจรตามที่คุณพ่อออกแบบไว้ครับ ดังภาพนี้

โดย SW_OVERRIDE คือ switch อันเดิมของปั้มน้ำที่ติดตั้งไว้อยู่แล้ว เราจะใช้เป็นสวิทช์เพื่อบังคับเปิดในกรณีที่มีปัญหากับ Sonoff ส่วน K1 นั้นคือ Relay (ขวาบนในภาพ) ครับ โดยต่อฝั่ง Coil เข้าสู่ Sonoff และต่อขา NO เข้ากับปั้มน้ำ

สรุป

สำหรับในตอนนี้เราต่อวงจรที่จะไปควบคุมปั้มน้ำ และแฟลช Sonoff ให้ใช้งานกับ MQTT ได้แล้วครับ ในตอนหน้าเราจะติดตั้ง MQTT และอินเทอร์เฟสควบคุมบนเว็บ