精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

基于STM32設計的智能臺燈

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2024-11-19 09:26 ? 次閱讀

一、項目背景

智能家居設備在現代生活中起著越來越重要的作用。智能臺燈作為其中的一種,具有調節光照亮度、色溫等功能,更加符合人們對于光照環境的個性化需求。當前設計一款基于STM32微控制器設計的智能臺燈,該臺燈具備可調節亮度和色溫的特點,為用戶提供了更加舒適的使用體驗。

image-20230707095753939

二、設計目標

【1】實現燈光的亮度和色溫的可調節功能;

【2】添加人體感應模塊,實現自動開關燈;

【3】實現手機遠程控制燈光的功能;

【4】設計簡潔、穩定的硬件電路和用戶友好的操作界面。

三、系統架構

3.1 硬件部分

** (1) 主控芯片:選用STM32系列微控制器,具有豐富的外設資源和強大的處理能力;**

** (2) 電源部分:采用穩壓電源模塊,提供適宜電壓的供電;**

** (3) 光源部分:選擇高亮度LED作為光源,配備透明燈罩,提供均勻柔和的光照; **

**(4) 人體感應模塊:采用紅外傳感器檢測到人體活動時自動開啟燈光; **

(5) 無線通信模塊:使用WiFi或藍牙模塊,實現手機遠程控制。

3.2 軟件部分

(1) 嵌入式軟件:使用Keil MDK作為開發環境,編寫嵌入式C語言程序,實現燈光亮度和色溫的調節、人體感應控制等功能;

** (2) 手機控制端:設計并開發手機App,通過與智能臺燈連接,實現遠程控制燈光的功能。**

3.3 硬件選型說明

【1】主控芯片:

采用STM32F103RCT6

【2】光源部分:

** (1) 高亮度LED:選擇高亮度、節能的LED作為光源,推薦選擇LED燈珠。**

** (2) 透明燈罩:選擇高透光性的材料制作燈罩,保證光照均勻柔和。**

【3】人體感應模塊:

(1) 紅外傳感器:選擇靈敏度較高的紅外傳感器,能夠快速、準確地檢測到人體活動。

** (2) 光敏電阻:用于在光線不足時自動開啟臺燈,確保人體感應功能的正常工作。**

【4】無線通信模塊

選擇HC05藍牙模塊,以便與手機設備進行通信

3.4 硬件設計

【1】主控芯片選擇:STM32F103RCT6,具有較高的性能和豐富的外設資源,適合作為智能臺燈的核心處理器

【2】人體紅外傳感器:用于檢測周圍是否有人靠近;

【3】光敏傳感器:用于檢測環境光的強度;

【4】LED燈:作為臺燈的光源,通過PWM控制其亮度;

【5】HC05藍牙模塊:用于與手機APP通信,接收控制命令并發送狀態信息

3.5 軟件設計

【1】GPIO配置:配置主控芯片的GPIO引腳,包括人體紅外傳感器輸入引腳、光敏傳感器輸入引腳和LED燈控制引腳等;

【2】外部中斷配置:通過外部中斷來監聽人體紅外感應引腳的狀態變化,在觸發時進行相應操作;

【3】PWM配置:使用PWM控制LED燈的亮度,根據光敏傳感器檢測到的環境光強度動態調整PWM輸出占空比;

【4】藍牙通信:通過UART配置HC05藍牙模塊,與手機APP建立藍牙連接,接收控制命令并發送臺燈狀態信息;

【5】主循環邏輯:在主循環中實時檢測光敏傳感器的數據以及人體紅外感應引腳的狀態,并根據相應條件進行臺燈的開啟和關閉操作;同時,檢測藍牙模塊接收到的控制命令,并根據命令內容進行相應操作。

四、主要功能實現

【1】光照調節功能: 通過按鍵或旋鈕操作,調節臺燈光照的亮度和色溫。亮度調節通過PWM控制LED的亮度,色溫調節通過調節白光LED和彩光LED的相對亮度來實現。

