บทความ Project Home Control Mini (MQTT)

ควบคุมเครื่องใช้ไฟฟ้าในบ้านด้วย Android

 

ตอนที่ 5 HomeControl - Mini ( MQTT ) วงจร และ PCB

- โดย Tumrobot

1. Schematic

ตัวโปรเจ็ค Home Control - Mini (MQTT) เป็นการพัฒนาวงจรและโปรแกรม จากบทความ ตอนที่ 4 ทดสอบการควบคุมเปิดปิดรีเลย์ ด้วยระบบ MQTT ผ่าน ESP8266 ซึ่งเราสามารถนำตัว โมดูล ESP8266 มาเขียนโปรแกรม ด้วย Arduino และอัพโหลดโปรแกรมเข้าไปในโมดูลได้โดยตรงได้เลย ซึ่งการทำงานของบอร์ดก็ไม่ซับซ้อนอะไร ลดจำนวนอุปกรณ์ฝั่ง Client ลงไปได้เยอะพอสมควร นั่นก็หมายความว่าเราไม่จำเป็นต้องมี MCU บนบอร์ดเลย เพียงแค่เราใช้ตัวโมดูล ESP8266 มาขับอุปกรณ์รีเลย์ได้เลย ซึ่งขณะนี้ตัวโมดูล ESP8266 นี้เองก็กำลังเป็นที่นิยม และราคาก็ไม่ได้แตกต่างกับ Arduino MCU ซักเท่าไหร่ อีกทั้งยังมี Spec Hardware และความสามารถที่สูงกว่าตัว MCU อีกด้วย

ปกติแล้วเราสามารถนำตัว โมดูล ESP8266 มาต่อเข้ากับแผงวงจรโปรโตบอร์ด แบบบทความตอนที่ 4 หรือนำตัว Node MCU มาต่อก็ได้ สามารถทำงานได้เหมือนกันครับ

ตัว HomeControl - Mini ( MQTT ) นี้ออกแบบมาเพื่อสำหรับเรียนรู้แล้วฝึกพัฒนาโปรแกรมการทำงานให้เชื่อมต่อกับระบบ MQTT ซึ่งจะสามารถสั่งควบคุมเครื่องใช้ไฟฟ้าผ่านระบบอินเตอร์เน็ตได้หลากหลายช่องทาง ไม่ว่าจะเป็นจาก โทรศัพท์มือถือ Android , iPhone , จากเวปไซต์ คอมพิวเตอร์ หรืออื่นๆ ที่สามารถ Publish ข้อมูลไปที่ MQTT Server ได้ ดังนั้นชุด KIT ตัวนี้จึงประกอบด้วยการทำงาน 2 Mode คือ การทำงานของบอร์ด Mode Run ปกติ และ Mode Programing ซึ่งจะสามารถอัพโหลดโปรแกรมที่เราพัฒนาขึ้นใหม่ ลงไปในตัวโมดูลได้โดยผ่านสาย Serial USB ซึ่งจะค่อนข้างสะดวก สำหรับผู้เริ่มต้น และลดความยุ่งยากในการที่จะต้องมาต้องบอร์ดทดลองขึ้นมาเอง

   

รูปแสดง HomeControl - Mini ( MQTT )

 

 

รูปแสดง อุปกรณ์บอร์ดด้านบน และ อุปกรณ์บอร์ดด้านล่าง

   

 

การทำงานของ วงจร ในแต่ละส่วน

1. ESP8266 เป็น Serial WiFi โมดูลที่กำลังเป็นที่นิยมมากในขณะนี้ ด้วยประสิทธิภาพ และราคาที่ไม่แพง ทำให้นักพัฒนาต่างนำมาพัฒนาให้สามารถนำมาใช้งานได้หลากหลาย และที่ตัวอย่างการใช้งานและคอมมูนิตี้สำหรับแชร์ข้อมูลของตัว ESP8266 ค่อนข้างเยอะมาก ซึ่งตัว ESP8266 นี้นอกจากจะเป็นตัวอุปกรณ์ที่จะทำหน้าที่เชื่อมต่ออินเตอร์เน็ตแล้ว ยังทำหน้าที่เป็นตัวประมวลผลการทำงานหลักของบอร์ด ด้วยซึ่งเราสามารถที่จะพัฒนาโปรแกรมและอัพโหลดโปรแกรมลงไปในบนตัวโมดูลได้

