資料介紹
描述
四川雅安東北部的蒙頂山,山巒起伏,自西向東,掩映在一片綠海之中。這是 36 歲的鄧先生最熟悉的景象,他是他那一代為數(shù)不多的蒙頂茶師之一,擁有 50 畝(=3.3 公頃)的種植園,海拔 1100 米。鄧出身于制茶世家,但繼承家族遺產(chǎn)并非易事?!拔覀兊牟枞~生長在高海拔的有機(jī)環(huán)境中,以確保其卓越的品質(zhì)。但同時(shí)生長密度低,成本高,出芽不均勻,茶葉采收困難。這就是為什么高山茶通常是小收成,它們的價(jià)值在市場上沒有體現(xiàn)?!?過去兩年,鄧一直在努力提高消費(fèi)者對(duì)高山茶的認(rèn)識(shí),以提升其價(jià)值。而當(dāng)他遇到范主時(shí),
硬件連接
該項(xiàng)目的硬件可以分為 4 個(gè)部分:電源、傳感器、節(jié)點(diǎn)和網(wǎng)關(guān)。以下文章將向您展示如何逐步完成它。
電源部分
電源部分主要包含一塊太陽能電池板和一塊鋰電池,如果你只是為了演示而搭建這個(gè)項(xiàng)目,可以忽略它們?;蛘吣梢园凑丈弦?a href='http://www.ttokpm.com/v/' target='_blank' class='arckwlink_none'>教程安裝節(jié)點(diǎn)電源。
傳感器部分
在傳感器部分,由于傳感器較多,我們使用了一個(gè)氣象站,還做了一個(gè)亞克力支架來安裝它們。
如上圖所示,Digital Light Sensor 始終位于頂部,以便它可以收集照明信息。會(huì)產(chǎn)生熱量的傳感器安裝在亞克力支架的中間,例如 O2 傳感器、灰塵傳感器和 CO2 傳感器。最后,亞克力支架底部的溫濕度傳感器。
此外,土壤溫度和濕度傳感器單獨(dú)安裝在土壤中。
節(jié)點(diǎn)部分
節(jié)點(diǎn)部分是一個(gè)安裝在防水??盒中的 Seeeduino LoRaWan,它通過水接頭連接到電源和傳感器。其中,灰塵傳感器連接到LoRaWan的數(shù)字引腳D3,二氧化碳傳感器連接到引腳D4和D5,土壤傳感器連接到引腳D6和D7,O2傳感器連接到模擬引腳A1,光傳感器和氣壓傳感器連接到I2C端口。
注意:應(yīng)在土壤傳感器的藍(lán)色(數(shù)據(jù))電纜和紅色(Vcc)電纜之間添加一個(gè) 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)部分是一個(gè)Raspberry Pi,它插入了網(wǎng)關(guān)模塊RHF0M301-868和PRI 2 Bridge RHF4T002,它安裝在防水??盒中并通過水接頭連接到電源和USB攝像頭。因?yàn)樗褂脤iT的固件,請(qǐng)按照Seeed Wiki進(jìn)行配置。
軟件編程
作為Hardware Connection,Software Programming也可以拆分,可以拆分為3個(gè)部分:Node、Gateway和Website。
節(jié)點(diǎn)部分
大部分 Node Part 需要的驅(qū)動(dòng)已經(jīng)包含在 origin_driver 中
文件夾。下面的庫需要手動(dòng)安裝:
Adafruit_ASFcore
由于項(xiàng)目復(fù)雜,我們建議您使用 Microsoft Visual Studio 而不是 Arduino IDE。一個(gè)名為 Visual Micro 的插件可以幫助您使用 Visual Studio 構(gòu)建 Arduino 項(xiàng)目,單擊此處了解更多信息。
為了更好的可讀性和可維護(hù)性,我們這次使用面向?qū)ο缶幊?。該?xiàng)目的類圖如下所示:
對(duì)于那些已經(jīng)有 OOP 驅(qū)動(dòng)程序的傳感器,我們重新打包以適應(yīng)這個(gè)項(xiàng)目,對(duì)于其他傳感器,我們使用 OOP 重寫了它們的驅(qū)動(dòng)程序。中間件層的Sensor類用于統(tǒng)一實(shí)際傳感器的接口,例如氣壓計(jì)傳感器可以同時(shí)采集溫度、濕度和高度,所以它有3個(gè)接口分別獲取溫度、濕度和高度。但是他們有不同的方法名,這會(huì)使獲取傳感器值的程序更加復(fù)雜,就像這樣:
?
barometer->getTemperature(); barometer->getHumidity(); barometer->getAltitude(); // ... another_sensor->getSomeValue(); // ...
?
但是使用 OOP,它看起來像這樣:
?
for (auto i = 0; i < SENSORS_COUNT; i++) { sensors[i]->getValue(); }
?
我們還打包了一個(gè)Application類,它實(shí)現(xiàn)了IApplication接口,IoTea.ino中的setup()和loop()方法可以調(diào)用Application對(duì)象中的setup()和loop()方法。
注意:USB 串行僅用于調(diào)試。調(diào)試后,請(qǐng)注釋掉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
?
如果要上傳照片,請(qǐng)按照以下步驟配置您的 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)于上傳的注釋代碼。為了每次啟動(dòng)樹莓派后運(yùn)行這個(gè)程序,可以在/etc/init.d中創(chuàng)建一個(gè)名為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
?
如果沒有問題,將其停止并將其添加到啟動(dòng)應(yīng)用程序中
?
sudo /etc/init.d/photo stop sudo update-rc.d photo defaults
?
注意:如果你想在 Raspberry Pi 啟動(dòng)后啟動(dòng)網(wǎng)關(guān),請(qǐng)將 Seeed Wiki 中的網(wǎng)關(guān)啟動(dòng)代碼添加到 /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 中更改端口并啟動(dòng)網(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ù)
打開另一個(gè)終端,重新進(jìn)入虛擬環(huán)境并啟動(dòng)loriot app:
?
cd iotea-hb source bin/activate gunicorn loriot:app
?
稍等片刻,您會(huì)看到網(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方案對(duì)比 33次下載
- NB-IoT和LoRa二者的區(qū)別資料下載
- NB-IoT和LoRa二者的特點(diǎn)和商業(yè)模式資料下載
- 一文讀懂:LoRa模塊使用原理資料下載
- LoRa技術(shù)網(wǎng)絡(luò)架構(gòu)及與NB-IoT的對(duì)比資料下載
- LoRa芯片應(yīng)用:自組網(wǎng)透傳、LoRaNET和LoRaWAN三種協(xié)議資料下載
- 基于LoRa智能路燈解決方案的相關(guān)案例
- 關(guān)于SMT回流焊中出現(xiàn)的缺陷及其解決方案資料下載 30次下載
- 怎么通過NFC輕松配置LoRa呢? 574次閱讀
- 智能LoRa水表ESD靜電浪涌保護(hù)方案說明 690次閱讀
- 基于LoRa實(shí)現(xiàn)的智慧農(nóng)場設(shè)計(jì)方案 4085次閱讀
- LoRa組網(wǎng)結(jié)構(gòu)和典型應(yīng)用 7382次閱讀
- 星翼電子:LORA模塊ATK-LORA-01相關(guān)信息描述 6479次閱讀
- 無線遠(yuǎn)傳水表LoRa存在哪些技術(shù)問題 2607次閱讀
- Axino:基于Semtech LoRa技術(shù)的集成智能制冷解決方案 1169次閱讀
- Semtech的LoRa技術(shù)在航空航天制造業(yè)實(shí)現(xiàn)創(chuàng)新的資產(chǎn)追蹤解決方案 1371次閱讀
- Semtech簡化LoRa?應(yīng)用的地理定位開發(fā) 1619次閱讀
- Semtech與SK Telecom采用LoRa技術(shù)監(jiān)測牲畜健康情況 2587次閱讀
- 智能節(jié)能路燈LoRa解決方案 1400次閱讀
- LoRa設(shè)計(jì)的常見10大問 6119次閱讀
- 深度解析LoRa和LoRaWAN的區(qū)別 8.9w次閱讀
- 基于Semtech的LoRa擴(kuò)頻通信技術(shù)實(shí)現(xiàn)的超長距離低功耗物聯(lián)網(wǎng)解決方案 1018次閱讀
- 了解LoRa聯(lián)盟最新白皮書以及31個(gè)LoRa的問答 5685次閱讀
下載排行
本周
- 1ADE-12H混頻器規(guī)格書
- 0.28 MB | 1次下載 | 5 積分
- 2AD9984A高性能10位顯示接口英文手冊(cè)
- 0.49 MB | 1次下載 | 5 積分
- 351開發(fā)板芯片資料
- 14.95 MB | 1次下載 | 1 積分
- 4用TL431LI-Q1監(jiān)控電流供應(yīng)
- 176.71KB | 1次下載 | 免費(fèi)
- 5十進(jìn)制數(shù)據(jù)轉(zhuǎn)十六進(jìn)制字符_轉(zhuǎn)ASCII碼
- 0.01 MB | 次下載 | 免費(fèi)
- 6使用TRF7970A進(jìn)行NFC主動(dòng)和被動(dòng)點(diǎn)對(duì)點(diǎn)通信
- 926.87KB | 次下載 | 免費(fèi)
- 7LP8864-Q1 LP8864S-Q1 LP8866-Q1和LP8866S-Q1診斷說明和故障處理程序
- 577.42KB | 次下載 | 免費(fèi)
- 8將設(shè)計(jì)移植到LP3470A低lq電壓監(jiān)控器,以改善電源監(jiān)控
- 115.28KB | 次下載 | 免費(fèi)
本月
- 1HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解PDF電子教程免費(fèi)下載
- 24.30 MB | 129次下載 | 1 積分
- 2正激、反激、推挽、全橋、半橋區(qū)別和特點(diǎn)
- 0.91 MB | 36次下載 | 1 積分
- 3GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 20次下載 | 免費(fèi)
- 4在設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線
- 1.57MB | 15次下載 | 免費(fèi)
- 5幾張電動(dòng)車充電器電路圖
- 0.23 MB | 9次下載 | 1 積分
- 6AD18學(xué)習(xí)筆記
- 14.47 MB | 8次下載 | 2 積分
- 7H橋中的電流感測
- 545.39KB | 7次下載 | 免費(fèi)
- 8電機(jī)驅(qū)動(dòng)器電路板布局的最佳實(shí)踐
- 3.03MB | 6次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935113次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191360次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81578次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73804次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評(píng)論
查看更多