【2】人體感應控制: 采用紅外傳感器,檢測到人體活動后自動開啟燈光,一段時間內沒有人活動則自動關閉。

【3】遠程控制功能: 手機App與智能臺燈通過藍牙通信,用戶可以通過App控制燈光的開關、亮度和色溫,實現遠程控制功能。

五、代碼實現

仿真工程代碼下載: [https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink]

5.1 PWM波形控制LED燈亮度

include "stm32f10x.h"
?
void PWM_Configuration(void);
void Delay(__IO uint32_t nCount);
?
int main(void) {
  PWM_Configuration();
?
  while (1) {
    // 逐漸增加LED亮度
    for (uint16_t i = 0; i <= 1000; i++) {
      TIM_SetCompare1(TIM2, i);  // 設置PWM占空比,范圍:0-1000
      Delay(5000);               // 延時一段時間
    }
?
    // 逐漸減小LED亮度
    for (uint16_t i = 1000; i > 0; i--) {
      TIM_SetCompare1(TIM2, i);
      Delay(5000);
    }
  }
}
?
void PWM_Configuration(void) {
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
?
  // 配置GPIO口
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
?
  // 配置TIM2為PWM模式
  TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  TIM_OCInitTypeDef TIM_OCInitStructure;
?
  TIM_TimeBaseStructure.TIM_Period = 1000;                          // 設置周期
  TIM_TimeBaseStructure.TIM_Prescaler = 72 - 1;                     // 設置預分頻
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
?
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;                  // PWM模式1
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = 0;                                 // 初始占空比為0
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  TIM_OC1Init(TIM2, &TIM_OCInitStructure);
  TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);
?
  TIM_Cmd(TIM2, ENABLE);                                            // 使能TIM2
}
?
void Delay(__IO uint32_t nCount) {
  for (; nCount != 0; nCount--);
}

代碼中使用了STM32的定時器TIM2和GPIOA的第0號引腳(PA0)來控制LED燈的亮度。在主函數中,通過循環逐漸增加和減小PWM的占空比,從而改變LED燈的亮度。

5.2 智能臺燈邏輯代碼

// 引入所需的庫
#include < stdio.h >
#include < stdbool.h >
?
// 定義引腳和設備地址
#define PIR_SENSOR_PIN 2
#define LIGHT_SENSOR_PIN 3
#define LED_PIN 4
#define HC05_BAUD_RATE 9600
?
// 聲明全局變量
bool isPersonDetected = false;
int lightIntensity = 0;
?
// 初始化函數
void setup() {
  // 配置引腳模式
  pinMode(PIR_SENSOR_PIN, INPUT);
  pinMode(LIGHT_SENSOR_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);
?
  // 初始化串口通信
  Serial.begin(HC05_BAUD_RATE);
}
?
// 主循環函數
void loop() {
  // 檢測人體紅外感應
  if (digitalRead(PIR_SENSOR_PIN) == HIGH) {
    isPersonDetected = true;
  } else {
    isPersonDetected = false;
  }
?
  // 檢測光敏傳感器
  lightIntensity = analogRead(LIGHT_SENSOR_PIN);
?
  // 根據條件控制臺燈
  if (isPersonDetected && lightIntensity < 500) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
?
  // 處理藍牙通信
  if (Serial.available()) {
    char command = Serial.read();
    handleBluetoothCommand(command);
  }
}
?
// 處理藍牙命令函數
void handleBluetoothCommand(char command) {
  // 處理從手機APP發送來的命令,例如控制臺燈亮度

}
?
// 主函數
int main() {
  setup();  // 初始化
  while (1) {
    loop();  // 主循環
  }
  return 0;
}

六、總結

