基于樹(shù)莓派的數(shù)據(jù)采集與存儲(chǔ)_第1頁(yè)
基于樹(shù)莓派的數(shù)據(jù)采集與存儲(chǔ)_第2頁(yè)
基于樹(shù)莓派的數(shù)據(jù)采集與存儲(chǔ)_第3頁(yè)
基于樹(shù)莓派的數(shù)據(jù)采集與存儲(chǔ)_第4頁(yè)
基于樹(shù)莓派的數(shù)據(jù)采集與存儲(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于樹(shù)莓派的數(shù)據(jù)采集與存儲(chǔ)嵌入式綜合實(shí)踐設(shè)計(jì)報(bào)告目錄一、樹(shù)莓派簡(jiǎn)介 3二、配置樹(shù)莓派 41. 樹(shù) 莓派供電 42. 手動(dòng)對(duì) SD存儲(chǔ)卡進(jìn)行寫(xiě)操作( windows ) 43. 連 接筆記本電腦顯示器 5三、硬件電路連接 10四、DHT11簡(jiǎn)介 10五、獲取 DHT11傳感器溫濕度 12六、安裝本地 MYSQ L 14七、連接阿里云 RDS數(shù)據(jù)庫(kù) 17八、上傳數(shù)據(jù)到傳感云 19九、Cron 實(shí)現(xiàn)定時(shí)功能 21樹(shù)莓派簡(jiǎn)介Raspberry Pi( 中文名為“樹(shù)莓派” , 簡(jiǎn)寫(xiě) 為 RPi ,或者 RasPi/RPi) 是為學(xué)生計(jì)算機(jī)編程 教育而設(shè)計(jì),只有信用卡大小的卡片式電腦, 其系統(tǒng)基于 Lin

2、ux 。隨著 Windows 10 IoT 的發(fā) 布,我們也將可以用上運(yùn)行 Windows的樹(shù)莓派。 自問(wèn)世以來(lái), 受眾多計(jì)算機(jī)發(fā)燒友和創(chuàng)客的追 捧,曾經(jīng)一“派”難求。 別看其外表“嬌小”, 內(nèi)“心”卻很強(qiáng)大,視頻、音頻等功能通通皆 有,可謂是“麻雀雖小,五臟俱全”。二、配置樹(shù)莓派1. 樹(shù)莓派供電樹(shù)莓派的供電裝置與智能手機(jī)的充電 器是一樣的?;疽?guī)格為 DC 5V(直流電) ,至 少達(dá)到 700mA的輸出電流, 樹(shù)莓派 2的輸出電 流應(yīng)該更大,比如 1.5A 或 2A。2. 手動(dòng)對(duì) SD存儲(chǔ)卡進(jìn)行寫(xiě)操作( windows )選擇一張 4GB以上的 SD存儲(chǔ)卡, SD卡插入 筆記本電腦卡槽 (

3、或者需要一個(gè)讀卡器 )。下載官方發(fā)行的樹(shù)莓派操作系統(tǒng)發(fā)行包(/downloads) ,并 解壓到本地。用管理員權(quán)限打開(kāi) Fedora ARM Installer ( http:/bit.ly/ISLPc4 下載),將 下載的鏡像寫(xiě)入 SD存儲(chǔ)卡。如下圖:3. 連接筆記本電腦顯示器網(wǎng)絡(luò)設(shè)置: SD卡插入樹(shù)莓派的 SD卡插槽,把 樹(shù)莓派和路由器用網(wǎng)線連接。打開(kāi)電腦“網(wǎng)絡(luò) 和共享中心”, 點(diǎn)擊“WLA(N * )”點(diǎn)擊“屬 性”,點(diǎn)擊“共享”,在“允許其他網(wǎng)絡(luò)用戶(hù) 通過(guò)此計(jì)算機(jī)的 Internet 來(lái)連接”前打勾。查找樹(shù)莓派 IP 地址:打開(kāi)“運(yùn)行”

4、( win+R 鍵),輸入 cmd”,輸入“ arp -a ”,在下圖 中的 0x4 接口下的動(dòng)態(tài)地址就為樹(shù)莓派的 IP 地址。下載 PuTTy,在 Host Name中輸入樹(shù)莓派 IP ,登入樹(shù)莓派: 在下圖頁(yè)面中 login 處輸入樹(shù)莓 派賬號(hào)( pi ),在 password 處輸入密碼 ( raspberry )?;剀?chē)進(jìn)入下圖頁(yè)面樹(shù)莓派的桌面環(huán)境配置:在上 putty 中輸入 sudo apt-get update ; sudo apt-get install tightvncserver 。安裝完成 vnc 服務(wù)后,在上 圖中繼續(xù)輸入以下命令: vncserver :1 (一 定要?jiǎng)?chuàng)

