日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

wKgZomaFDkSAftXLABCGnGpLyrQ663.gif

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

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

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

wKgaomaFDkSAf-z9AAAUWLY7XDU90.jpeg

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

彩燈(Light)實(shí)體的創(chuàng)建位置和其他實(shí)體一樣,就是在 MQTT 連接成功的事件里面,這里就不多說(shuō)了,需要說(shuō)明的是,彩燈實(shí)體會(huì)比其他實(shí)體多很多的控制主題,有開(kāi)關(guān)、亮度、顏色等等。HomeAssistant-C 中,默認(rèn)只給開(kāi)關(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 燈的開(kāi)關(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è)事件來(lái)控制 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 的開(kāi)關(guān)控制命令

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

HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH 下,打印開(kāi)關(guān)信息,實(shí)現(xiàn)有開(kāi)關(guān)下發(fā)就輸出信息,然后返回當(dāng)前開(kāi)關(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 的值打印出來(lái)并同步給 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

開(kāi)發(fā)板上的 RGB 是直接由引腳控制,想要實(shí)現(xiàn)顏色調(diào)節(jié)的話,就需要開(kāi)啟 PWM 控制,通過(guò)控制紅綠藍(lán)三基色來(lái)實(shí)現(xiàn)調(diào)色。先要把控制 RGB 的引腳啟動(dòng) PWM 功能,先看一下 Ai-M61 開(kāi)發(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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • RGB
    RGB
    +關(guān)注

    關(guān)注

    4

    文章

    836

    瀏覽量

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

    關(guān)注

    1945

    文章

    10045

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    探索EPC9118開(kāi)發(fā)板:高效48V降壓轉(zhuǎn)換器的快速入門(mén)之旅

    探索EPC9118開(kāi)發(fā)板:高效48V降壓轉(zhuǎn)換器的快速入門(mén)之旅 在電子工程師的日常工作中,開(kāi)發(fā)板是進(jìn)行電路設(shè)計(jì)和測(cè)試的重要工具。今天,我們就來(lái)深入了解一下EPC9118開(kāi)發(fā)板,這是一款專(zhuān)
    的頭像 發(fā)表于 03-28 09:30 ?273次閱讀

    【ESP32-C2系列】WT9932C2-TINY開(kāi)發(fā)板上手指南

    體積內(nèi)實(shí)現(xiàn)了強(qiáng)勁性能與豐富功能的平衡。開(kāi)發(fā)板主頻高達(dá)120MHz,支持藍(lán)牙與Wi-Fi雙模無(wú)線通信,可無(wú)縫適配智能家居、低功耗物聯(lián)網(wǎng)終端等場(chǎng)景。硬件設(shè)計(jì)上,不僅將所
    的頭像 發(fā)表于 02-25 18:25 ?355次閱讀
    【ESP32-C2系列】WT9932C2-TINY<b class='flag-5'>開(kāi)發(fā)板</b>上手指南

    【ESP32-C3】WT9932C3-TINY開(kāi)發(fā)板規(guī)格書(shū)

    體積內(nèi)實(shí)現(xiàn)了強(qiáng)勁性能與豐富功能的平衡。開(kāi)發(fā)板主頻高達(dá)160MHz,支持藍(lán)牙與Wi-Fi雙模無(wú)線通信,可無(wú)縫適配智能家居、低功耗物聯(lián)網(wǎng)終端等場(chǎng)景。硬件設(shè)計(jì)上,不僅將
    的頭像 發(fā)表于 02-11 18:04 ?910次閱讀
    【ESP32-C3】WT9932C3-TINY<b class='flag-5'>開(kāi)發(fā)板</b>規(guī)格書(shū)

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

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

    探索FRDM-STBA-A8964傳感器工具箱開(kāi)發(fā)板:開(kāi)啟創(chuàng)新傳感之旅

    探索FRDM-STBA-A8964傳感器工具箱開(kāi)發(fā)板:開(kāi)啟創(chuàng)新傳感之旅 作為電子工程師,我們總是在尋找那些能夠助力開(kāi)發(fā)、提升效率的優(yōu)質(zhì)工具和開(kāi)發(fā)板。今天,就帶大家詳細(xì)了解一下NXP
    的頭像 發(fā)表于 12-25 10:50 ?671次閱讀
    探索FRDM-STBA-A8964傳感器工具箱<b class='flag-5'>開(kāi)發(fā)板</b>:開(kāi)啟創(chuàng)新傳感<b class='flag-5'>之旅</b>

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

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

    這塊樂(lè)鑫科技ESP32-C3開(kāi)發(fā)板太懂開(kāi)發(fā)者了!雙無(wú)線+全接口,不要太實(shí)用

    智能家居項(xiàng)目時(shí),開(kāi)發(fā)板接口不夠用?調(diào)試工業(yè)傳感器時(shí),無(wú)線連接總是不穩(wěn)定?想快速驗(yàn)證創(chuàng)意,卻被復(fù)雜的燒錄流程耽誤半天時(shí)間?不要慌!真正懂開(kāi)發(fā)者的物聯(lián)網(wǎng)開(kāi)發(fā)板來(lái)了!WT9901C3-SN
    的頭像 發(fā)表于 12-01 18:02 ?1345次閱讀
    這塊樂(lè)鑫科技ESP32-C3<b class='flag-5'>開(kāi)發(fā)板</b>太懂<b class='flag-5'>開(kāi)發(fā)</b>者了!雙無(wú)線+全接口,不要太實(shí)用

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

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

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

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

    明遠(yuǎn)智睿SSD2351開(kāi)發(fā)板:嵌入式開(kāi)發(fā)領(lǐng)域的新型新星

    在物聯(lián)網(wǎng)、智能家居智能網(wǎng)關(guān)、視頻監(jiān)控等新興技術(shù)領(lǐng)域迅猛發(fā)展的今天,嵌入式開(kāi)發(fā)作為這些創(chuàng)新背后的核心驅(qū)動(dòng)力,其重要性日益凸顯。而在嵌入式開(kāi)發(fā)的眾多環(huán)節(jié)中,
    的頭像 發(fā)表于 07-01 16:47 ?934次閱讀

    樹(shù)莓派 Zero 2 W 是開(kāi)啟智能家居生活的理想之選!

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

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

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

    物聯(lián)網(wǎng)天線如何影響智能家居發(fā)展

    智能家居解決方案正逐步融入幾乎所有家用電子設(shè)備。智能揚(yáng)聲器、智能照明、智能恒溫器和集線器是智能家居的早期產(chǎn)品,而如今,我們看到所有主要電器都
    的頭像 發(fā)表于 06-12 10:16 ?1512次閱讀

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

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

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

    隨著科技的不斷發(fā)展,智能家居逐漸走進(jìn)人們的生活,為人們帶來(lái)更加便捷、舒適、智能的生活體驗(yàn)。明遠(yuǎn)智睿的SSD2351開(kāi)發(fā)板作為智能家居系統(tǒng)的智能
    發(fā)表于 05-07 18:59
    高淳县| 静宁县| 嘉祥县| 武清区| 垦利县| 麻城市| 登封市| 衡山县| 漳州市| 塔河县| 盈江县| 吴川市| 南城县| 南漳县| 漯河市| 黔南| 惠安县| 镇安县| 福建省| 英山县| 普兰县| 卫辉市| 乃东县| 普兰店市| 河津市| 隆回县| 新宁县| 珠海市| 白城市| 兴化市| 聂荣县| 彝良县| 资中县| 卫辉市| 淳安县| 平定县| 大埔区| 吉安县| 镇巴县| 景东| 巴彦淖尔市|