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

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

 

ตอนที่ 4. - โดย Tumrobot

HomeControl - V4 Hardward และ PCB

แนวคิดในการออกแบบวงจร สำหรับ Home Control - V4

เนื่องจากปัจจุบันนี้ อินเตอร์เน็ตได้มีการเข้าถึงการใช้งานในชีวิตประจำวันของคนทั่วไปแล้ว ดังนั้นตัว HomeControl - V4 นี้จึงออกแบบวงจร เพื่อรองรับการเชื่อมต่อกับอินเตอร์เน็ต สำหรับการสั่งงานควบคุมการเปิด/ปิด รีเลย์ของกล่องเป็นหลัก แต่การสั่งงานควบคุมผ่านวงแลน หรือในสถานที่ที่ไม่มีสัญญาณอินเตอร์เน็ตก็ยังสามารถ ควบคุมได้เช่นเดิม เพียงแต่ว่าเราจะต้องเพิ่มโมดูล Ehernet LAN เข้าไปด้วย

อุปกรณ์ที่สำคัญสำหรับ ตัว Home Control - V4 นั้นคือ WiFi Module ซึ่งในการออกแบบนั้น เราเลือกใช้ ตัว ESP8266 มาเป็นตัวเชื่อมต่อสัญญารอินเตอร์เน็ตให้กับวงจร ซึ่งตัว ESP8266 นั้นมีข้อดีก็คือสามารถเชื่อมต่ออินเตอร์เน็ตด้วยสัญญาณ WiFi และยังสามารถพัฒนาเขียนโปรแกรมลงในตัวโมดูลเพิ่มเข้าไปได้อีกด้วย และเนื่องจากว่าตัว ESP8266 นั้นสามารถเขียนโปรแกรมลงในโมดูลได้ ตัว ESP8266 จึงสามารถเชื่อมต่อระบบ MQTT ได้ด้วยจึงทำให้ค่อนข้างสะดวกในการสั่งควบคุมผ่านระบบอินเตอร์เน็ตเป็นอย่างมาก เนื่องจากว่าถ้าหากเทียบกับวิธีการสั่งงานแบบเก่า ที่เป็นการสั่งงานผ่านเร้าเตอร์ที่มีการ Forward Port แล้ว วิธีการเดิมจะเป็นอะไรที่ยุ่งยากกว่ามาก สาเหตุก็คือ เราต้องเข้าไปทำการ Config เร้าเตอร์ ให้มีการ Forward Port และฝัง URL DDNS ลงไปในเร้าเตอร์ด้วย ซึ่งบางครั้ง ตัว URL DDNS ก็จะมีค่าใช้จ่ายในการใช้งานเพิ่มขึ้นอีกด้วย

   

 

ข้อมูลเพิ่มเติมสำหรับการเขียนโปรแกรมให้กับ ESP8266 สามารถเข้าไปดูรายละเอียดได้ที่

บทความบอร์ดเรียนรู้ระบบ MQTT ด้วย ESP8266

- ตอนที่ 1 ติดตั้ง Arduino IDE สำหรับพัฒนาโปรแกรม ESP8266

- ตอนที่ 2 ทำตัว ESP8266 ให้ บอร์ดทำตัวเองเป็น Access point กรณีที่ยังไม่ได้เกาะ WiFi

 

ส่วนตัวอุปกรณ์หลักที่ทำหน้าที่ควบคุมการทำงานของบอร์ด เราเลือกใช้ MCU เบอร์ PIC18F46K22-I/P เนื่องจาก ว่าตัว Microchip MCU ค่อนข้างเป็นที่นิยมในท้องตลาด และจัดหานำมาใช้งานได้ง่าย โดยตัว PIC18F46K22-I/P นี้มีความสามารถค่อนข้างสูงในระดับ MCU 8 bit ซึ่งมีคุณสมบัติดังต่อไปนี้

- โปรแกรม Flash Memory มีให้ใช้งานได้มากถึง 64K (bytes)

- มี EEprom ภายในตัว 1024 Byte

- มี 2 Hardware Uart ซึ่งจะทำให้สามารถเชื่อมต่อ โมดูล WiFi และ Ethernet LAN โมดูลและทำงานได้อย่างรวดเร็ว

- มี 2 CCP โมดูลภายในซึ่งรองรับการส่งสัญญาณรีโมท และการส่งสัญญาณ PWM เพื่อนำไปใช้ในการหรี่ไฟได้

