前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【IoT迷你赛】开发板使用感受及智能灯的实现

【IoT迷你赛】开发板使用感受及智能灯的实现

原创
作者头像
用户1295832
修改2019-08-27 14:33:27
7950
修改2019-08-27 14:33:27
举报
文章被收录于专栏:腾讯云IoT腾讯云IoT

首先非常荣幸能够参与此次内测,虽然自己现在不是从事这个行业了,但是我依然对它热爱着。而且通过这个内测,自己也对物联网开发有了新的认识,因为之前做的时候只是做底层部分,并未涉及上层相关。

接着说说开发板部分,设计方面看得出是非常用心的,比如模组接口的防呆设计,如下图:

防呆设计
防呆设计

最后回到正题,记录一下这个开发板的折腾过程。我做的是一个智能灯,可通web端、手机端调节灯的亮度。做这个实验的过程感觉也是挺简单的,因为大多数功能已经实现了,只需配置一下通讯端口即可使用,我这边唯一写的就是一个亮度的调节,使用这个开发环境可以说是傻瓜式的开发了。

实验过程

1.LED亮度调节实现原理

当点亮一个LED到我们人眼看到光亮是需要经过一段时间的,所以通过控制点灯的时间便可以实现亮度的调节。

2.配置LED

E53_SC1这个模块提供了一个非常“豪华”LED,记得第一次开机的时候刚治好的眼睛差点又被亮瞎,哈哈。通过查看线路图及datasheet可知,该LED由GPIO_PIN_9控制。

我使用的是tencent_cloud_sdk_data_template这个demo code,参考了部分代码,先写一个开关LED的函数:

代码语言:javascript
复制
/*
	LED 开关
*/

 void led_switch(GPIO_PinState Status)   
{
  GPIO_InitTypeDef GPIO_InitStruct;

	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9, Status);
	
  GPIO_InitStruct.Pin   = GPIO_PIN_9;
  GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull  = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
	
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
}

再设置两个全局变量,用于记录下发指令中的开灯及亮度级别。

代码语言:javascript
复制
int   g_is_led_on  = 0;
float g_brightness = 0;

亮度调节实现逻辑如下:

代码语言:javascript
复制
void task_led()
{
    while (1) {
			
			if (g_is_led_on && g_brightness > 0)
			{
					led_switch(LED_ON);
					LED_Delay(((int)g_brightness) * 5);
					led_switch(LED_OFF);	
					tos_task_delay(1);
			}
			else
			{
					led_switch(LED_OFF);
				  tos_task_delay(10); // 避免阻塞
			}
    }
}

最后,由于不断开关灯需要用到一个死循环,需创建一个任务:

代码语言:javascript
复制
osThreadCreate(osThread(task_led), NULL); 

MQTT部分配置指导书有详细说明便不详述了。

3.实现效果

这里使用的腾讯云物联开发平台提供的腾讯物联助手这个APP发送指令。

关灯状态
关灯状态
亮度为1
亮度为1
亮度100
亮度100

不足之处

软件方面:

1、在调试过程中,发现串口打印部分出现乱码

2、在网络较差的环境下板子容易跑挂,指令下发频繁也会导致此问题

3、腾讯物联助手APP还不完善,比如在上面示例的页面中按手机返回键不会返回主页面,而是提示退出

4、Web端使用在线调试时,设置下发指令后,又会被板子上报的信息覆盖,除非设置完快速点发送

在线调试
在线调试

硬件方面:板子在连接ST-link的时候power button关机是无效的。

其它方面再慢慢体验,时间关系就写到这里了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验过程
    • 1.LED亮度调节实现原理
      • 2.配置LED
        • 3.实现效果
        • 不足之处
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档