How-to: เชื่อมเซ็นเซอร์ I2C/SPI เข้าสู่ระบบ IIoT ใน 6 ขั้นตอน — จาก Pull-up Resistor ถึง MQTT บน Edge Gateway
ก่อนข้อมูลเซ็นเซอร์ตัวเดียวจะไปถึงหน้าจอ SCADA หรือ Dashboard บนคลาวด์ได้ มันต้องเดินทางผ่านสองบัสเล็กๆ ที่วิศวกรอิเล็กทรอนิกส์ทุกคนรู้จัก — I2C และ SPI ทั้งคู่เกิดในยุค 80s แต่ยังเป็นปากทางของเซ็นเซอร์อุตสาหกรรมส่วนใหญ่ที่ขายในท้องตลาดทุกวันนี้ บทความนี้สรุปวิธีเชื่อมสองบัสนี้เข้าสู่ระบบ IIoT อย่างเป็นขั้นตอน พร้อมกับดักที่เจอบ่อยในโรงงานจริง เข้าใจสองบัสให้ชัดก่อนออกแบบ I2C ใช้สายแค่ 2 เส้น (SDA, SCL) แบบ open-drain ต้องมีตัวต้านทาน pull-up เสมอ ระบุอุปกรณ์ด้วย address 7 หรือ 10 bit จึงต่อหลายเซ็นเซอร์บนบัสเดียวได้ แลกมาด้วยความเร็วที่ต่ำกว่า SPI และข้อจำกัดเรื่องความจุบัสรวมประมาณ 400 pF ซึ่งแปลว่าสายควรสั้นกว่า 1 เมตร ฝั่ง SPI ใช้ 4 เส้น (MOSI, MISO, SCLK, CS) สื่อสารแบบ full-duplex เร็วได้หลักสิบ MHz แต่ต้องมีสาย CS แยกทุกอุปกรณ์ ทำให้จำนวนขาโตตามจำนวนเซ็นเซอร์ ตารางเทียบ I2C กับ SPI แบบที่วิศวกรใช้ตัดสินใจก่อนลงมือออกแบบบอร์ด 6 ขั้นตอนจากบอร์ดต้นแบบสู่ระบบจริง เลือกเซ็นเซอร์และบัสให้ตรงงาน — ถ้าต้องการอ่านค่าถี่สูงเช่น ความสั่น 100 kHz ของ I2C อาจไม่พอ ให้ใช้ SPI หรือเซ็นเซอร์ที่มี ADC ในตัวแล้วส่งค่าสำเร็จรูป ออกแบบวงจรให้ถูกหลัก — คำนวณค่า pull-up ของ I2C จากความเร็วและความจุบัส (ยิ่งเร็วยิ่งต้องลดค่าตัวต้านทาน) จัดเส้นสัญญาณให้สั้นและห่างจากแหล่งสัญญาณรบกวนเช่นสายมอเตอร์ ทดสอบ signal integrity ก่อนขยายระบบ — ใช้ oscilloscope ดู rise time ของ SDA/SCL และ noise margin ปัญหาที่เจอบ่อยคือ pull-up อ่อนเกินไปทำให้ waveform ไม่ถึง threshold ในเวลาที่กำหนด ต่อระยะไกลอย่างถูกวิธี — เมื่อเซ็นเซอร์อยู่ไกลกว่าที่บัสบอร์ดรับได้ อย่ายืดสาย I2C ตรงๆ ให้ใช้ตัวแปลงระดับบัสเป็นลิงก์ทนทานก่อน เช่น differential transceiver หรือย้ายฝั่ง controller ไปอยู่ใกล้เซ็นเซอร์แล้วส่งข้อมูลดิจิทัลแทน เขียนไดรเวอร์ตาม register map…