- มี Timer ให้ใช้งาน ได้มากถึง 7 ตัว แบ่งเป็น Timer 8 bit จำนวน 3 ตัว และ Timer 16 Bit จำนวน 16 ตัว

- มี PIN ให้ใช้งาน I/O ได้มากถึง 36 I/O

   

PIC18F46K22-I/P Datasheet

 

สาเหตุหลักที่ ทำไมถึงต้องใช้ MCU ในการควบคุมการทำงานของบอร์ดเป็นหลัก ทั้งๆที่ตัว WiFi Module ก็สามารถพัฒนาโปรแกรมเพื่อให้ทำงานตามที่เราต้องการได้ ก็เนื่องมากจากว่า จากการทดสอบแล้ว ตัว WiFi Module นั้นไม่สามารถทำงานได้ตัวเองได้อย่างมีประสิทธิภาพ เมื่อมีการหลุดการเชื่อมต่อ Internet หรือ มีการรีเซ็ทตัวเองแล้ว บางครั้งไม่สามารถกลับมาทำงานได้ด้วยตัวเอง และอีกประการหนึ่งก็คือมี Memory และมี I/O ค่อนข้างที่จะจำกัดในการพัฒนา ดังนั้นจึงจำเป็นต้องมี MCU มาทำหน้าที่หลักในการควบคุมบอร์ดแทน และตัว MCU จะคอยทำหน้าที่ตรวจสอบการทำงานของ ESP8266 ด้วยว่ายังทำงานได้ตามปกติหรือไม่ ซึ่งถ้าหากว่าตัว ESP8266 นั้นทำงานผิดปกติ ตัว MCU ก็จะทำหน้าที่คอยรีเซ็ทตัว ESP8266 ให้กลับมาทำงานได้เหมือนเดิม

 

   

จากวงจรนี้เราสามารถแบ่งการทำงานของแต่ละส่วนหลักๆ ได้ดังนี้

1. ส่วนควบคุมนั้นใช้ MCU เบอร์ PIC1846K22-I/P ของ Microchip เป็นตัวคุมควบการทำงานของวงจรทั้งหมด ซึ่งเราเลือกใช้การเขียนโปรแกรมควบคุมด้วยภาษาซี ซึ่งง่ายต่อการเรียนรู้สำหรับผู้เริ่มต้น และสามารถพัฒนาต่อเองได้โดยไม่ยุ่งยาก สำหรับผู้เริ่มต้นเขียนโปรแกรม MCU Microchip ด้วยภาษาซี นั้นสามารถศึกษาข้อมูลเพิ่มเติมได้ที่บทความ

การติดตั้ง โปรแกรม สำหรับพัฒนา PIC MCU ( สำหรับผู้เริ่มต้น )

 

2. ส่วนการทำงานเชื่อมต่อกับอินเตอร์เน็ตเป็น WiFi Module ที่มีความสามารถในการเชื่อมต่อเข้ากับระบบ MQTT ซึ่งเป็น Protocol ในรูปแบบใหม่ของ IOT ที่นำมาใช้งานในการสั่งงานควบคุมอุปกรณ์เครื่องใช้ไฟฟ้าผ่านระบบ อินเตอร์เน็ต

โดยสามารถเข้าไปศึกษาการทำงานของระบบ MQTT ได้เพิ่มเติมได้จากบทความ

ตอนที่ 3 ติดตั้ง MQTT Broker บน Server ด้วย Raspberry Pi

ตอนที่ 4 ทดสอบการควบคุมเปิดปิดรีเลย์ ด้วยระบบ MQTT ผ่าน ESP8266

 

ส่วน Ethernet Interface นั้นเราสามารถใช้ Ethernet Module ต่อเพิ่มเข้ามาซึ่งถ้าหากว่าเราไม่ได้ใช้งานการเชื่อมต่อภายในวงแลน หรือ ในสถานที่ ที่ไม่มีสัญญาณอินเตอร์เน็ตแล้วล่ะก็ เราก็สามารถตัดตัว Ethernet Module ออกจากวงจรหลักได้

