欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

一種基于STM32F407-RT-SPARK開發(fā)板的智能花盆設(shè)計(jì)案例

冬至子 ? 來(lái)源:吶吶吶 ? 作者:吶吶吶 ? 2023-07-28 17:06 ? 次閱讀

功能簡(jiǎn)介:

該項(xiàng)目是基于STM32F407-RT-SPARK開發(fā)板的智能花盆。通過(guò)溫濕度傳感器和光照傳感器,它能夠監(jiān)測(cè)花盆土壤當(dāng)前的溫濕度和附近的光照強(qiáng)度,并將這三項(xiàng)數(shù)據(jù)實(shí)時(shí)顯示在LCD屏上。它還能夠監(jiān)測(cè)花盆是否傾倒,監(jiān)測(cè)到花盆傾倒后,蜂鳴器會(huì)發(fā)出警報(bào),直到按下按鍵,警報(bào)停止。同時(shí),它還配備了rw007模塊,能將這些數(shù)據(jù)實(shí)時(shí)上傳到onenet平臺(tái)。

硬件框架:

使用到的模塊包括:LCD屏、溫濕度傳感器、光照傳感器、蜂鳴器、物理按鍵

1.jpg

圖一 硬件實(shí)物圖與使用到的模塊

1.jpg

圖二 硬件框架圖

軟件框架:

1.jpg

圖三 軟件框架圖

軟件模塊說(shuō)明及部分代碼:

1.六軸傳感器線程:

六軸傳感器模塊測(cè)量花盆的偏航角、橫滾角和俯仰角,并將測(cè)量數(shù)據(jù)發(fā)送給CPU進(jìn)行判斷,若花盆傾倒,記錄異常數(shù)據(jù)。

icm20608_device_t devvv = RT_NULL;
             rt_err_t result;
             devvv = icm20608_init(i2c_bus_namee);
             if (devvv == RT_NULL)
             {
             LOG_E("The sensor initializes failure");
             return 0;
             }
             else
             {
             LOG_D("The sensor initializes success");
             }
             /* 對(duì) icm20608 進(jìn) 行 零 值 校 準(zhǔn): 采 樣 10 次, 求 取 平 均 值 作 為 零 值 */
             result = icm20608_calib_level(devvv, 10);
             if (result == RT_EOK)
             {
             LOG_D("The sensor calibrates success");
             LOG_D("accel_offset: X%6d Y%6d Z%6d", devvv- >accel_offset.x, devvv- >accel_offset.y, devvv- >accel_offset.z);
             }
             else
             {
             LOG_E("The sensor calibrates failure");
             icm20608_deinit(devvv);
             return 0;
             }
             rt_int16_t accel_x, accel_y, accel_z;
             /* 讀 取 三 軸 加 速 度 */
             result = icm20608_get_accel(devvv, &accel_x, &accel_y, &accel_z);
             if (result == RT_EOK)
             {
             LOG_D("current accelerometer: accel_x%6d, accel_y%6d, accel_z%6d",
             accel_x, accel_y, accel_z);
             }
             else
             {
             LOG_E("The sensor does not work");
             break;
             }

2.LCD顯示線程:

該線程初始化后會(huì)持續(xù)讀取溫度、濕度和光照數(shù)據(jù),并將其實(shí)時(shí)顯示在LCD顯示屏上。

lcd_clear(WHITE);
lcd_set_color(WHITE, RED);
lcd_show_string(10, 0, 16, "Hello!");
lcd_set_color(WHITE, BLACK);
lcd_show_string(10, 26, 32, "Temperature:");
lcd_show_string(10, 90, 32, "Humidity:");
lcd_show_string(10, 160, 32, "Light:");
lcd_set_color(WHITE, BLUE);
lcd_show_num(30, 26+32, temperature, 2, 32);
lcd_show_string(65,26+32,32,"C");
lcd_show_num(30, 90+32, humidity, 2, 32);
lcd_show_string(65, 90+32, 32, "%");
lcd_show_num(30, 160+32, brightness, 2, 32);
lcd_show_string(80, 160+32, 32, "lux");

3.光強(qiáng)傳感器線程:

光強(qiáng)傳感器模塊將記錄光強(qiáng)數(shù)據(jù),用于LCD顯示和云端顯示。

brightness = ap3216c_read_ambient_light(devv);
             LOG_D("current brightness: %d.%d(lux).", (int)brightness, ((int)(10 * brightness) % 10));

4.rw007線程(Onenet):

讀取rw007模塊傳來(lái)的溫濕度數(shù)據(jù)、光照數(shù)據(jù)并存儲(chǔ)到云端以圖表方式進(jìn)行顯示;若傾倒角度數(shù)據(jù)異常,會(huì)在云端進(jìn)行報(bào)警。

