91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于ART-PI & RT-Studio開發(fā)的小型蚯蚓養(yǎng)殖監(jiān)控系統(tǒng)系統(tǒng)

Linux閱碼場 ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2021-08-02 17:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

開源地址:https://gitee.com/bltas/earthworm_home

概述:

小型蚯蚓養(yǎng)殖監(jiān)控系統(tǒng)主要探索在家庭等局限場地下,蚯蚓的正常養(yǎng)殖,從而得到蚯蚓糞和蚯蚓液。系統(tǒng)基于ART-PI & RT-Studio 開發(fā),使用了dht11,ds18b20,土壤濕度,mpu6050監(jiān)測養(yǎng)殖環(huán)境中的空氣溫濕度,土壤溫濕度和蚯蚓的抖動(dòng)密度。外置的風(fēng)扇和水泵對(duì)上述環(huán)境變量進(jìn)行控制。連接onenet后可以及時(shí)在后臺(tái)遠(yuǎn)程觀測環(huán)境變量并加以控制。

開發(fā)環(huán)境

硬件:ART-Pi STM32H750

擴(kuò)展板:DS18B20防水?dāng)?shù)字溫度傳感器,DHT11溫濕度傳感器,2pcs MPU6050 傳感器,土壤濕度傳感器

RT-Thread版本:RT-Thread V 4.0.3

開發(fā)工具及版本:RT-studio2.0.0

RT-Thread使用情況概述

調(diào)度器:創(chuàng)建多個(gè)線程來實(shí)現(xiàn)不同的工作。

信號(hào)量:用來同步線程。

互斥量:多個(gè)相關(guān)采集線程能同時(shí)獲得系統(tǒng)資源,不被其他線程搶占

消息隊(duì)列:用來實(shí)現(xiàn)采集線程,控制線程和OneNet upload線程的同步。

消息郵箱:onenet_mqtt 接受控制命令后和控制線程的同步

組件部分:I2c框架, Sensor框架

I2C框架:使用 I2C框架來驅(qū)動(dòng)MPU6050

ADC device: 用來采集土壤濕度

PWM device: 用來控制風(fēng)扇,水泵。

Sensor框架:MPU6050,DHT11,DS18b20均為基于sensor框架的包,為上層提供統(tǒng)一的操作接口,提高上層代碼的可重用性;簡化底層驅(qū)動(dòng)開發(fā)的難度。

軟件包部分:

Webclient:提供設(shè)備與 HTTP Server 的通訊的基本功能。

pahomqtt:本軟件包是在 Eclipse paho-mqtt 源碼包的基礎(chǔ)上設(shè)計(jì)的一套 MQTT 客戶端程序。

Onenet:是 RT-Thread 針對(duì) OneNET 平臺(tái)連接做的的適配,通過這個(gè)軟件包,可以讓設(shè)備在 RT-Thread 上非常方便的連接 OneNet 平臺(tái),完成數(shù)據(jù)的發(fā)送、接收、設(shè)備的注冊(cè)和控制等功能。

cJSON: C語言實(shí)現(xiàn)的極簡的解析 JSON 格式的軟件包。

DHT11: GPIO模擬單總線協(xié)議,讀取傳感器溫濕度,注冊(cè)在sensor框架

Ds18b20: GPIO模擬單總線協(xié)議,讀取傳感器溫度,注冊(cè)在sensor框架

MPU6050: 本軟件包是為 InvenSense 公司的六軸系列傳感器提供的通用傳感器驅(qū)動(dòng)包,可選I2C或SPI通信協(xié)議。通過 Sensor 框架,開發(fā)者可以快速的將此傳感器驅(qū)動(dòng)起來。

硬件框架

60f56936-e032-11eb-9e57-12bb97331649.jpg

ART-Pi 外掛多個(gè)傳感器作為采集輸入設(shè)備, 水泵和風(fēng)扇作為控制設(shè)備。ART-Pi本身作為Onenet的一個(gè)終端設(shè)備來上傳數(shù)據(jù)接收和接收命令。

軟件框架說明

多個(gè)采集線程實(shí)時(shí)讀取環(huán)境中的溫濕度,發(fā)送到stream消息隊(duì)列;Onenet上傳線程接收消息并上傳到相應(yīng)stream。當(dāng)云端下發(fā)命令,觸發(fā)Onenet_cmd_rsp_cb, 在里面發(fā)送接收的控制命令到命令緩存郵箱,控制線程查詢郵箱,發(fā)現(xiàn)郵件后使用rt_mq_urgent發(fā)送緊急控制stream,及時(shí)同步云端控制設(shè)備的狀態(tài)。

軟件模塊說明

共創(chuàng)建了2個(gè)信號(hào)量,1個(gè)消息隊(duì)列,1個(gè)互斥量,7個(gè)線程

信號(hào)量:

mqttinit_sem 主要用于wifi的連接及onenet_mqtt_init的同步問題。

sensor_msg_sem_empty 主要限制采集線程占用的消息資源個(gè)數(shù)

5個(gè)采集線程:

