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 … Read more

Raspberry Pi 3 [Temperature & Humidity Sensor]

สวัสดีและขออภัยที่ห่างหายไป เนื่องจากติดภารกิจทั้งงานราษฏร์และงานหลวงครับ   ครั้งนี้จะเป็นการเริ่มต่อเซนเซอร์ภายนอก เซนเซอร์พื้นฐานที่มีในปัจจุบันก็จะเป็นเซนเซอร์เกี่ยวกับสภาพแวดล้อม ไม่ว่าจะเป็น เซนเซอร์อุณหภูมิ, เซนเซอร์ความชื้นในอากาศ, เซนเซอร์ความชื้นในดิน, เซนเซอร์น้ำ (ทำงานเมื่อมีน้ำมาสัมผัสเซนเซอร์ – ใช้ตรวจเช็คฝนตก), เซนเซอร์แสง (สวิตซ์), เซนเซอร์ความเข้มแสง, เซนเซอร์วัด pH, เซนเซอร์ UV, เซนเซอร์วัดฝุ่นละอองในอากาศ, เซนเซอร์วัดความชื้นในดิน, เซนเซอร์วัดแรงสั่นสะเทือน และเซนเซอร์อื่นๆ อีกมากมาย ซึ่งหลักการทำงานนั้นส่วนใหญ่จะเหมือนกันหมด คือการอ่านค่ามาจากเซนเซอร์ และนำค่านั้นมาแปรผลที่เราสามารถอ่านได้ง่าย   บทความนี้จะเริ่มด้วยเซนเซอร์ที่ Basic ที่สุด เพื่อให้ทุกท่านพอจะได้เห็นหลักการทำงานและเป็นแนวทางในการเชื่อมต่อเซนเซอร์อ่นๆ ต่อไปครับ นั่นคือ เซนเซอร์วัดอุณหภูมิและความชื้น AM2302 (DHT22) นั่นเอง โดยจะมี Pinout ดังนี้ (จากซ้ายบน คือขาที่ 1) ขาที่ 1 คือ VCC รองรับ 3.6-6V ขาที่ 2 คือ Data ขาที่ 3 คือ … Read more

Raspberry Pi 3 [LCD Text Display with Python]

จากตอนที่แล้ว เราทำการเชื่อมต่อจอ LCD 16×2 และเขียน Basic Python ให้สามารถแสดงข้อความง่ายๆ ได้แล้ว ตอนนี้เราจะลองนำค่าที่อยู่ในตัว Raspberry Pi 3 มาแสดง เช่น Date & Time Network Adapter IP Address CPU Percentage Usage CPU Temperature Memory Total Memory Usage Memory Free Disk Total Disk Usage Disk Free เป็นต้น   ** ส่วนตัวผมจะถนัดใช้ nano เป็น text editor นะครับ ส่วนท่านอื่นที่ไม่คล่อง จะใช้ผ่าน vi หรือ text editor บน … Read more

Raspberry Pi 3 [Writing Text to 16×2 LCD]

จากตอนที่แล้วเราได้ทำการเชื่อมต่อ hardware ซึ่งได้แก่ จอ LCD ขนาด 16×2 ผ่าน I2C Module ไปเรียบร้อยแล้วนั้น เราจะเริ่มทำการ Config I2C และเขียน Python เพื่อแสดงข้อความตัวอักษรอย่างง่าย   Enable I2C Module เริ่มด้วยการ login เข้าสู่ Raspberry Pi และใช้คำสั่ง sudo raspi-config บนหน้าจอ Terminal จากนั้นเลือก 5 Interfacing Option และเลือก P5 I2C (Enable/Disable automatic loading…) ทำการคอนเฟิร์ม ด้วยการตอบ YES จากนั้น Reboot   จากนั้นทำการอัพเดทไฟล์ /boot/config.txt ด้วยคำสั่ง sudo nano /boot/config.txt ใส่ข้อความ (หรือ uncomment) … Read more

Raspberry Pi 3 [Drive 16×2 LCD with I2C Interface]

หลังจากตอนที่แล้วเราได้ทำการ setup โปรแกรมที่เราต้องการ ในตอนนี้ขอพูดถึงอุปกรณ์ต่อพ่วงกันบ้าง เพื่อให้ดูเหมือนเข้าสู่ยุค IoT (Internet Of Things) มากขึ้น นั่นคือจอ LCD ระดับเบื้องต้น ขนาด 16×2 ดังรูปนี้ ซึ่งอุปกรณ์ตัวนี้ สามารถแสดงผลได้ 2 แถว แถวละ 16 ตัวอักษร ซึ่งเพียงพอในระดับเบื้องต้นสำหรับการเรียนรู้การเขียนโปรแกรมครับ โดยในตลาดจะมีขายหลายรุ่น เช่น 16×2, 20×4 ไปจนถึง 128×64 อีกทั้งยังมี จอสีประเภท TFT 2.4 นิ้ว, 3 นิ้ว, 3.2 นิ้ว, 4 นิ้ว เป็นต้น และมีแบบหน้าจอสัมผัสให้เลือกใช้งานอีก มากมาย   การเชื่อมต่อจอ 16×2 กับบอร์ด Raspberry Pi 3 โดยทั่วไปแล้ว จะต้องทำการเชื่อมต่อดังรูปด้านล่างนี้             การเชื่อมต่อแบบ 4 bits (ซ้าย) … Read more