Raspberry Pi 3 [Temperature & Humidity Data Chart]
จากตอนที่แล้ว เราได้เขียนคำสั่งเพื่อที่จะดึงค่าจากเซนเซอร์แล้ว ครั้งนี้จะเป็นการใช้วิธีดังค่าดังกล่าว มาเก็บไว้เป็นไฟล์ csv จากนั้นนำไปแสดงเป็นกราฟ โดยแสดงผลผ่าน Web Interface ด้วยวิธีดังต่อไปนี้ครับ สร้างที่เก็บไฟล์ด้วยคำสั่งต่อไปนี้ mkdir –p /home/pi/projects/temp–and–humidity mkdir –p /home/pi/projects/temp–and–humidity/sensor–values cd /home/pi/projects/temp–and–humidity (หากใครไม่ต้องการสร้าง directory เพื่อเก็บข้อมูลตามตัวอย่างนี้ ให้แก้ไฟล์ temp_hud_csv_log.py ด้วยครับ) จากนั้นดาวน์โหลดสคริปด้วยคำสั่งนี้ wget https://sysadmin.psu.ac.th/wp-content/uploads/2018/03/temp_hud_csv_log.txt mv temp_hud_csv_log.txt temp_hud_csv_log.py (เนื่องจาก sysadmin นี้ไม่รองรับการอัพโหลดไฟล์ .py จึงต้องอัพโหลดเป็น .txt ไปก่อน แล้วค่อยเอามา rename เอาเอง) ตรวจสอบและติดตั้ง dependencies ด้วยคำสั่งนี้ sudo easy_install apscheduler และรอจนเสร็จ โดยค่า default สคริปนี้จะถูกเซ็ตให้เป็นเซนเซอร์ AM2302 และใช้ GPIO 4 ซึ่งถ้าหากเราใช้เซนเซอร์และขาคนละขากัน ให้เข้าไปแก้ไฟล์ temp_hud_csv_log.py จากนั้นเริ่มต้นการทำงานด้วยคำสั่ง sudo python temp_hud_csv_log.py รอซัก 2-3 นาที เราจะเห็นว่ามีไฟล์เกิดขึ้นใน sub folder ชื่อ sensor-values ต่อไปเราจะทำการอ่านค่าใน csv files ไปแสดงผลเป็นกราฟด้วย NVD3 charts for d3.js ใช้งานร่วมกับ node.js JavaScript ซึ่งรวมเว็บเซอร์เวอร์ node.js Express เอาไว้ในตัว (ซึ่ง node.js ได้ถูกติดตั้งเป็น official ใน raspberry pi image os file ซึ่งสามารถเช็คเวอร์ชั่นได้จากคำสั่ง node –version) ทำการดาวน์โหลด html file ใส่ไว้ในโฟลเดอร์ย่อย public ด้วยคำสั่งต่อไปนี้ mkdir –p /home/pi/projects/temp–and–humidity/public cd /home/pi/projects/temp–and–humidity/public wget https://sysadmin.psu.ac.th/wp-content/uploads/2018/03/index.txt mv index.txt index.html ท่านสามารถแก้ไขไฟล์ index.html ได้ ไม่ว่าจะเป็น Title, DateTime Format, สีตัวอักษร, สีพื้นหลัง และอื่นๆ ได้เลย จากนั้นติดตั้ง node.js script ด้วยคำสั่งต่อไปนี้ cd /home/pi/projects/temp–and–humidity wget https://sysadmin.psu.ac.th/wp-content/uploads/2018/03/nodejs_webserver_soapws.txt mv nodejs_webserver_soapws.txt nodejs_webserver_soapws.js และทำการติดตั้ง dependencies ของ node.js ด้วยคำสั่งต่อไปนี้ npm install express npm install body–parser npm install csv–parse@1.1.0 npm install glob ** ถ้ามีปัญหาในการเรียก npm เช่น command not found. ให้ติดตั้งด้วยคำสั่ง sudo apt-get install npm ได้เลย ** ** เป็นการติดตั้งใน home folder ของตัวเอง เพราะงั้นไม่ต้องใช้ sudo นำหน้า npm ครับ ** ** csv-parse ผมใช้เป็นเวอร์ชั่น 1.1.0 เนื่องจากเวอร์ชั่นใหม่ ลองคอมไพล์แล้วไม่ผ่าน ** เมื่อเรียบร้อยแล้วลอง start web server service ด้วยคำสั่ง sudo node nodejs–webserver–with–soap–services.js และลองเปิดเว็บด้วย http://[ไอพีของ