色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

智能家居之旅(7):HomeAssistant開發(fā)板的RGB顏色

AIoT行業(yè)洞察 ? 來源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2024-07-03 16:39 ? 次閱讀

hello,有誰還記得之前小美的視頻?當時做了一個RGB燈,并且說了 RGB的一些開發(fā)過程。所以說RGB實體很早之前就已經(jīng)開發(fā)好了,只是一直沒有寫帖子介紹它的用法。今天就給大家介紹一下 RGB 彩燈怎么上HomeAssistant,然后控制Ai-M61開發(fā)板的 RGB 燈的顏色,感覺這個項目用來控制家里的燈條就挺不錯的。

wKgZomaFDkSAftXLABCGnGpLyrQ663.gif

彩燈實體創(chuàng)建

1.彩燈實體資源啟用

彩燈實體在 HomeAssistant 上描述為 Light,HomeAssistant-C 上默認也是不開啟的,所以需要在 homeAssistantDevConfig.h 當中把#define CONFIG_ENTITY_ENABLE_LIGHT的值置 1:

wKgaomaFDkSAf-z9AAAUWLY7XDU90.jpeg

2.Light 實體創(chuàng)建

彩燈(Light)實體的創(chuàng)建位置和其他實體一樣,就是在 MQTT 連接成功的事件里面,這里就不多說了,需要說明的是,彩燈實體會比其他實體多很多的控制主題,有開關(guān)、亮度、顏色等等。HomeAssistant-C 中,默認只給開關(guān)功能提供默認的主題,所以在創(chuàng)建實體的時候,除了 name、unique_id 參數(shù)之外,還需要給顏色控制燈主題賦值參數(shù),例如:

static ha_lh_entity_t rgb_light = {

.name = "彩燈",

.unique_id = "light_rgb01",

.rgb.rgb_command_topic = "light_rgb01/set",

.rgb.rgb_state_topic = "light_rgb01/state",

};

homeAssistant_device_add_entity(CONFIG_HA_ENTITY_LIGHT, &rgb_light);

HA 設(shè)備顯示

wKgZomaFDkyAUegxAABen5rzpd472.jpeg

獲取 HomeAssistant 的控制指令

在 HomeAssistant-C 當中,暫時定義好了 Light 的三個控制事件:

HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH,//light 燈的開關(guān)事件

HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE,//light 燈的 RGB 顏色下發(fā)事件

HA_EVENT_MQTT_COMMAND_LIGHT_BRIGHTNESS,//light 燈的亮度數(shù)據(jù)下發(fā)事件

在這里只對

HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH 和 HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE 這兩個事件來控制 RGB,在 HomeAssistant 事件回調(diào)函數(shù)當中(這里的函數(shù)名為:ha_event_cb),添加以下內(nèi)容:

case HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH:

break;

case HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE:

break;

wKgaomaFDkyAEZQiAACwjS6Vxkw84.jpeg

1.讀取 HA 的開關(guān)控制命令

HomeAssistant 平臺的下發(fā)開關(guān)控制之后,會觸發(fā) HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH 事件,所以在

HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH 下,打印開關(guān)信息,實現(xiàn)有開關(guān)下發(fā)就輸出信息,然后返回當前開關(guān)狀態(tài):

case HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH:

LOG_I("<<<<<<<<<< HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH %s", ha_dev->entity_light->command_light->light_state?"ON":"OFF");

homeAssistant_device_send_entity_state(CONFIG_HA_ENTITY_LIGHT, ha_dev->entity_light->command_light, ha_dev->entity_light->command_light->light_state);

break;

驗證結(jié)果

wKgZomaFDlKAGNhOAABREG_yJPw53.jpeg

2.讀取 HA 的顏色更新命令

同樣的,HomeAssistant 平臺設(shè)置顏色時,會觸發(fā)HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE事件,這時就需要在這個事件當中獲取顏色 RGB 的顏色值,在這個事件下添加以下內(nèi)容,把顏色 R,G,B 的值打印出來并同步給 HA:

case HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE:

LOG_I("<<<<<<<<<< HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE,RGB=%d,%d,%d", ha_dev->entity_light->command_light->rgb.red, ha_dev->entity_light->command_light->rgb.green, ha_dev->entity_light->command_light->rgb.blue);

// device_rgb_update_color(ha_dev->entity_light->command_light->rgb.red, ha_dev->entity_light->command_light->rgb.green, ha_dev->entity_light->command_light->rgb.blue);

homeAssistant_device_send_entity_state(CONFIG_HA_ENTITY_LIGHT, ha_dev->entity_light->command_light, ha_dev->entity_light->command_light->light_state);

break;

驗證結(jié)果

wKgaomaFDlKAKxVgAABmhotp-4E55.jpeg

控制 RGB

開發(fā)板上的 RGB 是直接由引腳控制,想要實現(xiàn)顏色調(diào)節(jié)的話,就需要開啟 PWM 控制,通過控制紅綠藍三基色來實現(xiàn)調(diào)色。先要把控制 RGB 的引腳啟動 PWM 功能,先看一下 Ai-M61 開發(fā)板 RGB 的接線情況:

顏色GPIOPWM 通道紅燈IO12PWM0綠燈IO14PWM2藍燈IO15PWM3

1.初始化 RGB 引腳

已經(jīng)知道引腳配置之后,直接在主函數(shù)當中初始化 RGB 引腳,在初始化階段添加以下代碼

struct bflb_device_s* gpio;

gpio = bflb_device_get_by_name("gpio");

bflb_gpio_init(gpio, 12, GPIO_FUNC_PWM0 | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1);

bflb_gpio_init(gpio, 14, GPIO_FUNC_PWM0 | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1);

bflb_gpio_init(gpio, 15, GPIO_FUNC_PWM0 | GPIO_ALTERNATE | GPIO_PULLUP | GPIO_SMT_EN | GPIO_DRV_1);

pwm = bflb_device_get_by_name("pwm_v2_0");

//100Hz

struct bflb_pwm_v2_config_s cfg = {

.clk_source = BFLB_SYSTEM_XCLK ,

.clk_div = 40,

.period = 1000,

};

bflb_pwm_v2_init(pwm, &cfg);

bflb_pwm_v2_channel_positive_start(pwm, PWM_CH0);

bflb_pwm_v2_channel_positive_start(pwm, PWM_CH2);

bflb_pwm_v2_channel_positive_start(pwm, PWM_CH3);

bflb_pwm_v2_start(pwm);

wKgZomaFDlSATHqyAADWSnqUmAg66.jpeg

2.調(diào)色函數(shù)

因為 R,G,B 的值最高只有 255,對應(yīng) PWM 占空比 100%,所以我們在調(diào)色的時候,就需要把目標顏色的 RGB 值計算出相對性的占空比,然后賦值給 PWM 占空比控制函數(shù)。因為我們使用的 PWM 的頻率是1KHz,所以我們在計算占空比的時候,需要 乘以 1000,因為我們就能達到下面這個函數(shù):

void device_rgb_update_color(uint8_t red, uint8_t green, uint8_t blue)

{

uint16_t color_red_period = 1000*red/255;

uint16_t color_green_period = 1000*green/255;

uint16_t color_blue_period = 1000*blue/255;

bflb_pwm_v2_stop(pwm);

bflb_pwm_v2_channel_set_threshold(pwm, PWM_CH0, 0, color_red_period);

bflb_pwm_v2_channel_set_threshold(pwm, PWM_CH2, 0, color_green_period);

bflb_pwm_v2_channel_set_threshold(pwm, PWM_CH3, 0, color_blue_period);

bflb_pwm_v2_start(pwm);

}

使用這個函數(shù)的時候,只需要把 R,G,B 三個數(shù)值按順序賦值就行了。

3.RGB 的亮滅

