樹莓派應用例項4 環境溫濕度測量(改進)

2021-08-21 07:26:27 字數 4071 閱讀 4013

**:

環境要求

dht11,樹莓派系統,python,rpi.gpio等元件

相關軟體安裝方式見執勤的部落格文章:

開啟i2c,spi,1wire等

乙個意外的驚喜

在設定i2c功能時,偶然發現樹莓派裡有個更強大的功能 device tree (dt) ,在/boot/overlays發現了很多外設驅動,於是仔細閱讀了readme檔案,在272行看到了dht11驅動載入方式,對上章程式進行了簡單的修改,使之更加快速準確

修改config.txt後,我是一臉懵逼,去哪找測量結果?☺

然後開始大量查詢資料,看輸出結果如何查詢,費了半天工夫,也沒找到相關資料,wtf???

又仔細拜讀readme檔案,沒找到任何關於輸出結果的介紹,(黑人問號臉 在最後後一行發現個連線,好神奇呀,點開去看,全英語的,u tm dou i,欺負我英語差。。。

很傷,只能一邊翻譯一邊瞅,瞅完也公尺看懂啥意思

在我決定放棄的時候,我打算最後博一下,去sys/devices檔案下挨個去找,功夫不負有心人,終於找到帶有dht11的檔案,點進去,挨個開啟檢視,最後在iio:device0裡找到 in_humidityrelative_input和in_temp_input倆個檔案,分別對應濕度和溫度,但為啥有時開啟報錯,有時正常呢,心好累

但是iio這個新名詞又是什麼鬼,求老司機帶帶我

大家感受下我得之不易的iio資料夾

/sys/devices/platform/dht11@0/iio:device0

├── dev

├── in_humidityrelative_input

├── in_temp_input

├── name

├── of_node -> ../../../../firmware/devicetree/base/dht11@0

├── power

│ ├── autosuspend_delay_ms

│ ├── control

│ ├── runtime_active_time

│ ├── runtime_status

│ └── runtime_suspended_time

├── subsystem -> ../../../../bus/iio

└── uevent

3 directories, 10 files

也感受下不明覺厲的readme檔案

cat /boot/overlays/readme
在config.txt中新增i2c,spi,以及對dht11的支援

sudo vi /boot/config.txt
#開啟i2c

dtparam=i2c_arm=on

#開啟spi

dtparam=spi=on

#dht11支援

dtoverlay=dht11

具體方法見之前部落格建立raspberrypistate應用的部分

修改settings.py

cd ~/helloworld/helloworld

vi settings.py

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',]

修改urls.py

cd ~/helloworld/helloworld

vi urls.py

from django.conf.urls import include, url

from django.contrib import admin

from helloworld.view import hello

urlpatterns = [

url(r'^hello/$', hello),

url(r'^raspberrypistate/', include('raspberrypistate.urls',namespace="raspberrypistate")),

url(r'^temhum2/', include('temhum2.urls',namespace="temhum2")), #增加這一行

url(r'^admin/', admin.site.urls),

]

配置tmphum2的views.py

配置tmphum2的urls.py

從其他地方複製過來即可

cp /home/pi/helloworld/temhum/urls.py /home/pi/helloworld/temhum2
建立新的程式**temhum2.py

cd ~/helloword/tmphum2

vi temhum2.py

#!/usr/bin/env python

# encoding: utf-8

import commands

#獲取溫度

defgettemperature

():while

true:

res=commands.getoutput("cat /sys/devices/platform/dht11@0/iio:device0/in_temp_input")

if res.isdigit():

return int(res)/1000

#獲取濕度

defgethumidity

():while

true:

res=commands.getoutput("cat /sys/devices/platform/dht11@0/iio:device0/in_humidityrelative_input")

if res.isdigit():

return int(res)/1000

#溫濕度

defgettemhum

(): result="空氣溫度: "+str(gettemperature())+"℃ 空氣濕度:"+str(gethumidity())+"%"

return result

按照慣例重啟uwsgi服務

sudo systemctl restart emperor.uwsgi

.service

在樹莓派瀏覽器輸入

或者在電腦瀏覽器輸入 http://raspberrypi/temhum

這樣寫的python程式簡單了許多有木有,我就想玩個樹莓派裝個b,就又是核心又是驅動的,心好累

介面美化正在學習,求教程,要不幾個字太坑爹了

最後附上樹莓派官方關於dt介紹的連線和在 www.kernel.org 找到的疑似關於iio的介紹

求老司機出個樹莓派使用overlays檔案下所有dtb的系列文章,然後再出個dtb編寫指南啥的,

雲上樹莓派(1) 環境準備

原文 雲上樹莓派 1 環境準備 準備好的裝置包括 樹莓派確實和一張信用卡一般大小,如下圖所示。它有4個usb,1個有線網口,1個hdmi,1個音訊輸出,乙個電源介面,乙個tf卡插口。注意 tf卡介面在usb口的另一面。將 sd卡插入樹莓派的sd卡口,然後接通電源,觀察指示燈。下表是指示燈表示的各種狀...

樹莓派python3 pyqt5環境搭建

樹莓派型號 系統 raspbian gnu linux 9.6 stretch release 9.6 codename stretch 使用命令lsb release a 察看 說明 樹莓派本身自帶 python2 和python3 兩個版本,python 環境不用安裝。把 python 的鏈結刪...

python pyqt4環境搭建

前段時間被提了乙個需求,要做qq定時傳送伺服器介面的exe工具。那好吧,只能把想象中有乙個exe檔案。雙擊出現乙個ui層,輸入要傳送的qq群,呼叫伺服器介面位址,設定傳送時間,這些資訊,然後訊息就biubiubiu傳送出去了。從零開始,只有window系統,那就想搭建執行環境吧。1 python 2...