8/21/2016

Raspberry PI :: ติดตั้ง OS, Check อุณหภูมิ, ส่งเมล์, กล้อง


Raspberry PI :: ติดตั้ง OS, Check อุณหภูมิ, ส่งเมล์, กล้อง

การติดตั้ง OS
1. Download OS ซึ่งเลือกได้จาก
https://www.raspberrypi.org/downloads/raspbian/
- Jessie มี Desktop
- Wheezy ไม่มี Desktop

2. แตกไฟล์ เอาไฟลื .img เขียนลง SD ที่ต้องการ Formate เป็น Fat32 ทำได้ 2 แบบคือ
2.1. ใช้ Code ผ่าน Terminal
  1.    fdisk -l #หา sdcard
  2.     dd bs=4M if=2012-12-16-wheezy-raspbian.img of=/dev/sdx #ตามที่หาได้

2.2. เปิด .img ด้วย โปรแกรม Disk Image Writer แล้วเลือก SD ที่จะเขียนทับ โดยคลิกขวาที่ไฟล์ .img เลือก Open With Disk Image Writer

3.กรณีใช้สายแปลง HDMI เป็น VGA ต้องแก้ไขไฟล์ config.txt ใน folder boot ด้วย
  1.    disable_overscan=1
  2.     hdmi_force_hotplug=1
  3.     hdmi_group=2
  4.     hdmi_mode=35
  5.     hdmi_drive=2

4. นำไปใส่ Raspberry PI ทดลองเปิด
เพิ่มเติม blog.php?u=3&b=858

วัดอุณหภูมิแล้วแจ้งเตือนด้วย Raspberry PI
ใช้ Sensor รุ่น DHT22 (AM2302) กับ R 4.7K ต่อดังรูป

1.ทำการติดตั้ง BCM2835 C Library
  1.    cd /tmp
  2.     wget http://www.open.com.au/mikem/bcm2835/bcm2835-1.8.tar.gz
  3.     tar -zxvf bcm2835-1.8.tar.gz
  4.     cd bcm2835-1.8
  5.     sudo ./configure
  6.     sudo make
  7.     sudo make install


2.ทำการคอมไพล์และติดตั้ง Adafruit DHT Driver
  1.    cd /tmp
  2.     wget https://raw.github.com/adafruit/Adafrui ... ruit_DHT.c
  3.     sudo gcc Adafruit_DHT.c -l bcm2835 -std=gnu99 -o Adafruit_DHT


3.เปลี่ยน permission เพื่อให้ run ได้ (อาจต้อง chmod 6711 เพื่อให้ run ผ่าน script ได้)
  1.    sudo cp Adafruit_DHT /usr/local/bin/
  2.     sudo chmod 755 /usr/local/bin/Adafruit_DHT

4.ทดสอบ (22 คือรุ่นของ DHT, 23 คือ ขาของ GPIO ที่ต่อ)
ขา GPIO ต่ออันไหนก็ได้ใน ต่อตอนนำไปใช้ต้องเรียกให้ถูกขา
GPIO 26 PIN

 GPIO 40 PIN

  1. Adafruit_DHT 22 23

ผลที่ได้
Using pin #23
Data (40): 0x2 0x13 0x0 0xc2 0xd7
Temp = 19.4 *C, Hum = 53.1 %


