Hi3861鴻蒙物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):智慧農(nóng)業(yè)
華清遠(yuǎn)見(jiàn)FS-Hi3861開(kāi)發(fā)套件,支持HarmonyOS 3.0系統(tǒng)。開(kāi)發(fā)板主控Hi3861芯片內(nèi)置WiFi功能,開(kāi)發(fā)板板載資源豐富,包括傳感器、執(zhí)行器、NFC、顯示屏等,同時(shí)還配套豐富的拓展模塊。開(kāi)發(fā)板配套豐富的學(xué)習(xí)資料,包括全套開(kāi)發(fā)教程、視頻課程、7大項(xiàng)目實(shí)戰(zhàn)案例,
可以幫助學(xué)員系統(tǒng)性學(xué)習(xí)鴻蒙設(shè)備開(kāi)發(fā)及物聯(lián)網(wǎng)開(kāi)發(fā)。同時(shí)作為一款物聯(lián)網(wǎng)開(kāi)發(fā)板,華清遠(yuǎn)見(jiàn)FS-Hi3861開(kāi)發(fā)套件可以進(jìn)行物聯(lián)網(wǎng)全技術(shù)體系的學(xué)習(xí),包括傳感器、無(wú)線傳感網(wǎng)絡(luò)(WiFi/藍(lán)牙)、物聯(lián)網(wǎng)操作系統(tǒng)(OpenHarmonyOS)、物聯(lián)網(wǎng)云接入(華為云)等技術(shù)方向,可廣泛應(yīng)用于高校物聯(lián)網(wǎng)創(chuàng)新教學(xué)、學(xué)生畢設(shè)及企業(yè)產(chǎn)品開(kāi)發(fā)評(píng)估。
?
可學(xué)習(xí)技術(shù):鴻蒙設(shè)備開(kāi)發(fā)環(huán)境搭建、鴻蒙裸機(jī)驅(qū)動(dòng)開(kāi)發(fā)、OpenHarmonyOS系統(tǒng)開(kāi)發(fā)、鴻蒙網(wǎng)絡(luò)開(kāi)發(fā)、華為IoTDA設(shè)備接入、鴻蒙系統(tǒng)項(xiàng)目開(kāi)發(fā)等鴻蒙設(shè)備開(kāi)發(fā)及物聯(lián)網(wǎng)開(kāi)發(fā)技術(shù)。
可實(shí)戰(zhàn)項(xiàng)目:智能照明燈、智能安防報(bào)警、智能農(nóng)業(yè)、智能溫度計(jì)、智能測(cè)距儀、倒車(chē)?yán)走_(dá)、智能小車(chē)。

