女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

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

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

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

wKgZomaFDkSAftXLABCGnGpLyrQ663.gif

彩燈實體創建

1.彩燈實體資源啟用

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

wKgaomaFDkSAf-z9AAAUWLY7XDU90.jpeg

2.Light 實體創建

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

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 設備顯示

wKgZomaFDkyAUegxAABen5rzpd472.jpeg

獲取 HomeAssistant 的控制指令

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

HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH,//light 燈的開關事件

HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE,//light 燈的 RGB 顏色下發事件

HA_EVENT_MQTT_COMMAND_LIGHT_BRIGHTNESS,//light 燈的亮度數據下發事件

在這里只對

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

case HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH:

break;

case HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE:

break;

wKgaomaFDkyAEZQiAACwjS6Vxkw84.jpeg

1.讀取 HA 的開關控制命令

HomeAssistant 平臺的下發開關控制之后,會觸發 HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH 事件,所以在

HA_EVENT_MQTT_COMMAND_LIGHT_SWITCH 下,打印開關信息,實現有開關下發就輸出信息,然后返回當前開關狀態:

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;

驗證結果

wKgZomaFDlKAGNhOAABREG_yJPw53.jpeg

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

同樣的,HomeAssistant 平臺設置顏色時,會觸發HA_EVENT_MQTT_COMMAND_LIGHT_RGB_UPDATE事件,這時就需要在這個事件當中獲取顏色 RGB 的顏色值,在這個事件下添加以下內容,把顏色 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;

驗證結果

wKgaomaFDlKAKxVgAABmhotp-4E55.jpeg

控制 RGB

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

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

1.初始化 RGB 引腳

已經知道引腳配置之后,直接在主函數當中初始化 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.調色函數

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

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);

}

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

3.RGB 的亮滅

有了調色的函數之后,滅掉所有燈,只需要把顏色值全部設置成 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

驗證結果

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

wKgZomaFDlWAb7FoAAtKtvNdC_U288.gif

4.設置顏色

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

給 device_rgb_update_color 函數就行。

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

驗證結果

wKgaomaFDlaAESmvAA8ylTPpDHA361.gif

總結

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

審核編輯 黃宇

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

    關注

    4

    文章

    803

    瀏覽量

    59567
  • 智能家居
    +關注

    關注

    1933

    文章

    9746

    瀏覽量

    189563
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Matter 智能家居的通用語言

    企業正在測試 134 種獨特的 Matter 產品。 在消費者對智能家居設備無縫互操作性需求的推動下,Matter的廣泛采用將吸引更多的開發者。
    發表于 05-19 15:35

    明遠智睿SSD2351開發板智能家居智能核心

    隨著科技的不斷發展,智能家居逐漸走進人們的生活,為人們帶來更加便捷、舒適、智能的生活體驗。明遠智睿的SSD2351開發板作為智能家居系統的智能
    發表于 05-07 18:59

    探秘明遠智睿SSD2351開發板在HMI領域的獨特魅力

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

    智能家居Mesh組網方案:實現智能化生活的無縫連接NRF52832

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

    明遠智睿 SSD2351 開發板:開啟創新開發之旅

    在當今數字化時代,嵌入式開發技術日新月異,各種開發板層出不窮。而明遠智睿的 SSD2351 開發板,憑借其獨特的優勢,成為了眾多開發者開啟創新開發
    的頭像 發表于 03-31 17:21 ?432次閱讀

    重大突破?這個系統,讓智能家居生態屏障土崩瓦解

    Zigbee、藍牙、WiFi、LAN。今天我要給大家帶來一份超有趣的教程,讓你用樹莓派、HomeAssistant、小米設備和HomeKit打造屬于自己的智能家居
    的頭像 發表于 03-29 09:43 ?431次閱讀
    重大突破?這個系統,讓<b class='flag-5'>智能家居</b>生態屏障土崩瓦解

    【貝啟科技BQ3568HM開源鴻蒙開發板深度試用報告】2 - 智能家居中控屏界面設計:打造便捷的家居控制體驗

    引言 上個帖子介紹了貝啟科技BQ3568HM開源鴻蒙開發板的簡單情況,今天進行正式的軟件開發。 在智能家居日益普及的今天,一個直觀、易用的中控屏界面對于用戶來說至關重要。今天,我將向大家介紹我所完成
    發表于 01-24 16:11

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

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

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

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

    linux開發板與樹莓派的區別

    定義和用途 Linux開發板:Linux開發板是一種基于Linux操作系統的嵌入式開發板,通常用于工業自動化、物聯網、智能家居等領域。 樹莓派:樹莓派(Raspberry Pi)是一種
    的頭像 發表于 08-30 15:34 ?1730次閱讀

    機智云ESP8266開發板RGB彩燈控件

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

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

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

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

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

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

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

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

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