int onenet_publish_digit(int argc, char **argv)
{
if (argc != 3)
{
LOG_E("onenet_publish [datastream_id] [value] - mqtt pulish digit data to OneNET.");
return -1;
}
if (onenet_mqtt_upload_digit(argv[1], atoi(argv[2])) < 0)
{
LOG_E("upload digit data has an error!n");
}
return 0;
}
int onenet_publish_string(int argc, char *argv)
{
if (argc != 3)
{
LOG_E("onenet_publish [datastream_id] [string] - mqtt pulish string data to OneNET.");
return -1;
}
if (onenet_mqtt_upload_string(argv[1], argv[2]) < 0)
{
LOG_E("upload string has an error!n");
}
return 0;
}
/
onenet mqtt command response callback function */
static void onenet_cmd_rsp_cb(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size)
{
char res_buf[] = { "cmd is received!n" };
LOG_D("recv data is %.sn", recv_size, recv_data);
/
user have to malloc memory for response data */
*resp_data = (uint8_t *) ONENET_MALLOC(strlen(res_buf));
strncpy((char *)*resp_data, res_buf, strlen(res_buf));
resp_size = strlen(res_buf);
}
/
set the onenet mqtt command response callback function */
int onenet_set_cmd_rsp(int argc, char *argv)
{ onenet_set_cmd_rsp_cb(onenet_cmd_rsp_cb);
return 0;
}
MSH_CMD_EXPORT(onenet_set_cmd_rsp, set cmd response function);
#endif /
FINSH_USING_MSH */

5.溫濕度線程:

溫濕度傳感器模塊測(cè)量土壤的溫濕度,并記錄測(cè)量數(shù)據(jù)。

temperature=(int)temperature+(int)(temperature10)%10;
humidity=(int)humidity+(int)(humidity
10)%10;
brightness=(int)brightness+(int)(brightness*10)%10;
rt_thread_mdelay(100);
onenet_mqtt_upload_digit("temperature", temperature);
rt_thread_mdelay(100);
onenet_mqtt_upload_digit("humidity", humidity);
rt_thread_mdelay(100);
onenet_mqtt_upload_digit("brightness", brightness);

6.蜂鳴器線程:

讀取六軸傳感器數(shù)據(jù),并對(duì)花盆的傾倒?fàn)顟B(tài)進(jìn)行判斷。若花盆傾倒,蜂鳴器報(bào)警,可通過(guò)開發(fā)板上的按鍵關(guān)閉蜂鳴器。

/* 設(shè)置按鍵引腳為輸入模式 */
        rt_pin_mode(PIN_KEY1, PIN_MODE_INPUT_PULLUP);
        rt_pin_mode(PIN_WK_UP, PIN_MODE_INPUT_PULLUP);
        /* 設(shè)置蜂鳴器引腳為輸出模式 */
        rt_pin_mode(PIN_BEEP, PIN_MODE_OUTPUT);
        /* 設(shè)置按鍵中斷模式與中斷回調(diào)函數(shù) */
        rt_pin_attach_irq(PIN_KEY1, PIN_IRQ_MODE_FALLING, irq_callback, (void *) PIN_KEY1);
        rt_pin_attach_irq(PIN_WK_UP, PIN_IRQ_MODE_FALLING, irq_callback, (void *) PIN_WK_UP);
        /* 使能中斷 */
        rt_pin_irq_enable(PIN_KEY1, PIN_IRQ_ENABLE);
        rt_pin_irq_enable(PIN_WK_UP, PIN_IRQ_ENABLE);

int topple;
int X,Y,Z;
X=devvv->accel_offset.x;
Y=devvv->accel_offset.y;
Z=devvv->accel_offset.z;
if(abs(Y)<=10000){
topple=0;
rt_pin_write(PIN_BEEP,PIN_LOW);
LOG_D("KEY1 interrupt. beep off.");
}
else{
topple=1;
rt_pin_write(PIN_BEEP,PIN_HIGH);
LOG_D("WK_UP interrupt. beep on.");
break;
}

Onenet頁(yè)面展示

1.jpg

