資料介紹
描述
四川雅安東北部的蒙頂山,山巒起伏,自西向東,掩映在一片綠海之中。這是 36 歲的鄧先生最熟悉的景象,他是他那一代為數不多的蒙頂茶師之一,擁有 50 畝(=3.3 公頃)的種植園,海拔 1100 米。鄧出身于制茶世家,但繼承家族遺產并非易事。“我們的茶葉生長在高海拔的有機環境中,以確保其卓越的品質。但同時生長密度低,成本高,出芽不均勻,茶葉采收困難。這就是為什么高山茶通常是小收成,它們的價值在市場上沒有體現。” 過去兩年,鄧一直在努力提高消費者對高山茶的認識,以提升其價值。而當他遇到范主時,
硬件連接
該項目的硬件可以分為 4 個部分:電源、傳感器、節點和網關。以下文章將向您展示如何逐步完成它。
電源部分
電源部分主要包含一塊太陽能電池板和一塊鋰電池,如果你只是為了演示而搭建這個項目,可以忽略它們。或者您可以按照上一教程安裝節點電源。
傳感器部分
在傳感器部分,由于傳感器較多,我們使用了一個氣象站,還做了一個亞克力支架來安裝它們。

如上圖所示,Digital Light Sensor 始終位于頂部,以便它可以收集照明信息。會產生熱量的傳感器安裝在亞克力支架的中間,例如 O2 傳感器、灰塵傳感器和 CO2 傳感器。最后,亞克力支架底部的溫濕度傳感器。
此外,土壤溫度和濕度傳感器單獨安裝在土壤中。
節點部分