當前文章介紹了基于STM32F103RCT6主控芯片的智能臺燈的設計過程和實現原理。通過集成人體紅外感應、光敏檢測和與手機APP連接的功能,實現了臺燈的自動開關和亮度調節等智能化操作。通過手機APP與藍牙模塊的連接,用戶可以遠程控制臺燈的開關、亮度和模式等,提供了更加方便和智能化的使用體驗。

審核編輯 黃宇

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

    關注

    2266

    文章

    10876

    瀏覽量

    354922
  • 智能臺燈
    +關注

    關注

    9

    文章

    82

    瀏覽量

    21002
收藏 人收藏

    評論

    相關推薦

    #硬聲創作季 基于STM32智能臺燈設計

    單片機臺燈STDIY智能臺燈
    Mr_haohao
    發布于 :2022年08月16日 17:25:02

    基于stm32智能臺燈

    物聯網智能DIY
    jf_06209345
    發布于 :2023年03月27日 22:07:08

    智能臺燈設計資料

    智能臺燈設計資料
    發表于 08-14 12:56

    智能臺燈分享!

    智能臺燈分享!
    發表于 12-05 16:39

    智能臺燈的制作

    智能臺燈的制作
    發表于 07-15 14:32

    【Tisan物聯網申請】智能木工臺燈

    申請理由:想把木工工藝的臺燈實現智能化聯網控制。讓傳統的臺燈變得智能起來!項目描述:項目:智能臺燈
    發表于 10-15 10:09

    智能臺燈資料

    很好的智能臺燈資料。。。
    發表于 12-17 00:14

    智能臺燈

    `我是一名在校大四學生,畢業設計想做一個智能臺燈,有木有大神給點意見。。這可以做么。。?`
    發表于 01-11 16:41

    智能臺燈

    有沒有大神做過智能臺燈,能分享分享資料嗎
    發表于 03-16 13:52

    STM32芯片的一款智能臺燈項目分享 包含代碼哦

    一款智能臺燈,特分享出來供大家學習。智能臺燈側面圖智能臺燈整體圖
    發表于 07-27 11:42

    設計一款懂人所想的智能臺燈

    摘要:基于STM32單片機和機智云硬件開發平臺,設計了一款智能臺燈。在設計中融合了光電傳感器、光照強度傳感器、溫濕度傳感器、WiFi通信模塊等一些常用的傳感器,在臺燈普通照明功能的基礎
    發表于 09-17 16:37

    基于STM32芯片和機智云平臺的一款智能臺燈

    隨著現代科學技術的不斷發展,生活用品的智能化程度也越來越普及,人們對一些家居物品的人性化、智能化設計要求也越來越高。眾所周知臺燈作為家庭主要照明工具之一,在現代社會生活中占有重要地位,而且臺燈
    發表于 07-22 15:31

    10個STM32系列設計分享請查收

    怎樣去設計一種基于STM32的雙向DC-DC變換器?怎樣去設計一種基于stm32智能臺燈
    發表于 10-21 08:58

    475【畢設課設】基于STM32單片機智能紅外感應光照檢測臺燈路燈

    475【畢設課設】基于STM32單片機智能紅外感應光照檢測臺燈路燈
    發表于 11-30 09:06 ?85次下載
    475【畢設課設】基于<b class='flag-5'>STM32</b>單片機<b class='flag-5'>智能</b>紅外感應光照檢測<b class='flag-5'>臺燈</b>路燈

    基于STM32單片機的智能臺燈系統設計

    本次智能臺燈系統的設計使用STM32單片機作為控制中心,通過光電管檢測是否有人,通過DS1302時鐘模塊定時,通過超聲波模塊進行測距,當光電管檢測到人時,定時燈變亮并根據光強調光,當定時時間超過1h,通過語音播報進行提示。
    的頭像 發表于 08-28 09:37 ?4838次閱讀
    基于<b class='flag-5'>STM32</b>單片機的<b class='flag-5'>智能</b><b class='flag-5'>臺燈</b>系統設計