วัดแล้วแจ้งเตือนผ่าน email
1.ติดตั้ง Apache, PHP (http://www.unzeen.com/article/2173/)
2.ติดตั้งตัวช่วยส่งเมล์ผ่าน gmail (http://www.sbprojects.com/projects/rasp ... /exim4.php)
  1. sudo apt-get install ssmtp mailutils mpack

แก้ไขไฟล์ /etc/ssmtp/ssmtp.conf
  1. mailhub=smtp.gmail.com:587
  2. hostname=ENTER YOUR RPI'S HOST NAME HERE
  3. AuthUser=YOU@gmail.com
  4. AuthPass=PASSWORD
  5. useSTARTTLS=YES


Example :
  1. #
  2. # Config file for sSMTP sendmail
  3. #
  4. # The person who gets all mail for userids < 1000
  5. # Make this empty to disable rewriting.
  6. #root=postmaster
  7. root=scivalve.suwit@gmail.com
  8.  
  9. # The place where the mail goes. The actual machine name is required no
  10. # MX records are consulted. Commonly mailhosts are named mail.domain.com
  11. #mailhub=mail
  12. mailhub=smtp.gmail.com:587
  13.  
  14. # Where will the mail seem to come from?
  15. #rewriteDomain=
  16.  
  17. # The full hostname
  18. hostname=scivalve.suwit@gmail.com
  19.  
  20. # Are users allowed to set their own From: address?
  21. # YES - Allow the user to specify their own From: address
  22. # NO - Use the system generated From: address
  23. #FromLineOverride=YES
  24.  
  25. AuthUser=scivalve.suwit@gmail.com
  26. AuthPass=Password
  27. useSTARTTLS=YES
  28.  
  29.  



3.สร้าง script PHP สำหรับเช็คอุณหภูมิแล้วส่งเมล์เตือน
  1. <?php
  2. // Read Data From DHT22
  3. $strDateTime = date("Y-m-d H:i:s");
  4. $strDhtData = exec("/usr/local/bin/Adafruit_DHT 22 14");
  5. echo $strDhtData;
  6.  
  7. $pos = strpos($strDhtData, "Temp =");
  8. if ($pos !== false) {
  9.         $startPos = $pos + 6;
  10.         $stopPos = strpos($strDhtData, "*C");
  11.         $temp = trim(substr($strDhtData, $startPos, $stopPos - $startPos));
  12.         //echo "<br>|$startPos|$stopPos|$temp|";
  13.  
  14.         $fp = fopen('/var/www/data.txt', 'a+');
  15.         fwrite($fp, "Date = {$strDateTime}, {$strDhtData}\n");
  16.         fclose($fp);
  17.  
  18.         if(floatval($temp) >= 28){
  19.                 $strToPost = "\nFrom Raspberry : Date = {$strDateTime}, {$strDhtData}\n";
  20.                 echo $strToPost;
  21.  
  22.                 $ret = mail("komkid@gmail.com,suwit.jph@gmail.com,nontiwaza@gmail.com", "High temp alert! in Server Room A." , $strToPost, "From: SCI Raspberry\n");
  23.                 // $ret = mail("nontiwaza@gmail.com", "High temp alert! in Server Room A." , $strToPost, "From: SCI Raspberry\n");
  24.  
  25.                 //$ret = mail("komkid@gmail.com","High temp alert! in Server Room A.", $strToPost, "From: SCI Raspberry\n");
  26.                 if($ret)
  27.                         echo "OK {$temp}";
  28.                 else
  29.                         echo "Failed!";
  30.         }
  31. }
  32.  
  33.  
  34. ?>
  35.  


4.ตั้งเวลาใน crontab ทุก 15 นาที หรือ 10 นาที
  1. 0,15,30,45 * * * * /usr/bin/php /var/www/temp-alert.php


ที่มา : http://www.unzeen.com/article/2388/


กล้อง Web Cam

1. ทำการติดตั้งโปรแกรม Motion
  1. sudo apt-get install motion

2. ทำการแก้ไขไฟล์คอนฟิกของ Motion ที่ /etc/motion/motion.conf
  1. sudo nano /etc/motion/motion.conf

แก้ดังนี้
  1. daemon on
  2. webcam_localhost off
  3. control_localhost off


3.ต่อไปทำการแก้ไข /etc/default/motion เพื่อกำหนดให้โปรแกรม Motion ทำงานเป็น Daemon Service ได้
  1. sudo nano /etc/default/motion

โดยให้ทำการแก้ไขบรรทัด start_motion_daemon=no ให้เปลียนเป็น start_motion_daemon=yes
  1. start_motion_daemon=yes


4. สั่ง Start Motion Server ขึ้นมาได้เลยครับ
  1. sudo service motion start


5.เรียบร้อยแล้วครับ ทำการเปิดเว็บบราวเซอร์เพื่อดูผลงานได้เลย
ทดลองเปิดดูวิดีโอ
http://192.168.0.3:8081

6. สร้าง html ดูผ่านหน้า Web
  1. sudo nano /var/www/motion.html

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Motion Webcam Server</title>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <img src="http://192.168.0.3:8081/" />
  11.  
  12.  
  13. </body>
  14. </html>


7. เวลาเปิดดูก็ให้เปิดไปที่ URL http://192.168.0.3/motion.html

ที่มา https://www.unzeen.com/article/2227/

No comments:

Post a Comment