adc1_5_entry:周期性讀取土壤濕度傳感器的值,并把讀取到的值發(fā)送到消息隊(duì)列sensor_msg_mq

read_dhtll_entry:周期性讀取DHT11溫濕度傳感器的值,并把讀取到的值發(fā)送到消息隊(duì)列sensor_msg_mq

read_ds18b20_entry:周期性讀取ds1b20 土壤溫度傳感器的值,并把讀取到的值發(fā)送到消息隊(duì)列sensor_msg_mq

read_gyro0_entry: 周期性讀取MPU6050_0六軸傳感器的Y軸角速度,作為蚯蚓活動(dòng)強(qiáng)度(間接反映蚯蚓密度和活性情況),并把讀取到的值發(fā)送到消息隊(duì)列

read_gyro1_entry: 同上,兩點(diǎn)測量。

消息隊(duì)列:

sensor_msg_mq: 為了同步采集線程,控制線程和云端的同步。由于Onenet數(shù)據(jù)刷新有要求,更新數(shù)據(jù)快了也沒用,這里設(shè)置為1s. 生產(chǎn)者過多,消費(fèi)速率過慢,最終都會(huì)過剩。只分配5個(gè)消息給到采集線程。

另外,雖然我們開辟了8個(gè)消息,但是我們使用了sensor_msg_sem_empty 信號(hào)量來限制采集線程只能使用5個(gè),留下的3個(gè)用來快速同步控制流,及時(shí)刷新云端控制設(shè)備的狀態(tài)。

互斥量:

sensor_msg_mutex: 由于DHT11同時(shí)讀取了溫度和濕度兩個(gè)環(huán)境變量,對(duì)應(yīng)云端兩個(gè)stream,需要發(fā)送兩次消息,為確保兩個(gè)stream的同步,先獲取互斥量,在未全部發(fā)送完成之前不釋放互斥量。

消息郵箱:

sensor_msg_mailbox:云端發(fā)送命令間隔沒有明確的限制,存在連續(xù)操作,需要緩存一下,這里設(shè)置了16個(gè)郵件。在Onenet_cmd_rsp_cb里把接收的命令直接發(fā)送到郵箱,控制線程接收郵件并處理。

控制線程:

center_control_entry:從sensor_msg_mailbox郵箱里接收郵件,解析命令,控制設(shè)備,并同步設(shè)備狀態(tài)到云端。

上傳線程:

onenet_upload_entry: 長等待方式從隊(duì)列里接收消息,然后根據(jù)消息里的stream_id發(fā)數(shù)據(jù)到 onenet云端不同的數(shù)據(jù)流

狀態(tài)線程:

Main:led 2s閃爍,指示當(dāng)前系統(tǒng)的運(yùn)行狀態(tài)。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1614

    瀏覽量

    44884