有了調(diào)色的函數(shù)之后,滅掉所有燈,只需要把顏色值全部設(shè)置成 0,亮的時候,就把 R,G,B 重新賦值就行了:

//控制RGB

if (!ha_dev->entity_light->command_light->light_state) {

device_rgb_update_color(0, 0, 0);

}

else {

if (ha_dev->entity_light->command_light!=NULL)

device_rgb_update_color(ha_dev->entity_light->command_light->rgb.red, ha_dev->entity_light->command_light->rgb.green, ha_dev->entity_light->command_light->rgb.blue);

}

wKgaomaFDlSAcH-UAAB4hwFrkp059.jpeg

驗證結(jié)果

因為默認 PWM 為 0,所以燒錄之后,燈不會亮,需要設(shè)置一下顏色,燈才會亮。

wKgZomaFDlWAb7FoAAtKtvNdC_U288.gif

4.設(shè)置顏色

設(shè)置顏色就更簡單了,只需要把 R,G,B 值傳

給 device_rgb_update_color 函數(shù)就行。

case HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE:

LOG_I("<<<<<<<<<< HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE,RGB=%d,%d,%d", ha_dev->entity_light->command_light->rgb.red, ha_dev->entity_light->command_light->rgb.green, ha_dev->entity_light->command_light->rgb.blue);

// device_rgb_update_color(ha_dev->entity_light->command_light->rgb.red, ha_dev->entity_light->command_light->rgb.green, ha_dev->entity_light->command_light->rgb.blue);

homeAssistant_device_send_entity_state(CONFIG_HA_ENTITY_LIGHT, ha_dev->entity_light->command_light, ha_dev->entity_light->command_light->light_state);

device_rgb_update_color(ha_dev->entity_light->command_light->rgb.red, ha_dev->entity_light->command_light->rgb.green, ha_dev->entity_light->command_light->rgb.blue);

break;

wKgZomaFDlWAR6joAABdXVFHqf023.jpeg

驗證結(jié)果

wKgaomaFDlaAESmvAA8ylTPpDHA361.gif

總結(jié)

本帖子的內(nèi)容稍微有點跳了,這要求大家需要熟悉 HomeAssistant-C 庫RGB 實體還有一些功能需要完善,比如添加 RGB 設(shè)置的默認主題,后面再給大家介紹。

審核編輯 黃宇

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

    關(guān)注

    4

    文章

    798

    瀏覽量

    58461
  • 智能家居
    +關(guān)注

    關(guān)注

    1928

    文章

    9553

    瀏覽量

    184936