5、建連接端口)。在第一次運(yùn)行時(shí),會(huì)提 示你創(chuàng)建密碼。在連接時(shí)就需要此密碼。下載RealVNC( ),在下 圖中輸入樹(shù)莓派 IP:1( 如 13:1 。在下圖中輸入上面創(chuàng)建的密碼進(jìn)入樹(shù)莓派桌面三、硬件電路連接DHT11 與樹(shù)莓派引腳圖如下:具體電路連接如下DHT11的 VDD連接樹(shù)莓派17號(hào)管腳, GND連接 20號(hào)管腳, DATA連接 18號(hào)管腳實(shí)物圖如下:四、DHT11簡(jiǎn)介數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù) 字信號(hào)輸出的溫濕度復(fù)合傳感器。 它應(yīng)用專(zhuān)用 的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù), 確保 產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。DATA 用于微處理器與 DHT11

6、之間的通訊 和同步 , 采用單總線數(shù)據(jù)格式 , 一次通訊時(shí)間 4ms左右, 數(shù)據(jù)分小數(shù)部分和整數(shù)部分 , 具體格 式在下面說(shuō)明 , 當(dāng)前小數(shù)部分用于以后擴(kuò)展 , 現(xiàn)讀出為零 . 操作流程如下 :一次完整的數(shù)據(jù)傳輸為 40bit, 高位先出。 數(shù)據(jù)格式 :8bit 濕度整數(shù)數(shù)據(jù) +8bit 濕度小數(shù) 數(shù)據(jù) +8bi 溫度整數(shù)數(shù)據(jù) +8bit 溫度小數(shù)數(shù)據(jù) +8bit 校驗(yàn)和數(shù)據(jù)傳送正確時(shí)校驗(yàn)和數(shù)據(jù)等于 “8bit 濕度整數(shù)數(shù)據(jù) +8bit 濕度小數(shù)數(shù)據(jù) +8bi 溫度整數(shù)數(shù)據(jù) +8bit 溫度小數(shù)數(shù)據(jù)”所得結(jié)果 的末 8 位。DHT11發(fā)送響應(yīng)信號(hào) , 送出 40bit 的數(shù)據(jù) , 并觸發(fā)一次信

7、號(hào)采集 , 用戶(hù)可選擇讀取部分?jǐn)?shù) 據(jù). 從模式下 ,DHT11接收到開(kāi)始信號(hào)觸發(fā)一次 溫濕度采集 , 如果沒(méi)有接收到主機(jī)發(fā)送開(kāi)始信 號(hào),DHT11不會(huì)主動(dòng)進(jìn)行溫濕度采集 . 采集數(shù)據(jù) 后轉(zhuǎn)換到低速模式。通訊過(guò)程如圖所示五、獲取 DHT11傳感器溫濕度采用 Python 語(yǔ)言實(shí)現(xiàn)溫濕度的獲取,每執(zhí)行一次程序讀取一次溫濕度的值。采用putty 中的 nano 編輯器完成匯編。步驟如下:登入樹(shù)莓派,獲取 root 權(quán)限進(jìn)入 nano 編輯器,編輯 Python 程序,程序如 下: #! /usr/bin/env pythonimport RPi.GPIO as GPIOimport time cha

8、nnel = 12 data = GPIO.setmode(GPIO.BCM) time.sleep(1)GPIO.setup(channel, GPIO.OUT) GPIO.output(channel, GPIO.LOW) time.sleep(0.02)GPIO.output(channel, GPIO.HIGH) GPIO.setup(channel, GPIO.IN) while GPIO.input(channel) = GPIO.LOW: continuewhile GPIO.input(channel) = GPIO.HIGH: continuewhile j 100:brea

9、k if k 8: data.append(0)else:data.append(1)j += 1 print sensor is working. print data humidity_bit = data0:8 humidity_point_bit = data8:16 temperature_bit = data16:24 temperature_point_bit = data24:32 check_bit = data32:40 humidity = 0 humidity_point = 0 temperature = 0temperature_point = 0 check =

10、0for i in range(8):humidity += humidity_biti * 2 * (7 - i)humidity_point += humidity_point_biti * 2 * (7 - i)temperature += temperature_biti * 2 * (7 - i)temperature_point += temperature_point_biti * 2 * (7 - i)check += check_biti * 2 * (7 - i)tmp = humidity + humidity_point + temperature + temperat

11、ure_pointif check = tmp:print temperature : , temperature, , humidity : , humidityelse:print wrongprint temperature : , temperature, , humidity : , humidity, check : , check, tmp : , tmp GPIO.cleanup()保存( Ctrl+O )并退出( Ctrl+X ) 執(zhí)行此程序( dht11.py ) :python dht11.py六、安裝本地 MYSQL使用管理員權(quán)限運(yùn)行 apt-get 獲取最新的MySQ

