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)不再提示

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

AIoT行業(yè)洞察 ? 來源:AIoT行業(yè)洞察 ? 作者:AIoT行業(yè)洞察 ? 2024-07-03 16:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

wKgZomaFDkSAftXLABCGnGpLyrQ663.gif

彩燈實(shí)體創(chuàng)建

1.彩燈實(shí)體資源啟用

彩燈實(shí)體在 HomeAssistant 上描述為 Light,HomeAssistant-C 上默認(rèn)也是不開啟的,所以需要在 homeAssistantDevConfig.h 當(dāng)中把#define CONFIG_ENTITY_ENABLE_LIGHT的值置 1:

wKgaomaFDkSAf-z9AAAUWLY7XDU90.jpeg

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

彩燈(Light)實(shí)體的創(chuàng)建位置和其他實(shí)體一樣,就是在 MQTT 連接成功的事件里面,這里就不多說了,需要說明的是,彩燈實(shí)體會(huì)比其他實(shí)體多很多的控制主題,有開關(guān)、亮度、顏色等等。HomeAssistant-C 中,默認(rèn)只給開關(guān)功能提供默認(rèn)的主題,所以在創(chuàng)建實(shí)體的時(shí)候,除了 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 當(dāng)中,暫時(shí)定義好了 Light 的三個(gè)控制事件:

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ā)事件

在這里只對(duì)

HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH 和 HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE 這兩個(gè)事件來控制 RGB,在 HomeAssistant 事件回調(diào)函數(shù)當(dāng)中(這里的函數(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 平臺(tái)的下發(fā)開關(guān)控制之后,會(huì)觸發(fā) HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH 事件,所以在

HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH 下,打印開關(guān)信息,實(shí)現(xiàn)有開關(guān)下發(fā)就輸出信息,然后返回當(dāng)前開關(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;

驗(yàn)證結(jié)果

wKgZomaFDlKAGNhOAABREG_yJPw53.jpeg

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

同樣的,HomeAssistant 平臺(tái)設(shè)置顏色時(shí),會(huì)觸發(fā)HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE事件,這時(shí)就需要在這個(gè)事件當(dāng)中獲取顏色 RGB 的顏色值,在這個(gè)事件下添加以下內(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;

驗(yàn)證結(jié)果

wKgaomaFDlKAKxVgAABmhotp-4E55.jpeg

控制 RGB

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

顏色GPIOPWM 通道紅燈IO12PWM0綠燈IO14PWM2藍(lán)燈IO15PWM3

1.初始化 RGB 引腳

已經(jīng)知道引腳配置之后,直接在主函數(shù)當(dāng)中初始化 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ù)

因?yàn)?R,G,B 的值最高只有 255,對(duì)應(yīng) PWM 占空比 100%,所以我們?cè)谡{(diào)色的時(shí)候,就需要把目標(biāo)顏色的 RGB 值計(jì)算出相對(duì)性的占空比,然后賦值給 PWM 占空比控制函數(shù)。因?yàn)槲覀兪褂玫?PWM 的頻率是1KHz,所以我們?cè)谟?jì)算占空比的時(shí)候,需要 乘以 1000,因?yàn)槲覀兙湍苓_(dá)到下面這個(gè)函數(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);

}

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

3.RGB 的亮滅

有了調(diào)色的函數(shù)之后,滅掉所有燈,只需要把顏色值全部設(shè)置成 0,亮的時(shí)候,就把 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

驗(yàn)證結(jié)果

因?yàn)槟J(rèn) PWM 為 0,所以燒錄之后,燈不會(huì)亮,需要設(shè)置一下顏色,燈才會(huì)亮。

wKgZomaFDlWAb7FoAAtKtvNdC_U288.gif

4.設(shè)置顏色

設(shè)置顏色就更簡(jiǎn)單了,只需要把 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

驗(yàn)證結(jié)果

wKgaomaFDlaAESmvAA8ylTPpDHA361.gif

總結(jié)

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