ซี่งจากวงจรนี้ส่วนที่ต้องติดต่อกับ Ethernet นี้จะเป็นตัว Interface สัญญาณ Ethernet ซึ่งตัวนี้จะเป็นตัวจัดการเรื่อง Stack TCP/IP ทั้งหมดโดยที่เราไม่ต้องไปยุ่งหรือวุ่นวายกับ Stack ที่ค่อนข้างซับซ้อน เหมาะสำหรับผู้เริ่มต้น และเหมาะสำหรับใช้งานที่ต้องการความแน่นอน แม่นยำค่อนข้างสูง โดยคุณสมบัติพิเศษนั้นของ Ethernet Module ที่มีเพิ่มเข้ามาก็คือเราสามารถค้นหาตัว กล่อง Home Control ที่ตั้ง IP ไม่ตรงกับวง LAN ของเราและแก้ไขได้อย่างง่ายดายผ่านโปรแกรม Vcom และนอกจากนั้นเรายังสามารถแก้ไข IP หรือ Port และการทำงานของ I/O ของ ตัว LAN ได้อย่างง่ายดายได้อีกด้วย

3. ส่วนควบคุม Output เป็นการใช้ MCU สั่งงานชุดขับ Relay ซึ่งวงจรนี้ออกแบบโดยใช้รีเลย์ขนาด 5V ที่รองรับกระแส 10A หรือรองรับกำลังงานเครื่องใช้ไฟฟ้าได้ถึง 2000W โดยสามารถนำ หน้าสัมผัส หรือ Contact ของรีเลย์ มาใช้งานได้โดยตรงโดย

4. ส่วนควบคุมฐานเวลา วงจรนี้ใช้ DS1302 เป็นตัวควบคุมฐานเวลาของระบบ โดยวัตถุประสงค์ก็คือเพื่อใช้งานในส่วนของการแสดงวันเวลาบนหน้าจอแสดงผล และ เป็นฐานเวลาให้กับระบบการตั้งเวลาของกล่อง Home Control โดย DS1302 นี้ต่อเข้ากับ Battery Backup 3V ดังนั้นไม่ว่าจะเกิดเหตุการณ์ไฟฟ้าขัดข้อง หรือมีการ Reset ระบบ ตัวฐานเวลาก็จะสามารถเดินต่อไปได้โดยไม่ต้องมา Set เวลาใหม่

ในส่วนของการ Sync เวลานั้นเนื่องจากว่าตัว WiFi Module นั้นมีความสามารถในการเชื่อมต่อข้อมูลผ่านระบบอินเตอร์เน็ตได้ ดังนั้นการ Sync เวลาจึงสามารถทำได้อย่างอัตโนมัติ โดยการเขียนโปรแกรมเข้าไปดึงเวลาจาก Server ของ google และนำมาเขียนข้อมูลเวลาปัจจุบันให้กับตัว DS1302 ได้อย่างถูกต้องและแม่นยำ

5. ส่วนแสดงผล LCD เป็นจอ LCD Character ขนาด 2 บรรทัด เพื่อให้แสดงผลเวลา ของระบบและ แสดง IP ที่เรา Fix ให้กับกล่อง Home Control และยังนำมาแสดงสถานะ การเชื่อมต่อ MQTT Server ให้เราได้รู้สถานะการทำงานของบอร์ดได้อีกด้วย นอกจากนี้เราก็ยังนำมาแสดงสถานะการเชื่อมต่อของสัญญาณ WiFi ของตัว WiFi Module ว่าขณะนั้น WiFi ปกติ หรือว่า หลุดการเชื่อมต่อออกไปแล้ว

6. ส่วนจ่ายไฟให้กับระบบ เป็นส่วนควบคุมไฟของกล่อง Home Control โดยส่วนนี้จะปรับระดับแรงดันไฟ 220 V ที่ผ่าน Switching Power Supply ซึ่ง Output ที่ออกมานั้นจะมีแรงดันอยู่ที่ 5V จะถูกปรับแรงดันให้เหลือ 3.3V โดยตัว Regulator LM1117-3.3 เพื่อที่ MCU, DS1302 และ WiFi Module จะสามารถทำงานได้โดยไม่มีปัญหาอะไร โดยตัว Switching ตัวใหม่นี้มีการลดขนาด ให้เล็กลงเนื่องจากว่าบอร์ด ขณะทำงานที Load สูงสุดนั้นกินกระแสไม่เกิน 500mA ซึ่ง และการที่เราเลือกใช้ Swicthing ตัวเล็กลงจึงทำให้ตัดปัญหาเรื่องความร้อนสะสมในตัว Switching ออกไปได้อีกด้วย

 

รายการอุปกรณ์ของ Home Control - V4