華清遠(yuǎn)見(jiàn)綜合項(xiàng)目案例包括:
? 鴻蒙物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):智能照明燈
? 鴻蒙物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):智能溫度計(jì)
? 鴻蒙物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):智能安防報(bào)警
? 鴻蒙物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):智慧農(nóng)業(yè)
? 鴻蒙物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):倒車(chē)?yán)走_(dá)
? 鴻蒙物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):智能測(cè)距儀
? 鴻蒙物聯(lián)網(wǎng)項(xiàng)目實(shí)戰(zhàn):智能小車(chē)
?
這7個(gè)綜合項(xiàng)目的難易程度各不相同,方便用戶以循序漸進(jìn)的方式進(jìn)行學(xué)習(xí)。項(xiàng)目案例的設(shè)計(jì),偏重于綜合性更強(qiáng),更貼近于產(chǎn)品化。每個(gè)項(xiàng)目,都可以使用“NFC碰一碰”進(jìn)行配網(wǎng)。每個(gè)項(xiàng)目,都有微信小程序和華為云物聯(lián)網(wǎng)平臺(tái)的聯(lián)動(dòng)。每個(gè)項(xiàng)目,都配套詳細(xì)的項(xiàng)目開(kāi)發(fā)文檔及實(shí)驗(yàn)源碼,非常方便開(kāi)發(fā)者學(xué)習(xí)。
公眾號(hào)“華清遠(yuǎn)見(jiàn)V智能有料”,回復(fù)“鴻蒙項(xiàng)目”,可索取項(xiàng)目配套文檔及源碼。
鴻蒙開(kāi)發(fā)板項(xiàng)目演示視頻:
https://www.bilibili.com/video/BV1pM41127Jp/?spm_id_from=333.999.0.0
基于物聯(lián)網(wǎng)的智慧農(nóng)業(yè)項(xiàng)目
項(xiàng)目簡(jiǎn)介:
在智慧農(nóng)業(yè)大棚中,對(duì)土壤濕度進(jìn)行控制,通過(guò)濕度傳感器對(duì)土壤濕度情況進(jìn)行監(jiān)測(cè),根據(jù)不同農(nóng)作物的濕度需要進(jìn)行判斷是否灌溉(本次項(xiàng)目中,使用風(fēng)扇代替水泵電機(jī)),在此基礎(chǔ)上可以通過(guò)手機(jī)對(duì)大棚內(nèi)環(huán)境數(shù)據(jù)進(jìn)行查看,還可以在手機(jī)中設(shè)置當(dāng)前農(nóng)業(yè)物的濕度范圍,并根據(jù)需要是否開(kāi)啟自動(dòng)控制。
開(kāi)發(fā)平臺(tái):
華清遠(yuǎn)見(jiàn)hi3861鴻蒙開(kāi)發(fā)板?
項(xiàng)目功能:
1. ?設(shè)備端
1) ?NFC配網(wǎng)功能;
2) ?根據(jù)溫濕度傳感器是否自動(dòng)灌溉;
3) ?發(fā)布和訂閱MQTT的消息;
4) ?保存?zhèn)鞲衅鞯拈撝敌畔⒌紿i3861模塊中的Flash存儲(chǔ)中。
2. ?微信小程序端
1) ?可以將配網(wǎng)信息數(shù)據(jù)寫(xiě)入NFC標(biāo)簽中;
2) ?可以手動(dòng)控制水泵電機(jī)的開(kāi)關(guān);
3) ?可以設(shè)置濕度傳感器的閾值范圍;
4) ?可以手動(dòng)是否開(kāi)啟自動(dòng)控制功能;
5) ?在界面中顯示當(dāng)前濕度傳感器的數(shù)據(jù)和風(fēng)扇當(dāng)前的狀態(tài);
項(xiàng)目框架
本項(xiàng)目使用的是華為云物聯(lián)網(wǎng)平臺(tái)作為中間服務(wù)器,在設(shè)備端(Hi3861),首先進(jìn)行連接附近的WiFi熱點(diǎn),與華為云物聯(lián)網(wǎng)平臺(tái)建立MQTT連接,并且使用JSON格式數(shù)據(jù)進(jìn)行交互數(shù)據(jù);在應(yīng)用端(微信小程序),使用HTTP協(xié)議與華為云物聯(lián)網(wǎng)平臺(tái)進(jìn)行連接,使用華為云物聯(lián)網(wǎng)平臺(tái)相關(guān)的API進(jìn)行交互數(shù)據(jù)。
在設(shè)備端,在連接不上附近WiFi熱點(diǎn)的時(shí)候,會(huì)在OLED顯示屏上顯示,連接WiFi熱點(diǎn)失敗的提示信息,此時(shí)我們可以使用微信小程序上的NFC燒寫(xiě)界面,將WiFi名稱(chēng)和密碼進(jìn)行燒寫(xiě)開(kāi)發(fā)板上的NFC標(biāo)簽,然后再重新開(kāi)發(fā)板進(jìn)行重新連接新的WiFi熱點(diǎn)。
設(shè)備端在空閑的時(shí)候,監(jiān)聽(tīng)訂閱的主題中是否接收到云平臺(tái)轉(zhuǎn)發(fā)下來(lái)的數(shù)據(jù),如果接收到了,進(jìn)行JSON的數(shù)據(jù)解析,然后控制相關(guān)設(shè)備。
整體框架

應(yīng)用端框架

設(shè)備端框架