原文標(biāo)題:【RT-Thread 開源作品秀】小型蚯蚓養(yǎng)殖監(jiān)控系統(tǒng)

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    海鮮陸地養(yǎng)殖物聯(lián)網(wǎng)遠(yuǎn)程監(jiān)控系統(tǒng)方案

    隨著海洋資源開發(fā)力度不斷加大,以及內(nèi)陸地區(qū)對(duì)海鮮產(chǎn)品需求的日益增長,海水陸?zhàn)B模式應(yīng)運(yùn)而生。該模式通過在內(nèi)陸構(gòu)建適宜的養(yǎng)殖環(huán)境(集裝箱、養(yǎng)殖池、高罐等),引入海水進(jìn)行水產(chǎn)養(yǎng)殖,有效突破了
    的頭像 發(fā)表于 01-28 14:57 ?187次閱讀
    海鮮陸地<b class='flag-5'>養(yǎng)殖</b>物聯(lián)網(wǎng)遠(yuǎn)程<b class='flag-5'>監(jiān)控</b><b class='flag-5'>系統(tǒng)</b>方案

    【深度實(shí)戰(zhàn)】MYD-LR3576 AMP非對(duì)稱多核開發(fā)指南:從配置到實(shí)戰(zhàn)

    多處理),AMP具有獨(dú)特優(yōu)勢(shì)。核心特性:異構(gòu)運(yùn)算:不同核心運(yùn)行最適合的操作系統(tǒng),如Linux處理復(fù)雜應(yīng)用,RT-Thread保障實(shí)時(shí)任務(wù);資源隔離:各核心擁有獨(dú)立內(nèi)存空間,避免
    的頭像 發(fā)表于 12-05 08:07 ?7130次閱讀
    【深度實(shí)戰(zhàn)】MYD-LR3576 <b class='flag-5'>AMP</b>非對(duì)稱多核<b class='flag-5'>開發(fā)</b>指南:從配置到實(shí)戰(zhàn)

    ART-Pi中啟用外部flash是在哪里配置了qspi的引腳呢?

    。由于我是按照以芯片建立工程,并沒有使用ART-PI的工程。 2、我目前了解到在ART-PI工程中會(huì)有這個(gè)下載算法。 在這個(gè)鏈接文件要配置地址 3、于是我有個(gè)好奇的點(diǎn)是在工程中沒看到有QSPI的配置
    發(fā)表于 10-10 06:09

    ART-PI使用新的env工具已經(jīng)無法編譯SDK倉庫里的示例工程了,怎么解決?

    ART-PI 使用新的env工具已經(jīng)無法編譯SDK倉庫里的示例工程了 希望還是能維護(hù)一下,新的env已經(jīng)無法構(gòu)建出工程進(jìn)行編譯了 使用scons —target=mdk5 直接報(bào)錯(cuò)了 希望有方
    發(fā)表于 10-09 06:47

    rt-studio支持仿真的時(shí)候變量實(shí)時(shí)刷新嗎?

    rt-studio支持仿真的時(shí)候變量實(shí)時(shí)刷新么?像keil那樣。目前看到的好像不能實(shí)時(shí)刷新變量,只有下斷點(diǎn)了變量才會(huì)刷新出來。
    發(fā)表于 09-28 09:44

    RT-Thread Studio無法調(diào)用CubeMX的GPIO接口怎么解決?

    創(chuàng)建簡單的LED閃爍程序 RT-Thread Studio 版本: 2.2.7 創(chuàng)建新的RT-thread系統(tǒng),系統(tǒng)版本4.1.1用Cube
    發(fā)表于 09-26 06:49

    rt-thread studio debug生成了elf &amp;amp; map,為什么不生成反匯編呢?

    開發(fā)中crash后dump出了現(xiàn)場,需要通過反匯編文件確定crash的lr &amp;amp; pc,大部分使用rtthread studio的環(huán)境是windows,在windows下
    發(fā)表于 09-18 07:13

    按照官方文檔在ART-PI上開啟PWM,但是串口輸出找不到設(shè)備,怎么解決?

    , tim_config.h里也仿照TIM13加入了有關(guān)TIM3的代碼, stm32h7xx_hal_msp.c里也打開了TIM3的使能, 最后按照官方文檔上的代碼,拷貝到ART-PI的模板例程里。但是不能發(fā)現(xiàn)TIM3的設(shè)備
    發(fā)表于 09-17 06:27

    rt-thread studio網(wǎng)絡(luò)連接失敗的原因?

    :/RT-ThreadStudio//plugins/org.rt-thread.studio.kconfig.pkg_1.0.26/web/dist/static/theme.less successfully.&amp
    發(fā)表于 09-16 08:25

    如何在 ART-Pi 平臺(tái)使用 openocd 直接燒錄到外部 spi flash?

    ART-Pi 內(nèi)置的 128Kb flash太小了,我現(xiàn)在在 Linux openocd 燒錄程序,請(qǐng)問有沒有人成功使用 openocd 可以直接燒寫到外部 Quad spi flash 的?
    發(fā)表于 09-15 07:32

    ART-PI 使用CAN硬件過濾器打開后接收中斷異常的原因?

    &amp;gt;= 0) assertion failed at function:rt_hw_can_isr, line number:835 #include #include
    發(fā)表于 09-10 07:10

    ART-PI H750-USB-MSC設(shè)備描述符異常的原因?怎么解決?

    主控:STM32H750XBH6- ART-Pi 開發(fā)環(huán)境:CubeMX+MDK V5.27問題背景:當(dāng)前已經(jīng)調(diào)試通SD卡+Fatfs文件系統(tǒng),(通過主控來模擬讀卡器)使用單根USB-C線纜連接至
    發(fā)表于 06-19 06:52

    rt-thread studio debug生成了elf &amp;amp;amp; map,為什么不生成反匯編?

    開發(fā)中crash后dump出了現(xiàn)場,需要通過反匯編文件確定crash的lr &amp;amp; pc,大部分使用rtthread studio的環(huán)境是windows,在windows下
    發(fā)表于 06-11 06:42

    Banana Pi 發(fā)布 BPI-AI2N &amp;amp; BPI-AI2N Carrier,助力 AI 計(jì)算與嵌入式開發(fā)

    2025年3月19日——Banana Pi 今日正式發(fā)布 BPI-AI2N &amp; BPI-AI2N Carrier,基于瑞薩電子(Renesas)同步發(fā)布的最新的高性能處理器RZ/V2N
    的頭像 發(fā)表于 03-19 17:53 ?1799次閱讀
    Banana <b class='flag-5'>Pi</b> 發(fā)布 BPI-AI2N &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; BPI-AI2N Carrier,助力 AI 計(jì)算與嵌入式<b class='flag-5'>開發(fā)</b>

    STM32H750XBH6- ART-Pi使用HAL_SPI_Transmit_DMA()函數(shù)初次發(fā)送時(shí),不進(jìn)入SPI中斷怎么解決?

    主控:STM32H750XBH6- ART-Pi 開發(fā)環(huán)境:CubeMX+MDK V5.27問題背景: DAC芯片需要使用32bit SPI 目前使用輪詢方式工作正常 需要硬件SPI+DMA加快
    發(fā)表于 03-07 06:34