1.jpg

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

    關(guān)注

    2273

    文章

    10926

    瀏覽量

    357828
  • LCD屏
    +關(guān)注

    關(guān)注

    0

    文章

    122

    瀏覽量

    15531
  • 蜂鳴器
    +關(guān)注

    關(guān)注

    12

    文章

    893

    瀏覽量

    46119
  • 溫濕度傳感器
    +關(guān)注

    關(guān)注

    5

    文章

    581

    瀏覽量

    35872
  • STM32F407
    +關(guān)注

    關(guān)注

    15

    文章

    188

    瀏覽量

    29680
  • OneNET
    +關(guān)注

    關(guān)注

    1

    文章

    51

    瀏覽量

    12910
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32F407靈致開發(fā)板攝像頭SRAM應(yīng)用例程說(shuō)明

    STM32F407靈致開發(fā)板攝像頭SRAM應(yīng)用例程說(shuō)明
    發(fā)表于 12-22 18:11 ?32次下載

    STM32F407 開發(fā)板原理圖

    STM32F407 開發(fā)板原理圖
    發(fā)表于 09-22 16:12 ?393次下載
    <b class='flag-5'>STM32F407</b> <b class='flag-5'>開發(fā)板</b>原理圖

    星翼電子:探索者STM32F407開發(fā)板資源詳細(xì)列表

    星翼電子:探索者STM32F407開發(fā)板資源詳細(xì)列表
    的頭像 發(fā)表于 10-15 09:51 ?4080次閱讀
    星翼電子:探索者<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>資源詳細(xì)列表

    STM32F407開發(fā)板電路原理圖免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F407開發(fā)板電路原理圖免費(fèi)下載。
    發(fā)表于 12-10 08:00 ?108次下載
    <b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>電路原理圖免費(fèi)下載

    STM32F407開發(fā)板的光盤資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F407開發(fā)板的光盤資料合集免費(fèi)下載。
    發(fā)表于 12-30 08:00 ?56次下載
    <b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>的光盤資料合集免費(fèi)下載

    STM32F407開發(fā)板用戶手冊(cè)】第13章 STM32F407啟動(dòng)過(guò)程詳解

    STM32F407開發(fā)板用戶手冊(cè)】第13章 STM32F407啟動(dòng)過(guò)程詳解
    發(fā)表于 11-23 18:06 ?73次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊(cè)】第13章 <b class='flag-5'>STM32F407</b>啟動(dòng)過(guò)程詳解

    STM32F407開發(fā)板用戶手冊(cè)】第14章 STM32F407的電源,復(fù)位和時(shí)鐘系統(tǒng)

    STM32F407開發(fā)板用戶手冊(cè)】第14章 STM32F407的電源,復(fù)位和時(shí)鐘系統(tǒng)
    發(fā)表于 12-02 16:21 ?42次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊(cè)】第14章 <b class='flag-5'>STM32F407</b>的電源,復(fù)位和時(shí)鐘系統(tǒng)

    STM32F407開發(fā)板用戶手冊(cè)】第1章?? 初學(xué)STM32F407的準(zhǔn)備工作

    STM32F407開發(fā)板用戶手冊(cè)】第1章?? 初學(xué)STM32F407的準(zhǔn)備工作
    發(fā)表于 12-04 13:36 ?75次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊(cè)】第1章?? 初學(xué)<b class='flag-5'>STM32F407</b>的準(zhǔn)備工作

    STM32F407開發(fā)板用戶手冊(cè)】第21章 STM32F407的NVIC中斷分組和配置(重要)

    STM32F407開發(fā)板用戶手冊(cè)】第21章 STM32F407的NVIC中斷分組和配置(重要)
    發(fā)表于 12-04 13:51 ?21次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊(cè)】第21章 <b class='flag-5'>STM32F407</b>的NVIC中斷分組和配置(重要)

    STM32F407開發(fā)板用戶手冊(cè)】第8章 STM32F407的終極調(diào)試組件Event Recorder

    STM32F407開發(fā)板用戶手冊(cè)】第8章 STM32F407的終極調(diào)試組件Event Recorder
    發(fā)表于 12-04 14:21 ?19次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊(cè)】第8章 <b class='flag-5'>STM32F407</b>的終極調(diào)試組件Event Recorder

    STM32F407開發(fā)板用戶手冊(cè)】第19章 STM32F407的GPIO應(yīng)用之按鍵FIFO

    STM32F407開發(fā)板用戶手冊(cè)】第19章 STM32F407的GPIO應(yīng)用之按鍵FIFO
    發(fā)表于 12-05 15:21 ?39次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊(cè)】第19章 <b class='flag-5'>STM32F407</b>的GPIO應(yīng)用之按鍵FIFO

    STM32F407ZE開發(fā)板MPU6050陀螺儀的應(yīng)用

    STM32F407ZE開發(fā)板MPU6050陀螺儀的應(yīng)用
    發(fā)表于 12-06 14:36 ?11次下載
    <b class='flag-5'>STM32F407</b>ZE<b class='flag-5'>開發(fā)板</b>MPU6050陀螺儀的應(yīng)用

    STM32STM32 F4開發(fā)板介紹

    目錄01、STM32F4開發(fā)板的資源圖02、STM32F4開發(fā)板板載資源03、STM32F4部分資源說(shuō)明3.1、JTAG/SWD3.2、
    發(fā)表于 12-17 18:14 ?27次下載
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>STM32</b> <b class='flag-5'>F</b>4<b class='flag-5'>開發(fā)板</b>介紹

    STM32F407開發(fā)板原理圖下載

    STM32F407 開發(fā)板原理圖,有興趣的同學(xué)可以參考!
    發(fā)表于 04-29 17:09 ?62次下載

    STM32F407開發(fā)板資料

    STM32F407開發(fā)板1.zip,方便你在這個(gè)原理圖基礎(chǔ)上進(jìn)行修改和定制,提供常用的元器件封裝庫(kù),節(jié)省設(shè)計(jì)時(shí)間
    發(fā)表于 07-03 15:08 ?15次下載