審核編輯 黃宇

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

    關(guān)注

    4

    文章

    831

    瀏覽量

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

    關(guān)注

    1943

    文章

    9995

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Renesas FPB - RA2T1快速原型開發(fā)板:開啟高效設(shè)計(jì)之旅

    Renesas FPB - RA2T1快速原型開發(fā)板:開啟高效設(shè)計(jì)之旅 在電子設(shè)計(jì)領(lǐng)域,一款優(yōu)秀的快速原型開發(fā)板能極大地提升開發(fā)效率,為項(xiàng)目的成功奠定基礎(chǔ)。Renesas的FPB -
    的頭像 發(fā)表于 12-26 16:20 ?283次閱讀

    快速上手FRDM-KE17Z512開發(fā)板:開啟高效MCU開發(fā)之旅

    快速上手FRDM-KE17Z512開發(fā)板:開啟高效MCU開發(fā)之旅 作為電子工程師,在MCU開發(fā)的道路上,擁有一款合適的開發(fā)板至關(guān)重要。今天就
    的頭像 發(fā)表于 12-24 16:50 ?334次閱讀

    【匠芯創(chuàng)D133CBS KunLun Pi開發(fā)板試用體驗(yàn)】1、開發(fā)板開箱及介紹

    、音頻、顯示、調(diào)試接口等,方便用戶查找和連接: 總結(jié) 本次評(píng)測(cè)的D133CBS KunLun Pi 開發(fā)板集成度高,接口豐富,適合工業(yè)控制、智能家居等多種應(yīng)用場(chǎng)景。開箱體驗(yàn)良好,配套資源齊全,便于開發(fā)者快速上手和功能驗(yàn)證,是一
    發(fā)表于 09-05 13:49

    如何快速開發(fā)符合Matter標(biāo)準(zhǔn)的智能家居設(shè)備?

    Matter是由亞馬遜、蘋果、谷歌等國(guó)際生態(tài)巨頭攜手CSA聯(lián)盟(原Zigbee聯(lián)盟)針對(duì)智能家居行業(yè)開發(fā)的一種開源性的互操作標(biāo)準(zhǔn),其允許運(yùn)行在不同通信協(xié)議下的、不同類別及品牌的智能家居設(shè)備能在同一
    的頭像 發(fā)表于 08-07 17:35 ?2461次閱讀
    如何快速<b class='flag-5'>開發(fā)</b>符合Matter標(biāo)準(zhǔn)的<b class='flag-5'>智能家居</b>設(shè)備?

    樹莓派 Zero 2 W 是開啟智能家居生活的理想之選!

    想嘗試智能家居自動(dòng)化,又不想花費(fèi)太多?樹莓派Zero2W或許正是你開啟智能家居之旅所需的理想設(shè)備。小板子大潛力想打造一個(gè)智能家居?這想法超棒!一旦掌握了技巧,自動(dòng)化控制燈光、插座、傳感
    的頭像 發(fā)表于 06-24 16:24 ?858次閱讀
    樹莓派 Zero 2 W 是開啟<b class='flag-5'>智能家居</b>生活的理想之選!

    ESP32-C3開發(fā)板全面支持小智AI!燒錄實(shí)戰(zhàn)指南來了!

    本文將詳細(xì)解析基于樂鑫ESP32-C3芯片的ZXAIEC43開發(fā)板燒錄“小智”AI語(yǔ)音系統(tǒng)的全流程。該方案代碼完全開源,支持深度定制開發(fā),適用于智能玩具、潮玩手辦及智能家居控制等多元場(chǎng)
    的頭像 發(fā)表于 06-13 18:01 ?5367次閱讀
    ESP32-C3<b class='flag-5'>開發(fā)板</b>全面支持小智AI!燒錄實(shí)戰(zhàn)指南來了!

    Matter 智能家居的通用語(yǔ)言

    企業(yè)正在測(cè)試 134 種獨(dú)特的 Matter 產(chǎn)品。 在消費(fèi)者對(duì)智能家居設(shè)備無(wú)縫互操作性需求的推動(dòng)下,Matter的廣泛采用將吸引更多的開發(fā)者。
    發(fā)表于 05-19 15:35

    明遠(yuǎn)智睿SSD2351開發(fā)板智能家居智能核心

    隨著科技的不斷發(fā)展,智能家居逐漸走進(jìn)人們的生活,為人們帶來更加便捷、舒適、智能的生活體驗(yàn)。明遠(yuǎn)智睿的SSD2351開發(fā)板作為智能家居系統(tǒng)的智能
    發(fā)表于 05-07 18:59

    探秘明遠(yuǎn)智睿SSD2351開發(fā)板在HMI領(lǐng)域的獨(dú)特魅力

    。 SSD2351開發(fā)板的四核1.4GHz處理器具備強(qiáng)大的圖形處理能力,能夠流暢地運(yùn)行各種復(fù)雜的HMI界面。無(wú)論是絢麗的動(dòng)畫效果,還是高清的圖像顯示,都能完美呈現(xiàn)。在工業(yè)控制、智能家居等領(lǐng)域的HMI應(yīng)用中,用戶可以
    發(fā)表于 04-30 18:15

    Linux文件系統(tǒng)打包及鏡像制作,觸覺智能RK3562開發(fā)板演示

    本文介紹Linux開發(fā)板文件系統(tǒng)打包及鏡像制作的方法,演示Linux文件系統(tǒng)打包及鏡像制作,適用于想將配置好的系統(tǒng)環(huán)境打包成鏡像批量燒錄。觸覺智能RK3562開發(fā)板演示,搭載4核A53處理器,主頻
    的頭像 發(fā)表于 04-28 16:45 ?987次閱讀
    Linux文件系統(tǒng)打包及鏡像制作,觸覺<b class='flag-5'>智能</b>RK3562<b class='flag-5'>開發(fā)板</b>演示

    智能家居Mesh組網(wǎng)方案:實(shí)現(xiàn)智能化生活的無(wú)縫連接NRF52832

    隨著科技的不斷進(jìn)步,智能家居智能家電已經(jīng)滲透到我們生活的方方面面。然而,由于產(chǎn)品種類的增多和商家的眾多,用戶在使用智能家居產(chǎn)品時(shí)往往會(huì)感到困惑和不便。在這樣的背景下,如何實(shí)現(xiàn)全屋各個(gè)單品之間的互通
    發(fā)表于 04-15 14:07

    明遠(yuǎn)智睿 SSD2351 開發(fā)板:開啟創(chuàng)新開發(fā)之旅

    在當(dāng)今數(shù)字化時(shí)代,嵌入式開發(fā)技術(shù)日新月異,各種開發(fā)板層出不窮。而明遠(yuǎn)智睿的 SSD2351 開發(fā)板,憑借其獨(dú)特的優(yōu)勢(shì),成為了眾多開發(fā)者開啟創(chuàng)新開發(fā)
    的頭像 發(fā)表于 03-31 17:21 ?1128次閱讀

    重大突破?這個(gè)系統(tǒng),讓智能家居生態(tài)屏障土崩瓦解

    Zigbee、藍(lán)牙、WiFi、LAN。今天我要給大家?guī)硪环莩腥さ慕坛蹋屇阌脴漭伞?b class='flag-5'>HomeAssistant、小米設(shè)備和HomeKit打造屬于自己的智能家居
    的頭像 發(fā)表于 03-29 09:43 ?1948次閱讀
    重大突破?這個(gè)系統(tǒng),讓<b class='flag-5'>智能家居</b>生態(tài)屏障土崩瓦解

    【幸狐Omni3576邊緣計(jì)算套件試用體驗(yàn)】安裝homeassistant的體驗(yàn)記錄

    一.前言HomeAssistant介紹:Home Assistant(簡(jiǎn)稱 HA)是一款開源的智能家居集成平臺(tái),具有以下核心特性: 跨平臺(tái)支持 支持接入5000+種智能設(shè)備(Zigbee
    發(fā)表于 03-19 11:58

    智能家居項(xiàng)目設(shè)計(jì)

    智能家居,內(nèi)涵多個(gè)模塊,板子電路和PCB設(shè)計(jì)
    發(fā)表于 03-14 17:54 ?6次下載