收藏 人收藏

    評論

    相關(guān)推薦

    用Ai-WB2開發(fā)板智能家居全彩LED小夜燈

    免費包郵開發(fā)板贈送!安信可藍牙5.2低功耗開發(fā)板免費申請啦_嗶哩嗶哩_bilibiliwww.bilibili.com/video/BV1UgSiY1EP9/?spm_id_from
    的頭像 發(fā)表于 11-13 14:03 ?166次閱讀
    用Ai-WB2<b class='flag-5'>開發(fā)板</b>做<b class='flag-5'>智能家居</b>全彩LED小夜燈

    智能家居之旅(15):HA傳感器采集主板低功耗設(shè)計的遭遇

    ):HomeAssistant-C傳感器實體使用方法 智能家居之旅7):HomeAssistant開發(fā)
    的頭像 發(fā)表于 09-05 10:27 ?378次閱讀
    <b class='flag-5'>智能家居</b><b class='flag-5'>之旅</b>(15):HA傳感器采集主板低功耗設(shè)計的遭遇

    嵌入式linux開發(fā)板芯片的工作原理

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式系統(tǒng)開發(fā)平臺,它廣泛應(yīng)用于工業(yè)控制、智能家居智能交通、醫(yī)療設(shè)備等領(lǐng)域。 嵌入式Linux
    的頭像 發(fā)表于 09-02 09:07 ?374次閱讀

    linux開發(fā)板與樹莓派的區(qū)別

    定義和用途 Linux開發(fā)板:Linux開發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式開發(fā)板,通常用于工業(yè)自動化、物聯(lián)網(wǎng)、智能家居等領(lǐng)域。 樹莓派:樹莓派(Raspberry Pi)是一種
    的頭像 發(fā)表于 08-30 15:34 ?937次閱讀

    機智云ESP8266開發(fā)板RGB彩燈控件

    隨著智能家居技術(shù)的迅猛發(fā)展,RGB彩燈控件正逐漸成為現(xiàn)代家庭不可或缺的一部分。在這一潮流中,機智云(Gizwits)的ESP8266開發(fā)板RGB彩燈控件以其先進的物聯(lián)網(wǎng)技術(shù)和多樣化的燈
    的頭像 發(fā)表于 08-09 08:10 ?402次閱讀
    機智云ESP8266<b class='flag-5'>開發(fā)板</b><b class='flag-5'>RGB</b>彩燈控件

    如何用一塊免費的PCB完成2元USB小夜燈控制器?

    使用HomeAssistant-C庫接入HomeAssistant 智能家居之旅(6):HomeAssistant-C傳感器實體使用方法
    的頭像 發(fā)表于 07-30 10:33 ?276次閱讀
    如何用一塊免費的PCB<b class='flag-5'>板</b>完成2元USB小夜燈控制器?

    智能家居之旅(9):HomeAssistant 的開關(guān)實體具象化

    (????)??嗨,時隔一個月,又開始關(guān)于 HA 的帖子了,前期介紹了一些實體的使用方法,后面的帖子會結(jié)合相應(yīng)的硬件介紹,把實體真正應(yīng)用起來,方便各位小伙伴在家里自己做一個智能家居。 本文概要
    的頭像 發(fā)表于 07-08 16:50 ?362次閱讀
    <b class='flag-5'>智能家居</b><b class='flag-5'>之旅</b>(9):<b class='flag-5'>HomeAssistant</b> 的開關(guān)實體具象化

    智能家居之旅(3):Ai-M61/M62 接入HomeAssistant 實現(xiàn)點燈

    上一篇我們介紹了MQTT設(shè)備如何接入HomeAssistant(打卡智能家居之旅(2):設(shè)備接入HomeAssistant的方法),這一篇就給大家講一下Ai-M61/M62
    的頭像 發(fā)表于 06-07 10:07 ?569次閱讀
    <b class='flag-5'>智能家居</b><b class='flag-5'>之旅</b>(3):Ai-M61/M62 接入<b class='flag-5'>HomeAssistant</b> 實現(xiàn)點燈

    打卡智能家居之旅(2):設(shè)備接入HomeAssistant的方法

    上次我們在安裝HomeAssistant的時候(打卡智能家居學習之旅(1):了解HomeAssistant),順便把MQTT 集成安裝好了。 為什么要裝MQTT 集成呢?Wi-Fi 設(shè)
    的頭像 發(fā)表于 06-07 09:36 ?1392次閱讀
    打卡<b class='flag-5'>智能家居</b><b class='flag-5'>之旅</b>(2):設(shè)備接入<b class='flag-5'>HomeAssistant</b>的方法

    打卡智能家居學習之旅(1):了解HomeAssistant

    大家好,說起智能家居,大家會想到什么呢?小安的腦海里就出現(xiàn)了鋼鐵俠的家:有電子智能管家,能夠控制家里的燈、開關(guān)等所有電子電器,當人回家的時候自動開燈,并且已經(jīng)按照設(shè)定好時間燒了熱水。 但是現(xiàn)實
    的頭像 發(fā)表于 05-21 09:07 ?559次閱讀
    打卡<b class='flag-5'>智能家居</b>學習<b class='flag-5'>之旅</b>(1):了解<b class='flag-5'>HomeAssistant</b>

    智能家居系統(tǒng)的開發(fā)-基于米爾瑞薩RZ/G2UL開發(fā)板

    本篇評測由電子工程世界的優(yōu)秀評測者“Bruceou”提供。1、項目背景智能家居控制系統(tǒng),是以智能家居系統(tǒng)為平臺,家居電器及家電設(shè)備為主要控制對象,利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、自動控制系統(tǒng)、音頻
    的頭像 發(fā)表于 05-17 08:01 ?1020次閱讀
    <b class='flag-5'>智能家居</b>系統(tǒng)的<b class='flag-5'>開發(fā)</b>-基于米爾瑞薩RZ/G2UL<b class='flag-5'>開發(fā)板</b>

    【Longan Pi 3H 開發(fā)板試用連載體驗】基于 Longan Pi 3H 開發(fā)板完成智能家居控制小型項目

    和存儲空間顯示為4GB+32G,如圖 三、項目計劃 我的試用項目是基于 Longan Pi 3H 開發(fā)板完成智能家居控制小型項目目標如下: 通過 Longan Pi 3H 開發(fā)板實現(xiàn)模擬家庭設(shè)備控制(如
    發(fā)表于 04-02 22:37

    基于FreeRTOS+LVGL V8智能家居儀表盤設(shè)計

    用野火啟明6M5開發(fā)板制作了一個基于 FreeRTOS 和 LVGL V8 的智能家居儀表盤,顏值較高,也可以作為桌面擺件使用
    的頭像 發(fā)表于 01-22 14:10 ?4905次閱讀
    基于FreeRTOS+LVGL V8<b class='flag-5'>智能家居</b>儀表盤設(shè)計

    【飛騰派4G版免費試用】5.智能家居之IP攝像頭

    【飛騰派4G版免費試用】5.智能家居之IP攝像頭 提到智能家居,大家一定不會陌生一個開源項目 ——Home Assistant ,這個項目非常強大,特別適合愛折騰的發(fā)燒友。另外因為筆者手邊沒有USB
    發(fā)表于 12-28 17:14

    開源項目!教你如何復刻自平衡賽車機器人、智能家居中控、競技機器人先進模糊控制器等

    。 在那個年齡,我們沒有真正的手表,但我們總是喜歡在紙上畫出自己的手表,仿佛它真的能告訴我們時間。 為了彌補童年的遺憾,作者找到了一個智能手表的開源項目——NWatch,并把他移植到了R128開發(fā)板
    發(fā)表于 12-26 09:17
    主站蜘蛛池模板: 亚洲人成网77777色在线播放| 黑人操日本女人| 亚洲精品婷婷无码成人A片在线| 久草高清在线| 99re6久久热在线播放| 日韩亚洲欧美中文高清| 国产午夜精品久久理论片| 一个人的视频在线观看免费观看| 男男gaygay拳头| 国产爱豆果冻传媒在线观看视频| 亚洲精品福利在线| 男人一生要读的书| 国产精品一久久香蕉国产线看| 伊人成综合网伊人222| 秋霞在线看片无码免费| 国产偷国产偷亚洲高清app| 51vv视频社区| 777ZYZ玖玖资源站最稳定网址| 欧美zozofoot| 国产色青青视频在线观看 | 国产免费午夜| 91精品国产色综合久久不| 四房播播开心色播| 久久热最新网站获取3| 儿子你得太大了慢点插| 亚洲色婷婷久久精品AV蜜桃| 欧美日韩一区不卡在线观看| 国产永不无码精品AV永久| 99久女女精品视频在线观看| 亚洲 欧美 日韩 卡通 另类| 奶头好翘是不是想要了| 国产亚洲精品高清视频免费| 99久久精品6在线播放| 亚洲国产精品热久久| 欧美日韩精品一区二区三区高清视频 | 人妻精品久久无码专区| 黑人阴茎插女人图片| 被黑人掹躁10次高潮| 亚洲一级特黄| 深爱激情站| 免费果冻传媒2021在线看|