2. ส่วนคุบคุม Output Relay ตัวโปรเจ็คตัวนี้ออกแบบ ให้สามารถควบคุม Ouput ได้ 2 ช่อง ซึ่งเป็นการสั่งเปิดปิด คอนแทกซ์รีเลย์ โดยเรียงจาก NC, C,NO ซึ่งจะสามารถต่อเครื่องใช้ไฟฟ้าได้จากภายนอกกล่องจึง ทำให้ง่ายต่อการแก้ไข และเพิ่มลดขนาดของสายไฟต่างๆ ได้อย่างอิสระตามที่ต้องการ โดยตัวรีเลย์นี้รองรับการใช้งานเครื่องใช้ไฟฟ้า 2000W หรือ 10A

3. ส่วนควบคุมฐานเวลา วงจรนี้ใช้ DS1302 เป็นตัวควบคุมฐานเวลาของระบบ โดยวัตถุประสงค์ก็คือเพื่อใช้งานในส่วนของการแสดงวันเวลาบนหน้าจอแสดงผล และ เป็นฐานเวลาให้กับระบบการตั้งเวลาของกล่อง Home Control โดย DS1302 นี้ต่อเข้ากับ Battery Backup 3V ดังนั้นไม่ว่าจะเกิดเหตุการณ์ไฟฟ้าขัดข้อง หรือมีการ Reset ระบบ ตัวฐานเวลาก็จะสามารถเดินต่อไปได้โดยไม่ต้องมา Set เวลาใหม่ ซึ่งความจริงแล้วตัว โมดูล ESP8266 นั้นก็มีความสามารถในการดึงเวลาจาก Server ได้ แต่เนื่องจากว่า การทำงานในขณะที่ต้องไปดึงเวลามานั้นเป็น process ที่ทำให้ค่อนข้างเสียเวลา ซึ่งจะสามารถไปขัดจังหวะการทำงานของ MQTT process และยังเป็นการสร้าง connection ที่ไม่จำเป็นต่อ server ซึ่งอาจจะมากเกินไปและมีโอกาสเสี่ยงที่จะถูก server block ip ได้ ดังนั้นเราจึ่งทำแค่การนำเวลาปัจจุบันมาอัพเดทให้กับ ตัว RTC และให้ RTC มาควบคุมการทำงานของเวลาในระบบการตั้งเวลา จะเป็นช่องทางที่สะดวกและเสถียรกว่า

4. จอแสดงผล LCD Module เป็นจอแสดงผลแบบ Characteristic จำนวน 16 ตัวอักษร 2 บรรทัด มีโมดูลควบคุมเป็น I2C to LCD ซึ่งจะสามารถทำให้ประหยัดจำนวน PIN ของ MCU เนื่องจากว่าตัว Module ตัวนี้ใช้ PIN ควบคุมการทำงาน เพียงแค่ 2 PIN เท่านั้น ซึ่งรายละเอียดเพิ่มาเติมสามารถอ่านได้จาก บทความนี้

5. ภาคจ่ายไฟ เราใช้ Switching Adapter ขนาด 5V 600mA ซึ่งปัจจุบันนี้ด้วยวิทยาการทางด้านเทคโนโลยีส์ ได้มีการออกแบบและพัฒนาให้ตัว Swithing มีขนาดที่เล็กลงและมีประสิทธิภาพมากขึ้น ดังนั้นเราจึงสามารถ นำตัว Switching มาใส่ลงไปในบอร์ดได้แล้ว ซึ่งตัวนี้จะทำหน้าที่จ่ายแรงดันให้กับ ตัว LM1117-3.3 เพื่อแปลงไฟให้ระบบ โดยตัวที่ต้องการแรงดัน 3.3V นั้นได้แก่ ESP8266 และ DS1302 ส่วน รีเลย์ และ LCD นั้นต้องการใช้งานที่แรงดัน 5V ดังนั้นจึงไม่ต้องการที่จะต้องแปลงไฟ จึงสามารถต่อกับ Adapter ได้เลย ซึ่งตัว Home Control Mini ( MQTT) นี้กินไฟสูงสุดแค่ 250mA เท่านั้น

2. PCB ( การจัดวาง Layout ของอุปกรณ์บน PCB ทั้ง Toplay และ Bottom Layer)

   

 

   

ไฟล์ PCB สามารถดาวน์โหลดได้ ที่นี่

 

อ่านต่อ ตอนที่ 6