最近心血來潮的想要折騰raspberry,因此就買了一堆的傳感器,如今主要講解溫度傳感器的使用。python
![屏幕快照 2017-05-29 下午10.31.39](http://7xrkms.com1.z0.glb.clouddn.com/屏幕快照 2017-05-29 下午10.31.39.png)vim
Pin1(GND)接到 P1-06(GND) Pin2(DQ)接到 P1-07(GPIO4) Pin3(VCC)接到P1-01(3.3v)命令行
爲了可以讓系統正確的識別傳感器,咱們須要對**/boot/config.txt**文件進行編輯code
sudo vim /boot/config.txtorm
在文件的未必添加下面的語句ip
dtoverlay=w1-gpio,gpiopin=4get
添加完成以後咱們重啓raspberryit
sudo rebootio
重啓完成以後咱們須要進行/sys/bus/w1/devices目錄form
cd /sys/bus/w1/devices
經過調用ls命令,咱們發現這個目錄會有相似28-0416b3b833ff這樣的一個目錄,這個目錄名稱並是你傳感器的ID,.在目錄下面會有一個w1_slave文件,咱們經過調用 cat命令能夠讀取到傳感器的實時數據。
cd 28-0416b3b833ff ls cat w1_slave
完整的命令以下圖所示 ![屏幕快照 2017-05-29 下午10.42.01](http://7xrkms.com1.z0.glb.clouddn.com/屏幕快照 2017-05-29 下午10.42.01.png) 其中t=30312是我實際測量到溫度值,在上面的圖中的溫度爲30.312度
同時咱們能夠利用python腳原本讀取數據
#!/usr/bin/python def gettemp(id): try: mytemp = '' filename = 'w1_slave' f = open('/sys/bus/w1/devices/' + id + '/' + filename, 'r') line = f.readline() # read 1st line crc = line.rsplit(' ',1) crc = crc[1].replace('\n', '') if crc=='YES': line = f.readline() # read 2nd line mytemp = line.rsplit('t=',1) else: mytemp = 99999 f.close() return int(mytemp[1]) except: return 99999 if __name__ == '__main__': # Script has been called directly id = '28-0416b3b833ff' print "Temp : " + '{:.3f}'.format(gettemp(id)/float(1000))
咱們經過命令行調用,獲得如相似下面的結果
![屏幕快照 2017-05-29 下午10.48.50](http://7xrkms.com1.z0.glb.clouddn.com/屏幕快照 2017-05-29 下午10.48.50.png)