智慧感測與應用實務| 08 :開關檔案、溫度感測器、色彩辨識
▉利用.py檔開關其他檔案
同時間只有一個人可以write,但很多人可同時read
a:
加上b >>就是二進位檔,沒有加b就是文字檔
handle >>那個變數指向那個裝置
f.read()一次把檔案讀回來,下第二次就回傳回空字串>>解決方法:先把讀回來資料放變數
f.readline()>>一次讀一行
f.readlines()>>一次把檔案資料讀回來,以行為單位放入陣列
f. flush()>>馬上把記憶體資料存進硬碟 ,強制清緩衝區。將記憶體資料立即寫入檔案。
▉建議使用: with 語法開檔,只要離開with區段 程式自動關檔
_________________________________
w方式開檔,會先把檔案砍掉再重建
r+開檔會出現錯誤訊息
所以要先判斷檔案是否存在(如下)
import os
if os.path.isfile(“file.txt”):
print(“file exist”)
else:
print(“file not found”)
複製、移動檔案
import shutil
shutil.copy(“a.txt”, “b.txt”)
shutil.move(“b.txt”, “/tmp”)
>>練習待補 20190329 09:38~09:46
__________________________________________________
很多時候 有很多固定的程式碼會讓程式變得很繁雜>>解決方案:做成另外一個檔案,下次直接呼叫就好
mylib.py 內容
m.py 內容
執行結果:
_________________________________________________
package>類似資料夾的概念
但是 如果其他檔案只有import aaa.mylib,會沒有效果
必須該檔案內所有mylib都要改成 aaa.mylib,才會執行
_________________________________________________
▉溫度感測器
DHT11
溫度:0~50度C ±2
濕度:20%~90% ±5%
回應時間:超過兩秒
先下載DHT11_Python-master.zip
https://github.com/szazo/DHT11_Python
檔案下載後放在python路徑下
然後在\\192.168.212.131\pi\python\DHT11_Python-master路徑下,創一個溫濕度執行檔temSensor.py
內容如下:
注意temSensor.py和dht11在同目錄下
執行temSensor.py結果:
cr+z bg背景
CR+C 前景
在指令後加 & >>一起來就在背景>>但要先知道PID值
ps -elf
第四欄就是PID值
但資料太多
所以改打ps -elf | grep python
刪除資料
sudo kill -9 xxxx(PID值)
開機執行
找到>>>/etc/rc.local
# python /home/pi/mydht11.py &
排程程式內,不可以跑有無窮迴圈的程式,不然系統會很容易當機
/etc/crontab
crontab
* * * * *
________________________________________________
▉色彩辨識
先運行Xlaunch,要有這個才會有動作
先進入虛擬環境(因為先前把open cv安裝在虛擬環境中)
下載檔案 https://github.com/alkasm/cspaceFilterPython
檔案解壓縮後放入Python路徑下,並在同目錄cspaceFilterPython-master資料夾 建立color.py
執行color.py,按esc拍照(會存成lane.jpg),我選了一個黃色圖形進行辨識(左下綠色方框先不管它,因為程式其實還沒設定好,結果是錯的)
執行example.py,就可調整lane.jpg,調整到只剩下黃色區塊
在照片上按2(選擇輸出為HSV格式)和b(印出目前最低和最高的邊界)
開啟color.py
把[0 54 29][14 73 89]值
回填前述color.py第4行程式碼
就能辨識黃色這個區塊
___________________________________________________
可修改之語音網址
______________________________________________________
▉樹莓派連結SQL資料庫
>>待補