硬件部分
主控部分
本項(xiàng)目使用的是WF-H861-RTA1模組作為主控,此模組是基于Hi3861V100芯片設(shè)計(jì)的,該芯片是一款高度集成的2.4GHz芯片,集成了IEEE 802.11b/g/n基帶和RF電路,包括功率放大器PA、低噪聲放大器LNA、RF balun、天線開(kāi)關(guān)以及電源管理模塊等。
支持20MHz標(biāo)準(zhǔn)帶寬和5MHz/10MHz窄帶寬,提供最大72.2Mbit/s物理層速率。并且集成了高性能32位微處理器,提供SPI、UART、I2C、I2S、PWM、GPIO以及多路ADC模擬輸入等豐富的外設(shè)接口,同時(shí)支持SDIO2.0接口,時(shí)鐘最高支持50MHz。
主控部分原理圖如下圖所示:

模組的外設(shè)引腳功能,如下圖所示:

NFC通信部分
NFC通信使用的是恩智浦公司生產(chǎn)的NT3H1101芯片,此芯片支持I2C通信,支持可配置的現(xiàn)場(chǎng)檢測(cè)引腳,內(nèi)部配備有EEPROM存儲(chǔ)芯片,允許在RF和I2C之間快速傳出數(shù)據(jù),不收EEPROM內(nèi)存的寫(xiě)入周期進(jìn)行限制。

OLED顯示屏部分
采用SSD1306芯片進(jìn)行驅(qū)動(dòng)0.96寸OLED顯示屏,本顯示屏使用黃+藍(lán)屏幕進(jìn)行顯示。點(diǎn)陣數(shù)量為128*64。

溫濕度傳感器部分
SHT20,新一代 Sensirion 濕度和溫度傳感器在尺寸與智能方面建立了新的標(biāo)準(zhǔn):它嵌入了適于回流焊的雙列扁平無(wú)引腳DFN封裝,底面3 x3mm,高度1.1mm。傳感器輸出經(jīng)過(guò)標(biāo)定的數(shù)字信號(hào),標(biāo)準(zhǔn) I 2 C 格式。SHT20配有一個(gè)全新設(shè)計(jì)的CMOSens?芯片、一個(gè)經(jīng)過(guò)改進(jìn)的電容式濕度傳感元件和一個(gè)標(biāo)準(zhǔn)的能隙溫度傳感元件,其性能已經(jīng)大大提升甚至超出了前一代傳器(SHT1x 和 SHT7x)的可靠性水平。例如,新一代濕度傳感器,已經(jīng)經(jīng)過(guò)改進(jìn)使其在高濕環(huán)境下的性能更穩(wěn)定。每一個(gè)傳感器都經(jīng)過(guò)校準(zhǔn)和測(cè)試。在產(chǎn)品表面印有產(chǎn)品批號(hào),同時(shí)在芯片內(nèi)存儲(chǔ)了電子識(shí)別碼,可以通過(guò)輸入命令讀出這些識(shí)別碼。此外,SHT20的分辨率可以通過(guò)輸入命令進(jìn)行改變(8/12bit乃至12/14bit的 RH/T),傳感器可以檢測(cè)到電池低電量狀態(tài),并且輸出校驗(yàn)和,有助于提高通信的可靠性。由于對(duì)傳感器做了改良和微型化改進(jìn),因此它的性價(jià)比更高-并且最終所有設(shè)備都將得益于尖端的節(jié)能運(yùn)行模式??梢允褂靡粋€(gè)新的測(cè)試包 EK-H4 對(duì)SHT20進(jìn)行測(cè)試。
本章使用到的硬件為SHT20,在FS_ESP32A開(kāi)發(fā)板上,使用到了IO26和IO27引腳。其原理圖如下圖所示:


軟件部分
云平臺(tái)配置
注冊(cè)華為云賬號(hào)并登錄
3. ?打開(kāi)華為云物聯(lián)網(wǎng)平臺(tái)的網(wǎng)址https://www.huaweicloud.com/,打開(kāi)網(wǎng)址之后,點(diǎn)擊右上角的“注冊(cè)”。

