• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于RT-Thread的智慧農(nóng)業(yè)大棚監(jiān)控系統(tǒng)設(shè)計(jì)

      2023-05-30 01:22:34謝瑩
      電子技術(shù)與軟件工程 2023年6期
      關(guān)鍵詞:信號量光照度線程

      謝瑩

      (閩西職業(yè)技術(shù)學(xué)院信息與制造學(xué)院 福建省龍巖市 364021)

      現(xiàn)農(nóng)村越來越多的務(wù)工人員往城市方向發(fā)展,導(dǎo)致農(nóng)村的青年勞動力急劇下降,而我國作為農(nóng)業(yè)大國,如何實(shí)現(xiàn)大規(guī)模農(nóng)業(yè)種植仍是亟需解決的問題[2],伴隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,“智慧農(nóng)業(yè)”將作為一種科學(xué)的解決途徑,其通過物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控最終達(dá)到精準(zhǔn)種植的目的,從而提高農(nóng)業(yè)種植的產(chǎn)量[3]。

      本系統(tǒng)使用的操作系統(tǒng)平臺是RT-Thread,其由我國團(tuán)隊(duì)自主研發(fā),經(jīng)過多年的升級,已逐步成為一個功能豐富的操作系統(tǒng),特別適用于一些資源受限的場合。相對于其它操作系統(tǒng)來說,RT-Thread 為用戶提供豐富的組件,如內(nèi)核層、軟件包等等,能夠有效降低編程難度,因此,開發(fā)者通過RT-Thread 系統(tǒng)可以輕松地實(shí)現(xiàn)物聯(lián)網(wǎng)項(xiàng)目的搭建。另外,OneNET 平臺為用戶提供多樣的服務(wù),可使物聯(lián)網(wǎng)設(shè)備實(shí)現(xiàn)快速上云,管理人員通過OneNET 平臺最終實(shí)現(xiàn)對大棚的遠(yuǎn)程監(jiān)控,并根據(jù)實(shí)時(shí)采集的傳感器數(shù)據(jù)控制相應(yīng)的執(zhí)行器,從而提高農(nóng)業(yè)種植的生產(chǎn)效率并大大降低成本[4]。

      1 系統(tǒng)的框架設(shè)計(jì)

      系統(tǒng)的功能包含三個:采集大棚內(nèi)溫濕度和光照數(shù)據(jù)、傳感器數(shù)據(jù)通過Wi-Fi 模塊傳輸至云平臺,云平臺下發(fā)指令控制輸出設(shè)備。系統(tǒng)的框架設(shè)計(jì)如圖1所示,其中MCU 采用STM32 芯片,數(shù)據(jù)采集層外接輸入設(shè)備(SHT3X 系列溫濕度傳感器、BH1750 光照度傳感器)及輸出設(shè)備(風(fēng)機(jī)、補(bǔ)光燈),傳輸層使用ESP8266 模塊完成數(shù)據(jù)的傳輸,而應(yīng)用層負(fù)責(zé)數(shù)據(jù)的存儲及展示,同時(shí)下發(fā)指令至設(shè)備端[5]。

      圖1:系統(tǒng)的框架設(shè)計(jì)圖

      2 RTOS資源的規(guī)劃

      為更好地滿足多任務(wù)的調(diào)度及提高系統(tǒng)響應(yīng)效率,在本系統(tǒng)的軟件框架中設(shè)計(jì)RTOS 層,對RTOS 資源的規(guī)劃主要包括以下三個方面:

      2.1 SENESOR(傳感器)驅(qū)動框架的使用

      由于市面上傳感器廠商眾多,而不同的傳感器都需配套對應(yīng)的驅(qū)動程序,因此為統(tǒng)一接口及提高代碼的可復(fù)用性,RT-Thread 為開發(fā)者提供SENSOR 設(shè)備以降低開發(fā)難度,如溫濕度、光照、壓力、距離等市面上常用的傳感器均已對接到SENSOR 框架中。SENSOR 驅(qū)動框架設(shè)計(jì)如圖2所示,大體分為兩步:完成傳感器ops接口的對接及設(shè)備的注冊。以讀取光照數(shù)據(jù)為例,先將BH1750 傳感器成功對接到SENSOR 框架,再通過線程的管理獲取光照數(shù)據(jù)。

      圖2:SENSOR 驅(qū)動框架設(shè)計(jì)

      2.2 線程的管理

      在日常中遇到難解的大任務(wù)時(shí),可將大任務(wù)根據(jù)不同的功能進(jìn)行劃分,最終形成多個簡單的小任務(wù),問題便迎刃而解,在RT-Thread 中線程作為最核心的功能,也是最小的調(diào)度單位,對應(yīng)著一個個小任務(wù),通過線程的方式編寫代碼可以簡化編程難度,使線程之間相互獨(dú)立,并提高程序響應(yīng)速度。另外,通過設(shè)置任務(wù)的優(yōu)先級可以讓重要的任務(wù)得到優(yōu)先處理。

      在本系統(tǒng)中需要完成的小任務(wù)有三個,其中兩個是采集傳感器溫濕度、光照數(shù)據(jù)的任務(wù),第三個任務(wù)是在連接OneNET 云平臺過程中先進(jìn)行初始化mqtt 協(xié)議的任務(wù),因此根據(jù)不同的任務(wù)對應(yīng)創(chuàng)建三個不同的線程:“read_SHT3X_thread”為采集溫濕度的線程、“read_light_thread”為采集光照度的線程、“mqtt_init_thread”為初始化mqtt 協(xié)議的線程。以采集光照度為例,通過以下幾個步驟即可讀取對應(yīng)的光照數(shù)據(jù),如表1所示。

      表1:對應(yīng)的光照數(shù)據(jù)

      2.3 信號量的規(guī)劃

      在采集數(shù)據(jù)的線程被創(chuàng)建成功之后,如何與初始化mqtt 協(xié)議的線程協(xié)作完成數(shù)據(jù)上云的任務(wù)?在RTThread 中線程間同步的方式主要三種,分別是信號量、互斥量和事件集。信號量作為輕型的內(nèi)核對象,系統(tǒng)通過獲?。╰ake)及釋放(release)信號量的方式保證任務(wù)/線程正常有序地運(yùn)行。

      RTOS 層的主要工作流程圖如圖3所示,“read_SHT3X_thread”與“read_light_thread”線程是以永久等待的方式獲取信號量,當(dāng)“等不到”時(shí)則一直等待,并且該線程處于掛起狀態(tài),同時(shí)系統(tǒng)執(zhí)行其它線程,而“等到了”則會喚醒該線程,緊接著運(yùn)行該線程的后續(xù)代碼。

      圖3:RTOS 層的主要工作流程圖

      在主函數(shù)中設(shè)置信號量“mqtt_sem”的初始值為1,在“mqtt_init_thread”線程初始化成功之后釋放信號量,信號量的值加1,而“read_SHT3X_thread”與“read_light_thread”線程在分別獲取這2 個信號量之后則上傳數(shù)據(jù)至云端,因此,系統(tǒng)通過不斷釋放及獲取信號量的方式完成“mqtt_init_thread”、“read_SHT3X_thread”、“read_light_thread”這三個線程間的通信,最終將溫濕度及光照數(shù)據(jù)上傳至OnetNET 云平臺。

      “mqtt_init_thread”線程釋放信號量的關(guān)鍵代碼如下:

      該線程的主要功能為初始化MQTT 協(xié)議,由于初始化一次可能無法成功,因此,需要通過while 循環(huán)進(jìn)行多次嘗試初始化,直到初始化成功,初始化成功之后則釋放一個信號量,并告知“read_SHT3X_thread”、“read_light_thread”線程可以上傳數(shù)據(jù),再通過return 語句完成線程工作。

      3 OneNET云平臺的設(shè)計(jì)

      OneNET 物聯(lián)網(wǎng)平臺提供高效、安全的應(yīng)用平臺,在設(shè)備端,適配多種傳輸協(xié)議,如MQTT、NB-IoT、EDP、Modbus 等[6],為開發(fā)者提供各種硬件終端的快速接入方案;另外,在應(yīng)用層中為開發(fā)者提供各類開發(fā)需求,使得開發(fā)者能夠?qū)⒅攸c(diǎn)更聚焦于自身應(yīng)用的開發(fā),縮短開發(fā)周期,降低開發(fā)成本[7]。

      在本系統(tǒng)中建立“智慧農(nóng)業(yè)大棚系統(tǒng)”產(chǎn)品,并在該產(chǎn)品下創(chuàng)建“1 號檢測點(diǎn)”設(shè)備,設(shè)備創(chuàng)建成功之后,云平臺會生成對應(yīng)的設(shè)備ID 及鑒權(quán)信息等,而設(shè)備端要接入云平臺則要進(jìn)行相應(yīng)的驗(yàn)證。因此,在RTThread Settings 中的onenet 軟件包中需對設(shè)備ID、身份驗(yàn)證信息、API 密鑰、產(chǎn)品ID、及主/產(chǎn)品APIKEY 這幾個關(guān)鍵參數(shù)進(jìn)行配置,OneNET 軟件包配置如圖4所示,驗(yàn)證通過后最終成功連接到云平臺。

      圖4:OneNET 軟件包配置圖

      4 系統(tǒng)測試

      OneNET 云平臺的管理界面如圖5所示,從圖中可知當(dāng)前溫度、濕度及光照度的值。

      圖5:OneNET 云平臺的管理界面

      光照數(shù)據(jù)流如圖6所示,系統(tǒng)以2min 為周期上傳一次溫濕度及光照數(shù)據(jù),以采集光照度為例,從圖中標(biāo)號①可知采集頻率正確。當(dāng)光照度低于閾值時(shí),如圖中標(biāo)號②所示,當(dāng)前光照值為0 時(shí),則自動開啟補(bǔ)光燈,如圖7所示。同理,當(dāng)濕度高于閾值時(shí),則開啟風(fēng)機(jī)。

      圖6:光照數(shù)據(jù)流

      圖7:小熊派主板及拓展板

      另外,云平臺通過下發(fā)命令功能手動控制風(fēng)機(jī)和補(bǔ)光燈的開與關(guān),如圖8所示。

      圖8:云平臺的下發(fā)命令功能

      5 結(jié)束語

      基于RT-Thread的智慧農(nóng)業(yè)大棚監(jiān)控系統(tǒng)通過OneNET 云平臺實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,并且實(shí)時(shí)采集傳感器數(shù)據(jù)并與風(fēng)機(jī)、補(bǔ)光燈等執(zhí)行器進(jìn)行聯(lián)動,為管理人員提供精準(zhǔn)數(shù)據(jù)以提高種植產(chǎn)量。另外,系統(tǒng)對RTOS 資源進(jìn)行合理規(guī)劃,應(yīng)用線程及信號量完成數(shù)據(jù)的傳輸能夠有效提高系統(tǒng)響應(yīng)速度,如為更好地滿足大棚的監(jiān)測需求,進(jìn)一步完善系統(tǒng)功能,后期只需通過線程的管理即可增加其它傳感器,降低開發(fā)難度[8]。

      猜你喜歡
      信號量光照度線程
      基于STM32的mbedOS信號量調(diào)度機(jī)制剖析
      光照度傳感器在智能家居照明系統(tǒng)中的應(yīng)用
      傳感器世界(2022年7期)2022-10-12 09:11:22
      三種光照度對廣西地不容生理生化特性的影響
      Nucleus PLUS操作系統(tǒng)信號量機(jī)制的研究與測試
      光照度對不同產(chǎn)地南方紅豆杉幼苗生長發(fā)育的影響
      “農(nóng)地種電”型光伏電站可種植區(qū)域光溫環(huán)境參數(shù)研究
      淺談linux多線程協(xié)作
      μC/OS- -III對信號量的改進(jìn)
      Linux操作系統(tǒng)信號量機(jī)制的實(shí)時(shí)化改造
      Linux線程實(shí)現(xiàn)技術(shù)研究
      土默特右旗| 黔西县| 全椒县| 彩票| 太原市| 会理县| 四平市| 红原县| 连州市| 临江市| 娱乐| 厦门市| 阿拉善盟| 伊吾县| 辉南县| 育儿| 壤塘县| 衡阳市| 大洼县| 于田县| 静乐县| 广丰县| 工布江达县| 宁乡县| 商南县| 军事| 民勤县| 桐乡市| 海安县| 香河县| 古田县| 延庆县| 滨州市| 行唐县| 长寿区| 新蔡县| 云和县| 西丰县| 鲁甸县| 永丰县| 廊坊市|