หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ Touchscreen Thermostat ด้วย Arduino MKR

วิธีสร้าง Touchscreen Thermostat ที่สวยงาม พร้อมการรองรับ Modbus เสริมผ่าน RS485 ด้วย ArduiTouch MKR

โปรเจกต์ Touchscreen Thermostat ด้วย Arduino MKR

รายการอุปกรณ์และเครื่องมือ

1x Arduino MKR 485 Shield
-
1x Arduino MKR1000
-
1x ArduiTouch MKR
-

รายละเอียดและวิธีทำ

โปรเจกต์นี้อ้างอิงมาจาก ArduiTouch kit สำหรับ Arduino MKR ของเรา คุณสามารถรวมบอร์ด Arduino MKR รุ่นใดก็ได้และ shield เสริมเข้ากับเคสสำหรับติดตั้งบนผนังและหน้าจอ TFT touchscreen สี ในตัวอย่างนี้เราจะใช้มันเพื่อสร้าง MODBUS thermostat ที่ดูสวยงาม

การประกอบ

ในขั้นตอนแรก คุณต้องประกอบ PCB ของ ArduiTouch MKR kit ในวิดีโอด้านบน คุณจะเห็น PCB ที่ประกอบเสร็จแล้ว, เคส และวิธีการเสียบ Arduino MKR1010 และ Arduino MKR 485 shield ลงในสล็อตของ ArduiTouch PCB

ArduiTouch MKR PCB ที่ประกอบแล้ว

ด้านหลังของ ArduiTouch PCB พร้อมโมดูล MKR ที่เสียบอยู่

การตั้งค่า MKR 485 shield

คุณจะพบ DIP switch แบบ 3 ขั้วที่ด้านหน้าของ MKR 485 shield โปรดตั้งค่า DIP switch ตามตำแหน่งดังต่อไปนี้:

การตั้งค่า DIP switch

การเชื่อมต่อกับ RS485 bus

เราจะใช้โหมด half duplex ของ RS485 โปรดทราบ: คุณต้องเชื่อมต่อสาย A และ B ของ RS485 bus เข้ากับเทอร์มินอล Y และ Z ของ MKR 485 shield:

การเชื่อมต่อ RS485 bus

การติดตั้ง Library เพิ่มเติม

ติดตั้ง Library ต่อไปนี้ผ่าน Arduino Library Manager

AdafruitGFX Library :

https://github.com/adafruit/Adafruit-GFX-Library/archive/master.zip

AdafruitILI9341 Library :

https://github.com/adafruit/Adafruit_ILI9341

XPT2046_Touchscreen โดย Paul Stoffregen:

https://github.com/PaulStoffregen/XPT2046_Touchscreen/blob/master/XPT2046_Touchscreen.h

SimpleModbusMKR โดย Hartmut Wendt:

https://github.com/HWHardsoft/SimpleModbusSlaveMKR

คุณยังสามารถดาวน์โหลด Library ได้โดยตรงในรูปแบบไฟล์ ZIP และคลายไฟล์ลงในโฟลเดอร์ yourarduinosketchfolder/libraries/

หลังจากติดตั้ง Adafruit libraries แล้ว ให้รีสตาร์ท Arduino IDE

รันตัวอย่าง (Demo)

โปรดเปิดไฟล์ตัวอย่างนี้ใน Arduino IDE จากนั้นทำการ Compile และ Upload

หลังจาก Compile และ Upload แล้ว คุณจะเห็นหน้าจอหลักพร้อมค่าเริ่มต้นสำหรับอุณหภูมิห้อง (room temperature), การตั้งค่าอุณหภูมิ (set temperature) และการระบายอากาศ (ventilation) คุณสามารถเปลี่ยนค่า set temperature และระดับ ventilation ได้โดยไม่จำเป็นต้องเชื่อมต่อ RS485

คุณสามารถเปิดเมนูตัวเลือกผ่านรูปเฟืองที่มุมขวาบน เมนูนี้ประกอบด้วยฟังก์ชันสำหรับปรับหมายเลข Modbus ID และฟังก์ชันทำความสะอาดหน้าจอ (screen cleaning)

การทดสอบ Modbus

ในตัวอย่างนี้เราจะใช้ PC เป็น MODBUS master คุณต้องดาวน์โหลด Modbustester โปรดแตกไฟล์ zip ไปยังไดเรกทอรีใหม่ในฮาร์ดดิสก์ของคุณ เปิดซอฟต์แวร์และเปลี่ยนฟิลด์ที่ทำเครื่องหมายไว้ตามรูปภาพด้านบน คุณต้องเชื่อมต่อตัวแปลง USB-RS485 ก่อน สำหรับการทดสอบเบื้องต้น การเชื่อมต่อแบบ serial ผ่านสาย USB ระหว่าง PC และ NodeMCU ก็สามารถใช้งานได้เช่นกัน โปรดเลือก COM-port ที่ถูกต้องสำหรับตัวแปลงนี้ใน Modbustester

คุณสามารถกดปุ่ม Read ใน Modbustester คำสั่งนี้จะอ่านค่า 6 bytes จากหน่วยความจำของ ArduiTouch ซึ่งเป็นอุปกรณ์ slave ของเรา คุณยังสามารถคลิกในฟิลด์ข้าง address และแก้ไขค่าต่างๆ ได้ เมื่อกดปุ่ม Write คุณจะส่งค่าที่แก้ไขแล้วเหล่านี้ไปยัง ArduiTouch โปรดดูตารางด้านล่างเกี่ยวกับหน้าที่ของ Register ต่างๆ

Modbus registers

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: touchscreen-thermostat-with-arduino-mkr-a23101
299 บาท
PromptPay QR Code