No.
Part Number Description
Qty
1
SER2ETH Serial to Ethernet Module
1
2
ESP8266 WiFi Module
1
3
PIC18F46K22-I/P 8-Bit PIC MCU Flash 64KBytes, 3936 Bytes RAM
1
4
ISS40T1-06 I.C.SOCKET STAMP PIN 40 PINS
1
5
ZTT20.00MX  CERAMIC RESONATOR 20.0MHZ 3-PINS
1
6
ISS16T1-03  I.C. SOCKET DIP SOLDER TYPE 16 PINS,PITCH 2.54MM.
1
7
DS1302+ TRICKLE CHARGE TIMEKEEPING CHIP
1
8
ISS08T1-03  I.C.SOCKET DIP SOLDER 08 P,2.54MM.
1
9
DT-38-MEC-LF  X-TAL 32.768 KHZ
1
10
BS-5 BATTERY HOLDER VERTICAL TYPE FOR CR2032
1
11
CR-2032L/BE LITHIUM COIN BATTERY,PANASONIC 3V
1
12
LM1117T-3.3/NOPB VOLTAGE REGULATORS , NS
1
13
DS-012-A-PBT-ROHS DC JACK:0.3A 30V DC,2.5mm
1
14
ESP8266 WiFi Module
1
15
PB-22E27-ROHS DC 30V.,0.1A,VERTICAL PUSH SWITCH
1
16
TC-0104-X-ROHS SWITCH:50mA,TACT SWITCH,7.0mm., WEALTH
1
17
RNLA09J0103B0E R-Network 9 Pin,Common Type,10KΩ ±5%
2
18
lcd1602 I2C LCD Adapter  LCD IC2 Module
1
19
ABC016002A15-BIW-R WHITE CHARACTER ON BLUE BACKGROUND
1
20
5EHDRC-3P TERMINAL BLOCK HEADER(SOCKETS) FOR PLUGGABLE
300V/10A ,3PINS
6
21
5ESDV-3P TERMINAL BLOCK PLUGS FOR PLUGGABLE
300V/15A,03PINS
6
22
HRS4H-S-DC5V-C  RELAY COIL 5VDC, 10A,1 FORM C
6
23
EGF477M1CF12TCSAP E-CAP 470UF/16V,105C
2
24
SR215C104KARAP4-90  MLCC CAP 0.1uF/50V, +/-10%, X7R
2
25
PHSS40G10 PIN HEADER CONNECTOR 40 PINS,PITCH 2.54MM,
SINGLE ROW STRAIGHT TYPE
1
26
PN2222ATA TRANSISTOR; NPN BV=70V IC=600MA:FSC
1
27
ULN2003 TRANSISTOR ARRAY-7 NPN DARLINGTONS,+5V-I/P,500MA
1
28
RNLA09J0104B0E  RPAC 100K
1
29
RNLA09J0103B0E  RPAC 10K
1
30
RNLA09J0331B0E  RPAC 330R
1
31
DG126-5.0-02P-14-00A(H)  TERMINAL BLOCK:2PINS, 5MM 
1
32
FHSS16G10/RH P.C. BOARD SOCKET 1*16 PINS,FEMALE HEADER
1
33
FHSS02G10/RH P.C.Board Socket 1x2 Pins Female Header
8
34
FHSS03G10/RH P.C.Board Socket 3 Pins, Female Header
3
35
4N35-LITEON TRANSISTOR OUTPUT,VCE=30V,IC=150MA
1
36
ISS06T1-03 Socket Dip Solder Type 06 Pins
1
37
PCB Print Circuit Board FR4 dubble layer PTH
1
38
Switching 5V Switching Power Supply 5V 600mA
1
39
ABS plastic Box FB22
1
40
Power AC Power Cord
1
41
Nut Spacer + Nut
1
42
LED LED /Green / Red / Blue 3mm
11
43
TAC Switch TAC Switch for Reset
1
44
2 Way Switch 2 Way Switch for Select Run and Program Mode
1
45
R SMD R - 10K/ 1K/ 330R / 4R7 / 47K
7

                 

PCB

   

แสดงการวางอุปกรณ์บน PCB

 

   

แสดงลายวงจรด้านบน พร้อมอุปกรณ์

 

   

แสดงลายวงจร ด้านล่าง พร้อมอุปกรณ์

 

ไฟล์ PCB สามารถนำไปเปิดกับโปรแกรม Protel99 SE สามารถดาวน์โหลดได้จาก ที่นี่

 

รูปแสดงขั้นตอนการประกอบบอร์ด ( คลิ๊กที่รูปเพื่อดูรูปที่ขยาย ขนาดใหญ่ )

 

 

 

 

 

อ่านต่อ ตอนที่ 5 การต่อสวิตช์แม่เหล็กหรือ Motion Sensor เพื่อตรวจเช็คผู้บุกรุก