12、L及 Python 編程接口(之后用于數(shù)據(jù)庫(kù)編程):sudo apt-get install mysql-server python-mysqldb 安裝過(guò)程中需要輸入 root 管理員的密碼, 該密碼之后用于訪問(wèn)數(shù)據(jù)庫(kù)系統(tǒng)。在本地 MYSQL創(chuàng)建庫(kù)“ test ”, 表“ dht ” 和三個(gè)列“dht_tem ”,“dht_hum”,“dht_time ”mysql -u root 入本地 MySQL;登create databasetest ; 創(chuàng)建數(shù) 據(jù)庫(kù)” test ”USEtest; 選擇數(shù)據(jù)庫(kù)” testcreate table dht 表“ dht ”創(chuàng)建CREATE TABLE

13、 dht(dht_tem DECIMAL(4,1), dht_hum DECIMAL(4,1),dht_timechar(25);創(chuàng)建列“dht tem ”,“dht hum”,dht_time完成后查看建好的表 “dht ”, 如下圖所示:在之前的 dht11.py 中添加如下幾段語(yǔ)句:import MySQLdbconn = MySQLdb.connect(host=localhost,port=3306,user=root, passwd=QAZQAZ, db=test)cur = conn.cursor()value =temperature,humidity,str(time.str

14、ftime(%A %X %Z,time.localtime(time .time()cur.execute(insert into dht (dht_tem,dht_hum,dht_time) values(%s,%s,%s),value)mit()conn.rollback()執(zhí)行 dht11.py : python dht11.py按照之前數(shù)據(jù)庫(kù)的操作方法,可在本地?cái)?shù) 據(jù)庫(kù) MySQL查看到新插入的溫濕度數(shù)據(jù)。 如下圖 所示(已執(zhí)行多次程序):七、連接阿里云 RDS數(shù)據(jù)庫(kù)云服務(wù)器和云數(shù)據(jù)庫(kù) RDS:云服務(wù)上安裝了下 mysql ,在云盾里開(kāi)放 3306 端口,遠(yuǎn)程同 樣能夠正常連接數(shù)據(jù)庫(kù),

15、 但云服務(wù)器里搭建數(shù) 據(jù)庫(kù)可能不如云數(shù)據(jù)庫(kù)來(lái)的穩(wěn)定, 云數(shù)據(jù)庫(kù)更 易維護(hù)。利用實(shí)名賬戶(hù)在阿里云試用一個(gè)月的 免費(fèi)云數(shù)據(jù)庫(kù)。具體操作如下:申請(qǐng)阿里云試用一個(gè)月的免費(fèi)云數(shù)據(jù)庫(kù)登入阿里云 RDS,創(chuàng)建賬號(hào)” dht_zzx ”和創(chuàng)建 數(shù)據(jù)庫(kù)” dht ”登入自己創(chuàng)建的數(shù)據(jù)庫(kù) “ dht ”, 創(chuàng)建表“dht11 ” 和三個(gè)列“dht_tem ”,“dht_hum”,“dht_time ”。 結(jié)果如下:設(shè)置白名單: /0 即不設(shè)置訪問(wèn)限制; 連接信息改為切換外網(wǎng)模式,并將外網(wǎng)地址 保存好。在 dht11.py 中添加如下程序:import requestsimport jsondb =

16、MySQLdb.connect(host=,port=3306,user=dht_zzx,passwd=qaz123,db=dht)cur_db = db.cursor()cur_db.execute(insert into tb_dht (dht_tem,dht_hum,dht_time) values (%s,%s,%s),value) mit()運(yùn)下行:程序,打開(kāi)阿里云數(shù)據(jù)庫(kù),觀察結(jié)果, 如八、 上傳數(shù)據(jù)到傳感云申請(qǐng)傳感云賬號(hào)添加一個(gè)設(shè)備“ dht11 溫濕度采集”,添加兩 傳感器“ dht11 溫度”,“ dht11 濕度”,得 到傳感器 ID 分別為:565274cce4b09325

17、84ded623,5652756ee4b0932584ded624;在個(gè)人中心查看自己的密鑰:c0b419675b8955d2866e224e448b06e1;在 API文檔的插入數(shù)值型傳感器數(shù)據(jù)點(diǎn)查看URL:565274cce4b0932584ded6,2 35652756ee4b0932584ded62, 4al/insert在 dht11.py 中添加如下程序:#wendu apiurl = apiheaders=ak:c0b419675b8955d2866e224e448b06e1,id :value: temperature r = requests.post(apiurl, params=apiheaders

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論