節點部分是一個安裝在防水??盒中的 Seeeduino LoRaWan,它通過水接頭連接到電源和傳感器。其中,灰塵傳感器連接到LoRaWan的數字引腳D3,二氧化碳傳感器連接到引腳D4和D5,土壤傳感器連接到引腳D6和D7,O2傳感器連接到模擬引腳A1,光傳感器和氣壓傳感器連接到I2C端口。
注意:應在土壤傳感器的藍色(數據)電纜和紅色(Vcc)電纜之間添加一個 10k 電阻器。
Seeeduino LoRaWan 偶爾收集傳感器值,并通過 LoRa 將它們發送到網關。數據格式如下:
?
{
[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 字節中的每一位都有不同的含義,如下所示:
?
{
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 */
}
?
網關部分

網關部分是一個Raspberry Pi,它插入了網關模塊RHF0M301-868和PRI 2 Bridge RHF4T002,它安裝在防水??盒中并通過水接頭連接到電源和USB攝像頭。因為它使用專門的固件,請按照Seeed Wiki進行配置。
軟件編程
作為Hardware Connection,Software Programming也可以拆分,可以拆分為3個部分:Node、Gateway和Website。
節點部分
大部分 Node Part 需要的驅動已經包含在 origin_driver 中
文件夾。下面的庫需要手動安裝:
Adafruit_ASFcore
由于項目復雜,我們建議您使用 Microsoft Visual Studio 而不是 Arduino IDE。一個名為 Visual Micro 的插件可以幫助您使用 Visual Studio 構建 Arduino 項目,單擊此處了解更多信息。
為了更好的可讀性和可維護性,我們這次使用面向對象編程。該項目的類圖如下所示:

對于那些已經有 OOP 驅動程序的傳感器,我們重新打包以適應這個項目,對于其他傳感器,我們使用 OOP 重寫了它們的驅動程序。中間件層的Sensor類用于統一實際傳感器的接口,例如氣壓計傳感器可以同時采集溫度、濕度和高度,所以它有3個接口分別獲取溫度、濕度和高度。但是他們有不同的方法名,這會使獲取傳感器值的程序更加復雜,就像這樣:
?
barometer->getTemperature(); barometer->getHumidity(); barometer->getAltitude(); // ... another_sensor->getSomeValue(); // ...
?
但是使用 OOP,它看起來像這樣:
?
for (auto i = 0; i < SENSORS_COUNT; i++) {
sensors[i]->getValue();
}
?
我們還打包了一個Application類,它實現了IApplication接口,IoTea.ino中的setup()和loop()方法可以調用Application對象中的setup()和loop()方法。
注意:USB 串行僅用于調試。調試后,請注釋掉setup()方法中的初始化代碼。
網關部分
Gateway Part 在主文件夾中的 Python 程序用于每小時拍照并上傳到 Amazon S3 服務器。在你使用它之前,確保 fswebcam 已經安裝在你的 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
?
然后,運行 AWS CLI:
?
sudo aws configure
?
配置您的 AWS 訪問密鑰 ID、AWS 秘密訪問 ID 和默認區域名稱。
如果你不喜歡上傳你的照片,你可以跳過 AWS 配置步驟和 photo.py 中關于上傳的注釋代碼。為了每次啟動樹莓派后運行這個程序,可以在/etc/init.d中創建一個名為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
?
設置執行權限
?
sudo chmod 777 /etc/init.d/photo sudo chmod 777 /home/rxhf/photo.py
?
并測試它
?
sudo /etc/init.d/photo start
?
如果沒有問題,將其停止并將其添加到啟動應用程序中
?
sudo /etc/init.d/photo stop sudo update-rc.d photo defaults
?
注意:如果你想在 Raspberry Pi 啟動后啟動網關,請將 Seeed Wiki 中的網關啟動代碼添加到 /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
?
網站
我們把網站部署在CentOS7上。以下步驟將向您展示如何部署。
步驟 1. 安裝 Python3
?
sudo yum -y install epel-release sudo yum -y install python36
?
步驟 2. 安裝 Python pip 和虛擬環境
?
wget https://bootstrap.pypa.io/get-pip.py sudo python36 get-pip.py sudo pip install virtualenv
?
Setp 3. 從 GitHub 克隆我們的網站
?
sudo yum -y install git git clone https://github.com/SeeedDocument/iotea-hb.git
?
步驟 4. 創建并激活虛擬環境
?
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. 創建數據庫
?
sudo yum -y install mariadb mariabd-server sudo systemctl enable mariadb sudo systemctl start mariadb mysql -uroot -p
?
然后使用 iotea_hb.sql 創建表。
Step 7. 創建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 中更改端口并啟動網站:
?
# 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
?
現在用瀏覽器訪問127.0.0.1:8080,可以看到網站,但是看不到實時數據。
步驟 9. 獲取洛里奧特數據
打開另一個終端,重新進入虛擬環境并啟動loriot app:
?
cd iotea-hb source bin/activate gunicorn loriot:app
?
稍等片刻,您會看到網站顯示數據,或者您可以在 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全光校園解決方案 光纖到教室解決方案 光纖到宿舍解決方案(最新版)
- 智慧水務解決方案
- 汽車解決方案概述 21次下載
- 詳談NB-IoT和LoRa的區別及應用 114次下載
- SI4432.SI4463.SI4438和LORA方案對比 33次下載
- NB-IoT和LoRa二者的區別資料下載
- NB-IoT和LoRa二者的特點和商業模式資料下載
- 一文讀懂:LoRa模塊使用原理資料下載
- LoRa技術網絡架構及與NB-IoT的對比資料下載
- ESD解決方案資料下載
- LoRa芯片應用:自組網透傳、LoRaNET和LoRaWAN三種協議資料下載
- 基于LoRa智能路燈解決方案的相關案例
- 關于SMT回流焊中出現的缺陷及其解決方案資料下載 30次下載
- 怎么通過NFC輕松配置LoRa呢? 1.6k次閱讀
- 智能LoRa水表ESD靜電浪涌保護方案說明 1.5k次閱讀
- 基于LoRa實現的智慧農場設計方案 5.3k次閱讀
- LoRa組網結構和典型應用 8.1k次閱讀
- 星翼電子:LORA模塊ATK-LORA-01相關信息描述 8.1k次閱讀
- 無線遠傳水表LoRa存在哪些技術問題 3.1k次閱讀
- Axino:基于Semtech LoRa技術的集成智能制冷解決方案 1.5k次閱讀
- Semtech的LoRa技術在航空航天制造業實現創新的資產追蹤解決方案 1.7k次閱讀
- Semtech簡化LoRa?應用的地理定位開發 1.9k次閱讀
- Semtech與SK Telecom采用LoRa技術監測牲畜健康情況 2.9k次閱讀
- 智能節能路燈LoRa解決方案 1.9k次閱讀
- LoRa設計的常見10大問 6.6k次閱讀
- 深度解析LoRa和LoRaWAN的區別 9.1w次閱讀
- 基于Semtech的LoRa擴頻通信技術實現的超長距離低功耗物聯網解決方案 1.4k次閱讀
- 了解LoRa聯盟最新白皮書以及31個LoRa的問答 6.2k次閱讀
下載排行
本周
- 1新一代網絡可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費
- 2冷柜-電氣控制系統講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數據手冊
- 2.33 MB | 次下載 | 免費
- 4MDD品牌三極管S9012數據手冊
- 2.62 MB | 次下載 | 免費
- 5LAT1218 如何選擇和設置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環繞擴音機 AVR-1507手冊
- 2.50 MB | 次下載 | 免費
- 8MS1000TA 超聲波測量模擬前端芯片技術手冊
- 0.60 MB | 次下載 | 免費
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數據手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規格書
- 838.47 KB | 5次下載 | 免費
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協議電壓誘騙控制器IC技術手冊
- 1.81 MB | 1次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論