資料介紹
描述
四川雅安東北部的蒙頂山,山巒起伏,自西向東,掩映在一片綠海之中。這是 36 歲的鄧先生最熟悉的景象,他是他那一代為數(shù)不多的蒙頂茶師之一,擁有 50 畝(=3.3 公頃)的種植園,海拔 1100 米。鄧出身于制茶世家,但繼承家族遺產(chǎn)并非易事。“我們的茶葉生長在高海拔的有機(jī)環(huán)境中,以確保其卓越的品質(zhì)。但同時(shí)生長密度低,成本高,出芽不均勻,茶葉采收困難。這就是為什么高山茶通常是小收成,它們的價(jià)值在市場上沒有體現(xiàn)。” 過去兩年,鄧一直在努力提高消費(fèi)者對高山茶的認(rèn)識,以提升其價(jià)值。而當(dāng)他遇到范主時(shí),
硬件連接
該項(xiàng)目的硬件可以分為 4 個部分:電源、傳感器、節(jié)點(diǎn)和網(wǎng)關(guān)。以下文章將向您展示如何逐步完成它。
電源部分
電源部分主要包含一塊太陽能電池板和一塊鋰電池,如果你只是為了演示而搭建這個項(xiàng)目,可以忽略它們。或者您可以按照上一教程安裝節(jié)點(diǎn)電源。
傳感器部分
在傳感器部分,由于傳感器較多,我們使用了一個氣象站,還做了一個亞克力支架來安裝它們。
如上圖所示,Digital Light Sensor 始終位于頂部,以便它可以收集照明信息。會產(chǎn)生熱量的傳感器安裝在亞克力支架的中間,例如 O2 傳感器、灰塵傳感器和 CO2 傳感器。最后,亞克力支架底部的溫濕度傳感器。
此外,土壤溫度和濕度傳感器單獨(dú)安裝在土壤中。
節(jié)點(diǎn)部分
節(jié)點(diǎn)部分是一個安裝在防水??盒中的 Seeeduino LoRaWan,它通過水接頭連接到電源和傳感器。其中,灰塵傳感器連接到LoRaWan的數(shù)字引腳D3,二氧化碳傳感器連接到引腳D4和D5,土壤傳感器連接到引腳D6和D7,O2傳感器連接到模擬引腳A1,光傳感器和氣壓傳感器連接到I2C端口。
注意:應(yīng)在土壤傳感器的藍(lán)色(數(shù)據(jù))電纜和紅色(Vcc)電纜之間添加一個 10k 電阻器。
Seeeduino LoRaWan 偶爾收集傳感器值,并通過 LoRa 將它們發(fā)送到網(wǎng)關(guān)。數(shù)據(jù)格式如下:
?
{ [0], /* Air tempreature(℃) */ [1], /* Air humidity(%) */ [2], /* Altitude(m) high byte */ [3], /* Altitude(m) low byte */ [4], /* CO2 concentration(PPM) high byte */ [5], /* CO2 concentration(PPM) low byte */ [6], /* Dust concentration(pcs/0.01cf) high byte */ [7], /* Dust concentration(pcs/0.01cf) low byte */ [8], /* Light intensity(lux) high byte */ [9], /* Light intensity(lux) low byte */ [10], /* O2 concentration(%) */ [11], /* Soil temperature(℃) */ [12], /* Soil humidity(%) */ [13], /* Battery voltage(V) */ [14] /* Sensor error code */ }
?
Sensor Error Code 字節(jié)中的每一位都有不同的含義,如下所示:
?
{ bit0: 1; /* Barometer Sensor Error */ bit1: 1; /* CO2 Sensor Error */ bit2: 1; /* Dust Sensor Error */ bit3: 1; /* Light Sensor Error */ bit4: 1; /* O2 Sensor Error */ bit5: 1; /* Soil Sensor Error */ reserved: 2; /* Reserved */ }
?
網(wǎng)關(guān)部分
網(wǎng)關(guān)部分是一個Raspberry Pi,它插入了網(wǎng)關(guān)模塊RHF0M301-868和PRI 2 Bridge RHF4T002,它安裝在防水??盒中并通過水接頭連接到電源和USB攝像頭。因?yàn)樗褂脤iT的固件,請按照Seeed Wiki進(jìn)行配置。
軟件編程
作為Hardware Connection,Software Programming也可以拆分,可以拆分為3個部分:Node、Gateway和Website。
節(jié)點(diǎn)部分
大部分 Node Part 需要的驅(qū)動已經(jīng)包含在 origin_driver 中
文件夾。下面的庫需要手動安裝:
Adafruit_ASFcore
由于項(xiàng)目復(fù)雜,我們建議您使用 Microsoft Visual Studio 而不是 Arduino IDE。一個名為 Visual Micro 的插件可以幫助您使用 Visual Studio 構(gòu)建 Arduino 項(xiàng)目,單擊此處了解更多信息。
為了更好的可讀性和可維護(hù)性,我們這次使用面向?qū)ο缶幊獭T擁?xiàng)目的類圖如下所示:
對于那些已經(jīng)有 OOP 驅(qū)動程序的傳感器,我們重新打包以適應(yīng)這個項(xiàng)目,對于其他傳感器,我們使用 OOP 重寫了它們的驅(qū)動程序。中間件層的Sensor類用于統(tǒng)一實(shí)際傳感器的接口,例如氣壓計(jì)傳感器可以同時(shí)采集溫度、濕度和高度,所以它有3個接口分別獲取溫度、濕度和高度。但是他們有不同的方法名,這會使獲取傳感器值的程序更加復(fù)雜,就像這樣:
?
barometer->getTemperature(); barometer->getHumidity(); barometer->getAltitude(); // ... another_sensor->getSomeValue(); // ...
?
但是使用 OOP,它看起來像這樣:
?
for (auto i = 0; i < SENSORS_COUNT; i++) { sensors[i]->getValue(); }
?
我們還打包了一個Application類,它實(shí)現(xiàn)了IApplication接口,IoTea.ino中的setup()和loop()方法可以調(diào)用Application對象中的setup()和loop()方法。
注意:USB 串行僅用于調(diào)試。調(diào)試后,請注釋掉setup()方法中的初始化代碼。
網(wǎng)關(guān)部分
Gateway Part 在主文件夾中的 Python 程序用于每小時(shí)拍照并上傳到 Amazon S3 服務(wù)器。在你使用它之前,確保 fswebcam 已經(jīng)安裝在你的 Raspberry Pi 中:
?
sudo apt-get update && sudo apt-get install fswebcam
?
如果要上傳照片,請按照以下步驟配置您的 AWS。首先,使用以下命令將 AWS SDK 和 AWS CLI 安裝到您的 Raspberry Pi:
?
sudo pip install boto3 sudo pip install awscli
?
然后,運(yùn)行 AWS CLI:
?
sudo aws configure
?
配置您的 AWS 訪問密鑰 ID、AWS 秘密訪問 ID 和默認(rèn)區(qū)域名稱。
如果你不喜歡上傳你的照片,你可以跳過 AWS 配置步驟和 photo.py 中關(guān)于上傳的注釋代碼。為了每次啟動樹莓派后運(yùn)行這個程序,可以在/etc/init.d中創(chuàng)建一個名為photo的文件,并寫入如下代碼。
?
#!/bin/bash # /etc/init.d/photo ### BEGIN INIT INFO # Provides: seeed_photo # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: photo taking initscript # Description: This service is used to manage photo taking ### END INIT INFO case "$1" in start) echo "Start taking photo" /home/rxhf/photo.py & ;; stop) echo "Stop taking photo" kill $(ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{ print $2 }') ;; *) echo "Usage: service photo start|stop" exit 1 ;; esac exit 0
?
設(shè)置執(zhí)行權(quán)限
?
sudo chmod 777 /etc/init.d/photo sudo chmod 777 /home/rxhf/photo.py
?
并測試它
?
sudo /etc/init.d/photo start
?
如果沒有問題,將其停止并將其添加到啟動應(yīng)用程序中
?
sudo /etc/init.d/photo stop sudo update-rc.d photo defaults
?
注意:如果你想在 Raspberry Pi 啟動后啟動網(wǎng)關(guān),請將 Seeed Wiki 中的網(wǎng)關(guān)啟動代碼添加到 /etc/rc.local,如下所示:
?
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot-risinghf-rhf2s008-rhf1257-SPI-0-latest.bin -O loriot-gw.bin chmod +x loriot-gw.bin ./loriot-gw.bin -f -s cn1.loriot.io exit 0
?
網(wǎng)站
我們把網(wǎng)站部署在CentOS7上。以下步驟將向您展示如何部署。
步驟 1. 安裝 Python3
?
sudo yum -y install epel-release sudo yum -y install python36
?
步驟 2. 安裝 Python pip 和虛擬環(huán)境
?
wget https://bootstrap.pypa.io/get-pip.py sudo python36 get-pip.py sudo pip install virtualenv
?
Setp 3. 從 GitHub 克隆我們的網(wǎng)站
?
sudo yum -y install git git clone https://github.com/SeeedDocument/iotea-hb.git
?
步驟 4. 創(chuàng)建并激活虛擬環(huán)境
?
virtualenv -p python36 iotea-hb cd iotea-hb source bin/activate
?
Step 5. 安裝依賴庫
?
pip install pymysql pip install dbutils pip install flask pip install websocket-client pip install cofigparser
?
步驟 6. 創(chuàng)建數(shù)據(jù)庫
?
sudo yum -y install mariadb mariabd-server sudo systemctl enable mariadb sudo systemctl start mariadb mysql -uroot -p
?
然后使用 iotea_hb.sql 創(chuàng)建表。
Step 7. 創(chuàng)建db.ini,將這些代碼寫入其中
?
[db] db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
?
在 db.py 中更改 db.ini 的路徑
?
# in db.py #cf.read("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read("/home//iotea-hb/db.ini")
?
步驟 8. 在 app.py 中更改端口并啟動網(wǎng)站:
?
# in app.py #app.run(debug=True, port=6000) app.run(debug=True, port=8080)
?
?
# in terminal pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app:app
?
現(xiàn)在用瀏覽器訪問127.0.0.1:8080,可以看到網(wǎng)站,但是看不到實(shí)時(shí)數(shù)據(jù)。
步驟 9. 獲取洛里奧特?cái)?shù)據(jù)
打開另一個終端,重新進(jìn)入虛擬環(huán)境并啟動loriot app:
?
cd iotea-hb source bin/activate gunicorn loriot:app
?
稍等片刻,您會看到網(wǎng)站顯示數(shù)據(jù),或者您可以在 loriot.py 中更改 wss:
?
# in loriot.py #ws = create_connection("wss://cn1.loriot.io/app?token=vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w==") ws = create_connection()
?
?
- Seeed Wio終端開源分享
- NET Core LoRaWAN客戶端使用Seeed LoRa E5模塊
- POL全光醫(yī)院解決方案 光纖到病房解決方案 光纖到診室解決方案(最新版)
- POL全光校園解決方案 光纖到教室解決方案 光纖到宿舍解決方案(最新版)
- 智慧水務(wù)解決方案
- 汽車解決方案概述 21次下載
- 詳談NB-IoT和LoRa的區(qū)別及應(yīng)用 107次下載
- SI4432.SI4463.SI4438和LORA方案對比 33次下載
- NB-IoT和LoRa二者的區(qū)別資料下載
- NB-IoT和LoRa二者的特點(diǎn)和商業(yè)模式資料下載
- 一文讀懂:LoRa模塊使用原理資料下載
- LoRa技術(shù)網(wǎng)絡(luò)架構(gòu)及與NB-IoT的對比資料下載
- LoRa芯片應(yīng)用:自組網(wǎng)透傳、LoRaNET和LoRaWAN三種協(xié)議資料下載
- 基于LoRa智能路燈解決方案的相關(guān)案例
- 關(guān)于SMT回流焊中出現(xiàn)的缺陷及其解決方案資料下載 30次下載
- 怎么通過NFC輕松配置LoRa呢? 807次閱讀
- 智能LoRa水表ESD靜電浪涌保護(hù)方案說明 877次閱讀
- 基于LoRa實(shí)現(xiàn)的智慧農(nóng)場設(shè)計(jì)方案 4353次閱讀
- LoRa組網(wǎng)結(jié)構(gòu)和典型應(yīng)用 7515次閱讀
- 星翼電子:LORA模塊ATK-LORA-01相關(guān)信息描述 6660次閱讀
- 無線遠(yuǎn)傳水表LoRa存在哪些技術(shù)問題 2723次閱讀
- Axino:基于Semtech LoRa技術(shù)的集成智能制冷解決方案 1245次閱讀
- Semtech的LoRa技術(shù)在航空航天制造業(yè)實(shí)現(xiàn)創(chuàng)新的資產(chǎn)追蹤解決方案 1414次閱讀
- Semtech簡化LoRa?應(yīng)用的地理定位開發(fā) 1667次閱讀
- Semtech與SK Telecom采用LoRa技術(shù)監(jiān)測牲畜健康情況 2646次閱讀
- 智能節(jié)能路燈LoRa解決方案 1518次閱讀
- LoRa設(shè)計(jì)的常見10大問 6263次閱讀
- 深度解析LoRa和LoRaWAN的區(qū)別 9w次閱讀
- 基于Semtech的LoRa擴(kuò)頻通信技術(shù)實(shí)現(xiàn)的超長距離低功耗物聯(lián)網(wǎng)解決方案 1149次閱讀
- 了解LoRa聯(lián)盟最新白皮書以及31個LoRa的問答 5801次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論