สั่งเปิดปิดไฟบน Arduino ผ่าน Raspberry Pi ด้วย node serialport

การใช้งาน Raspberry Pi ร่วมกับ Arduino มีหลายวิธีการ หนึ่งในนั้นคือการให้ทั้ง2อุปกรณ์ คุยกันผ่านทาง Serial Port  ซึ่งเป็นการส่งข้อมูลเเบบอนุกรม คือเป็นการส่งทีละ 1 bit

Node-serialport คืออะไร?
คือ javascript framework ทำหน้าที่ติดต่อสื่อสารระหว่าง hardware ผ่าน Serial Port ได้โดยตรง ทำให้เราสามารถเขียน javascript บน Raspberry Pi เพื่อควบคุม Arduino ได้

เเต่ก่อนที่เราจะใช้งาน Node-serialport ได้นั้น จำเป็นต้องติดตั้ง Node.js บน Raspberry Pi ก่อน สำหรับการติดตั้ง Node.js มีขั้นตอนง่ายๆเพียงเเค่สั่ง

    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt-get install -y nodejs

ถ้าสั่ง node -v && npm -v เเล้วปรากฎ version ของ node เเละ npm ก็เเปลว่าติดตั้ง Node.js เรียบร้อย
ต่อไปเป็นการติดตั้ง node-serialport ใช้คำสั่ง


         npm install serialport

เเค่นี้ก็ติดตั้ง node-serialport เรียบร้อย

ตัวอย่างการเขียนไฟล์ .js 
ใช้ editor ตัวใดก็ได้ (ในที่นี้ใช้ vim) สั่ง 

        vim main.js  

เพื่อสร้างไฟล์
เขียน code ตามรูปนี้

เป็น code ที่ทำหน้าที่ Write string "on", "off" สลับกันทุกๆ 1 วินาที ออกทาง Port /dev/ttyACM0
ในฝั่ง Arduino ให้เขียน code ตามรูปนี้



Code จะทำงานโดยการอ่านค่าจาก Serial Port โดยคำสั่ง Serial.readString(); เก็บค่าที่อ่านมาได้ว่าในตัวเเปร data เเล้วนำไปเช็คว่าตรงกับเงื่อนไงที่เราอยากได้หรือไม่


ต่อวงจรตามรูปนี้
เเล้วนำสาย USB ของ Arduino ต่อกับ USB Port /dev/ttyACM0 ของ Raspberry Pi เเล้วสั่ง

      node main.js 

เพื่อ run ไฟล์ที่เราเขียนไว้ จากนั้น LED ที่ต่อกับ Arduino จะเริ่มกระพริบ ซึ่งเเปลว่า Raspberry Pi ของเราติดต่อกับ Arduino ผ่าน Serial Port สำเร็จเเล้วครับ เเละ Code ในตัวอย่างนี้ก็สามารถนำไปประยุคต์ใช้ได้อีก เช่น จากที่ Arduino Serial.print() ออกมา สามารถ print ค่าที่ get มาจาก sensor ต่างๆ ส่งให้ Raspberry Pi ได้


ความคิดเห็น

แสดงความคิดเห็น

บทความที่ได้รับความนิยม