การสื่อสารระหว่าง ESP32 กับ Arduino Uno ผ่าน CAN bus เบื้องต้น

ใช้บอร์ด IOXESP32 + IOXESP32 CAN Bus shield ต่อเข้ากับ Arduino Uno + MCP2515 รับ-ส่งข้อมูลเบื้องต้น

รับ-ส่งข้อความ Hello ผ่าน CAN bus

หัวข้อนี้ทดลองใช้ Arduino Uno สื่อสารกับ ESP32 ผ่าน CAN bus แต่เนื่องจากบอร์ด Arduino Uno ไม่รองรับการสื่อสารผ่าน CAN จึงจำเป็นต้องใช้โมดูล MCP2515arrow-up-right มาเป็นตัวกลาง ส่วนฝั่งบอร์ด IOXESP32 ใช้ IOXESP32 CAN Bus shieldarrow-up-right เป็นตัวกลาง

ให้ต่อวงจรดังนี้

ให้ติดตั้งไลบารี่ MCP2515 โดยเข้าไปที่ https://github.com/autowp/arduino-mcp2515arrow-up-right กดปุ่ม Code เลือก Download ZIP

จะได้ไฟล์ไลบารี่นามสกุล .zip มา ให้กด Sketch > Include Library เลือก Add .ZIP Library...

เลือกไฟล์ไลบารี่ได้ที่ได้ดาวน์โหลดมา แล้วกด Open

เมื่อติดตั้งเสร็จแล้ว โปรแกรม ArduinoIDE แจ้งเตือนดังรูป

ให้อัพโหลดโค้ดโปรแกรมต่อไปนี้ลงบอร์ด Arduino

และอัพโหลดโค้ดโปรแกรมต่อไปนี้ลงบอร์ด ESP32

เปิด Serial Monitor ขึ้นมา จะพบว่าบอร์ด Arduino Uno สามารถส่งข้อมูลไปยังบอร์ด ESP32 ผ่าน CAN bus ได้แล้ว

รับ-ส่งค่าแอนะล็อกผ่าน CAN bus

หัวข้อนี้ใช้ Arduino Uno อ่านค่าแอนะล็อกจากวอลุ่ม จากนั้นส่งค่าแอนะล็อกที่อ่านได้ให้ ESP32 แล้วแสดงผลใน Serial Monitor เป็นตัวอย่างการใช้บอร์ด Arduino Uno ช่วยขยายขาต่อใช้งานให้ ESP32

ให้ต่อวงจรดังนี้

ที่ฝั่ง Arduino Uno ให้อัพโหลดโค้ดโปรแกรมต่อไปนี้

ที่ฝั่งบอร์ด ESP32 ให้อัพโหลดโปรแกรมต่อไปนี้

เปิด Serial Monitor ฝั่ง ESP32 ขึ้นมา จะพบว่าฝั่ง ESP32 สามารถรับค่าแอนะล็อกที่ส่งผ่าน CAN bus มาได้แล้ว

แก้ไขโค้ดโปรแกรมเล็กน้อย ให้ IOXESP32 แสดงผลค่าที่อ่านได้บน 4-Digit shield ได้ผลตามวีดีโอด้านล่างนี้

Last updated