4. ?在“注冊(cè)”頁(yè)面中,填入手機(jī)號(hào)進(jìn)行注冊(cè),所有信息填寫(xiě)完成之后,點(diǎn)擊“注冊(cè)按鈕”進(jìn)行注冊(cè),注冊(cè)成功之后,進(jìn)入下一步。

5. ?注冊(cè)完成之后,再次進(jìn)入華為云的官網(wǎng)進(jìn)行登錄。

6. ?在登錄界面,填入剛剛注冊(cè)的“手機(jī)號(hào)”、“華為賬號(hào)”和“密碼”,然后點(diǎn)擊“登錄”。

7. ?登錄成功之后,點(diǎn)擊右上角的“控制臺(tái)”。

8. ?在控制臺(tái)的左上角,因?yàn)椤皹?biāo)準(zhǔn)版免費(fèi)試用僅對(duì)企業(yè)用戶開(kāi)放,個(gè)人用戶建議使用北京四基礎(chǔ)版”,所以選擇地區(qū)為“北京四”,然后點(diǎn)擊左側(cè)“服務(wù)列表”。

9. ?在“服務(wù)列表”的搜索框中搜索“IoTDA”,然后點(diǎn)擊“設(shè)備接入 IoTDA”。

10. ?點(diǎn)擊“平臺(tái)接入地址”,需要在記事本記錄“MQTT協(xié)議設(shè)備接入IP地址和端口號(hào)”。

11. ?我們只需要使用設(shè)備接入的MQTT協(xié)議就可以,記住這個(gè)服務(wù)器的地址。

創(chuàng)建新產(chǎn)品
12. ?點(diǎn)擊左側(cè)的產(chǎn)品,點(diǎn)擊右上角的創(chuàng)建產(chǎn)品按鈕。

13. ?選擇所屬的資源,產(chǎn)品名稱(chēng)填寫(xiě)smartFarm_Hi3861,數(shù)據(jù)格式默認(rèn),廠商名稱(chēng)和設(shè)備類(lèi)型任意,點(diǎn)擊確定。

14. ?在左側(cè)菜單欄中,找到所有設(shè)備,點(diǎn)擊注冊(cè)設(shè)備。

15. ?選擇所屬資源空間,所屬產(chǎn)品,填寫(xiě)設(shè)備標(biāo)識(shí)碼為hi3861,秘鑰為fs123456,當(dāng)然也可以自己定義。

注意:生成好的設(shè)備ID和設(shè)備秘鑰一定到妥善保管,只生成這一份。
創(chuàng)建產(chǎn)品模型
16. ?點(diǎn)擊左側(cè)“產(chǎn)品”,點(diǎn)擊設(shè)備新創(chuàng)建好的產(chǎn)品名稱(chēng)“smartFarm_Hi3861”

17. ?點(diǎn)擊自定義模型。

18. ?填加基礎(chǔ)服務(wù)(base)

19. ?添加控制服務(wù)(control)

20. ?在“基礎(chǔ)服務(wù)”中添加“fan”屬性。

21.在“基礎(chǔ)服務(wù)”中添加“humidity”屬性。

22. ?在“基礎(chǔ)服務(wù)”中添加“temperature”屬性。

23. ?在“基礎(chǔ)服務(wù)”中添加“autoMode”屬性。

24. ?在“基礎(chǔ)服務(wù)”中添加“humi_up”屬性。

25. ?在“基礎(chǔ)服務(wù)”中添加“humi_down”屬性。

26. ?在“控制服務(wù)”中添加“fan”命令。

27. ?在“控制服務(wù)”中添加“autoMode”命令。

28. ?在“控制服務(wù)”中添加“humidity”命令。

根據(jù)設(shè)備信息,生成用戶名和密碼
29. ?打開(kāi)由華為云提供的生成用戶名和密碼的網(wǎng)址,進(jìn)行生成。
https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/
30. ?填寫(xiě)生成好的設(shè)備ID和設(shè)備秘鑰,點(diǎn)擊按鈕,生成用戶名和密碼。
注意:下面的圖片提供了方法。

31. ?將生成好的信息(ClientID、Username、Password),修改文件“/applications/sample/wifi-iot/app/smarFarm/sys_config.h”,下面內(nèi)容直接替換。

