[资料] 【LinkIt 7687试用体验】11.居家小助手[结项]

[复制链接]

试用达人

发表于 2016-12-19 21:45:39   1648 查看 6 回复 显示全部楼层 倒序浏览
分享
结项
项目概述
    作为家里的主人,无论什么时候,我们都有可能需要对家里的设备进行控制,比如调整空调的温度,查看室内的湿度等操作。
    在家里,我们可以通过电子传感器来进行查看,普通的智能家居只是基于路由器的局域网数据交互。
当我们身处户外时,因为没办法链接到家里的无线路由器,所以与家里的数据进行了隔离,虽然目前有各种各样的公司推出了智能路由器等产品,加上自己的服务器能够完成这一系列工作,但是对于我们个人来说,隐私得不到保障,而且路由器的价格相对较高。
联发科的Linkit模块功耗低,并且能够满足简单的数据交互,是路由器解决方案优秀的替代品。
作为居家小助手,自动调节亮度等操作无法体现其友好的人控交互,故小助手的1.0版本仅提供远程控制LED灯亮度功能。
硬件设计
使用的模块:
1、linkit开发板
2、grove套件 Arduino扩展板
3、grove套件 led灯
1.png
软件调试
软件分两部分,分别是服务器led亮度的设置与显示,开发板上led亮度的查询与pwm的输出。
使用自建的腾讯云服务器进行led亮度的存储:
设置链接:
2.png
查询链接:
3.png
实现原理:
利用php对服务器数据库的访问,将数据库中name=pwm条的值进行更新,访问的时候对该条进行检索。
4.png
开发板上连接了arduino扩展板,故可使用的IO口如下:
5.png
便直接选择了GPIO6进行操作,对应PWM通道4:
6.png
对应扩展板的D4,故D4接led。
PWM的配置参考:
【LinkIt 7687试用体验】9.使用pwm制作呼吸灯
数据的获取参考:
【LinkIt 7687试用体验】10.wifi的连接与http的get
实际效果
当设置PWM的占空比为0时:
7.png
8.png
当设置PWM的占空比为10时:
9.png
10.png
当设置PWM的占空比为90时:
11.png
12.png
项目总结
设计的时候由于考虑到数据更新的实时性,便在数据处理完之后立即进行数据的获取,大大增加了服务器的压力、带宽的负载和单片机的功耗,后期可通过定时获取减小查询频率来改善。
心得体会
感谢论坛提供本次试用机会,Linkit是我接触到的第一款联发科嵌入式产品,开发环境使用熟悉的Keil,免去了安装各种软件的烦恼,学习的过程中有Demo进行参考,参考学习大大的增加了学习的进度,linkit的wifi物联网功能,使我对单片机的学习不仅局限在单设备上,更加明白了物联网万物相联的真谛。
附部分代码:
  1. char *get_url = HTTP_GET_URL;   
  2.     httpclient_t client = {0};
  3.     httpclient_data_t client_data = {0};
  4.     char *buf, *header;
  5.                 uint32_t total_count = 0;
  6.     uint32_t duty_cycle = 0;
  7.     HTTPCLIENT_RESULT ret;
  8.                 int time = 0;
  9.     LOG_I(http_client_get_example, "httpclient_test_get()");

  10.     buf = pvPortMalloc(BUF_SIZE);   
  11.     header = pvPortMalloc(BUF_SIZE);
  12.     if (buf == NULL || header == NULL) {        
  13.         LOG_I(http_client_get_example, "memory malloc failed.");
  14.         return;
  15.     }
  16.   
  17.                
  18.           hal_gpio_init(HAL_GPIO_6);
  19.                 hal_pinmux_set_function(HAL_GPIO_6, HAL_GPIO_6_PWM4);
  20.                 hal_pwm_init(HAL_PWM_CLOCK_32KHZ);
  21.                 hal_pwm_set_frequency(HAL_PWM_4, 200, &total_count);
  22.                 duty_cycle = (total_count * 10) / 100;
  23.                 hal_pwm_set_duty_cycle(HAL_PWM_4, duty_cycle);
  24.                 hal_pwm_start(HAL_PWM_4);
  25.                 while(++time)
  26.                 {
  27.                         LOG_I(http_client_get_example, "time:%d\r\n",time);
  28.                         // Http "get"
  29.                         client_data.header_buf = header;   
  30.                         client_data.header_buf_len = BUF_SIZE;
  31.                         client_data.response_buf = buf;
  32.                         client_data.response_buf_len = BUF_SIZE;   
  33.                         client_data.response_buf[0] = '\0';
  34.                         ret = httpclient_get(&client, get_url, &client_data);
  35.                         LOG_I(http_client_get_example, "data received: %s", client_data.response_buf);
  36.                         hal_pwm_set_duty_cycle(HAL_PWM_4, (total_count * 10*(client_data.response_buf[0]-48)) / 100);
  37.                 }
复制代码


评分

参与人数 1积分 +10 收起 理由
Elecfans管家 + 10 您的帖子很精彩,期待您分享的下一个帖子!.

查看全部评分

标签:联发科 无线路由器 服务器 局域网

助理工程师

发表于 2016-12-21 14:38:28  
看试用达人的报告都能学到很多   多谢分享
回复

点赞 举报

技术员

发表于 2016-12-25 00:00:50  

PCB在线计价下单

板子大小:

cm
X
cm

层数:

2

板子数量:

10

厚度:

1.6
彪悍!学习了
回复

举报

等待验证会员

发表于 2016-12-28 21:59:50  
楼主你是自己新创建了一个工程还是在iot_sdk_demo里面做的
回复

点赞 举报

试用达人

发表于 2016-12-29 17:18:27    楼主|
长安少年 发表于 2016-12-28 21:59
楼主你是自己新创建了一个工程还是在iot_sdk_demo里面做的

即使自己创建工程也是仿照着demo来建立的,所以没必要自己新建工程呀。
回复

点赞 举报

试用达人

发表于 2017-1-5 17:15:25    楼主|
那些年儿ing 发表于 2016-12-21 14:38
看试用达人的报告都能学到很多   多谢分享

大家一起努力嘛
回复

点赞 举报

发表于 2017-6-19 11:14:17  
12
回复

举报

只有小组成员才能发言,加入小组>>

75个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区