32. ?修改華為云平臺(tái)的MQTT服務(wù)器的IP地址,打開(kāi)Windows下cmd控制端,在控制端輸入內(nèi)容。

33. ?然后修改/applications/sample/wifi-iot/app/smarFarm/sys_config.h文件中IP地址和端口號(hào)。

設(shè)備端編譯
導(dǎo)入程序
34. ?將【FS_Hi3861開(kāi)發(fā)板光盤(pán)資料/程序源碼/硬件驅(qū)動(dòng)源碼/bsp】目錄,拷貝到【OpenHarmony/base/iot_hardware】目錄下。如下圖所示:

35. ?將【FS_Hi3861開(kāi)發(fā)板光盤(pán)資料/程序源碼/硬件驅(qū)動(dòng)源碼/綜合實(shí)驗(yàn)源碼/智慧農(nóng)業(yè)/設(shè)備端/smartFarm】目錄拷貝到【OpenHarmony/application/sample/wifi-iot/app】目錄下。
修改文件
36. ?修改【OpenHarmony/base/iot_hardware/bsp/include/hal_bsp_ssd1306_bmps.h】文件,將“#define smartFarm 0”改為“#define smartFarm 1”。如下圖所示:

37. ?修改【OpenHarmony/application/sample/wifi-iot/app/BUILD.gn】文件,添加下面一句:
"smartFarm:smartFarm_demo"
其余的注釋掉,只保留這一句話。

編譯程序
38. ?在Vscode的左側(cè)按鈕中,打開(kāi)DevEco Device Tool開(kāi)發(fā)工具,在開(kāi)發(fā)工具中首先點(diǎn)擊“Clean”,再點(diǎn)擊“build”進(jìn)行編譯源碼。

39. ?編譯完成之后,會(huì)在終端中提示“SUCCESS”字樣,說(shuō)明編譯完成。

40. ?編譯完成之后,將要燒寫(xiě)的.bin文件拷貝到共享目錄下。在VSCode中打開(kāi)終端:
1) ?點(diǎn)擊“+”,新建一個(gè)新的終端,如下圖所示:

2) ?然后在工程源碼的目錄下,輸入以下命令,將文件拷貝到共享目錄下。
cp out/hispark_pegasus/wifiiot_hispark_pegasus/Hi3861_wifiiot_app_allinone.bin /mnt/hgfs/share/

燒寫(xiě)程序
41. ?打開(kāi)【FS_Hi3861開(kāi)發(fā)板光盤(pán)資料\工具軟件\HarmonyOS相關(guān)工具\(yùn)Hiburn】程序燒寫(xiě)軟件,點(diǎn)擊左上角“setting”中“com setting”選項(xiàng),配置一下串口的波特率為2000000,然后點(diǎn)擊確定,如下圖所示:

42. ?此時(shí)需要開(kāi)發(fā)本通過(guò)串口線連接電腦,電腦端的設(shè)備管理器會(huì)出現(xiàn)一個(gè)串口端口號(hào),當(dāng)然也可以通過(guò)燒寫(xiě)軟件中“Refresh”按鈕進(jìn)行刷新,然后選擇要燒寫(xiě)的bin文件,操作步驟如下圖所示:

43. ?最后要選擇“Auto burn”,要不然下載速度會(huì)很慢很慢。

44. ?會(huì)自動(dòng)的添加.bin文件,添加完成之后,點(diǎn)擊“Connect”按鈕,然后復(fù)位開(kāi)發(fā)板,即可開(kāi)始燒寫(xiě)程序。燒寫(xiě)完成之后會(huì)有提示:


注意:燒寫(xiě)完成之后,一定要關(guān)閉串口連接,點(diǎn)擊“DisConnect”。不然的話,當(dāng)你點(diǎn)擊復(fù)位之后,又會(huì)再次下載一次。
應(yīng)用端編譯
45. ?硬件環(huán)境:手機(jī)。
46. ?軟件環(huán)境:微信開(kāi)發(fā)者工具。
47. ?源碼位置:
【FS_Hi3861開(kāi)發(fā)板光盤(pán)資料\程序源碼\綜合實(shí)驗(yàn)源碼\智慧農(nóng)業(yè)\微信小程序端\smart_farm】
編譯
48. ?雙擊打開(kāi)app.wxss工程文件,即可打開(kāi)微信開(kāi)發(fā)者工具。

49. ?首先點(diǎn)擊左上角的圖標(biāo),進(jìn)行掃碼登錄自己的微信。

50. ?登錄成功之后,填寫(xiě)自己的AppID。

51. ?點(diǎn)擊上面的編譯按鈕,進(jìn)行編譯,然后點(diǎn)擊預(yù)覽,用手機(jī)掃碼進(jìn)行調(diào)試。

運(yùn)行程序
按下開(kāi)發(fā)板中復(fù)位按鈕,讓設(shè)備重啟,會(huì)出現(xiàn)兩種情況。
連接WiFi失敗
第一種是連接不上附近的WiFi熱點(diǎn),如下圖所示:

這是因?yàn)樵贜FC標(biāo)簽內(nèi)部存儲(chǔ)的WiFi信息與當(dāng)前環(huán)境中的WiFi熱點(diǎn)不匹配導(dǎo)致的,按照下面的步驟進(jìn)行操作:
注意:微信小程序不支持ios系統(tǒng)的NFC配置功能??!下方會(huì)有方法解決。
52. ?使用具有NFC功能的手機(jī)掃描微信開(kāi)發(fā)者工具的預(yù)覽二維碼。
53. ?掃描完成之后,在微信小程序中,點(diǎn)擊“NFC配網(wǎng)”按鈕。

54. ?在彈出的“NFC配網(wǎng)設(shè)置”界面中,填寫(xiě)正確的WiFi名稱(chēng)和WiFi密碼。

55. ?填寫(xiě)完成之后,點(diǎn)擊“開(kāi)始配置”,會(huì)提示“請(qǐng)靠近設(shè)備”,此時(shí)將手機(jī)靠近開(kāi)發(fā)板上的NFC線圈區(qū)域。
56. ?當(dāng)提示“寫(xiě)入數(shù)據(jù)成功”時(shí),說(shuō)明燒寫(xiě)NFC線圈成功。

57. ?然后再次按下開(kāi)發(fā)板中的復(fù)位按鈕。
58. ?還有一種是ios系統(tǒng)下微信小程序不能使用NFC配置的功能時(shí),需要按照下面步驟進(jìn)行操作:
1) ?在ios系統(tǒng)的手機(jī)商店中下載“NFC Tools”NFC調(diào)試工具。

2) ?然后點(diǎn)擊“寫(xiě)”功能。

3) ?點(diǎn)擊“添加記錄”。

4) ?添加“Wi-Fi網(wǎng)絡(luò)”信息。

5) ?在“配置WiFi網(wǎng)絡(luò)”中,選擇身份驗(yàn)證為“WPA/WPA2-Personal”,并輸入SSID和密碼。

6) ?然后點(diǎn)擊“寫(xiě)/87字節(jié)”按鈕,進(jìn)行燒寫(xiě)。

7) ?此時(shí)會(huì)彈出“貼近NFC標(biāo)簽”,請(qǐng)靠近開(kāi)發(fā)板上NFC線圈部分。

8) ?燒寫(xiě)完成之后,會(huì)在顯示如下圖片,說(shuō)燒寫(xiě)NFC芯片數(shù)據(jù)成功。

連接WiFi成功
第二種是直接連接附近WiFi成功,會(huì)在OLED顯示屏界面中會(huì)顯示當(dāng)前設(shè)備連接附近WiFi熱點(diǎn)的提示信息和連接華為云平臺(tái)服務(wù)器的信息,直到在界面中顯示如下圖所示,說(shuō)明連接華為云成功。

連接成功之后,我們需要打開(kāi)微信小程序,在小程序中界面中,我們可以點(diǎn)擊開(kāi)關(guān)按鈕,進(jìn)行下發(fā)指令讓設(shè)備中風(fēng)扇開(kāi)或者關(guān),還可以進(jìn)行調(diào)整當(dāng)前濕度傳感器的閾值。