5443|5

62

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

带环境检测和联网实时监控的智能家电控制系统 [复制链接]

 

以上是作品展示,如果视频看不了,可以直接点上面演示视频的链接地址进行观看,源码放在帖子的最后哪里。
下面这里我就比较详细的描述一下这次作品的设计并作个总结。首先是,相关开发工具的介绍:
1,硬件类
SensorTile套件,这个前面已经在设计分享里介绍过,这里就不做描述了,主要是用到系统主板SensorTile Core System和扩展板STEVAL-STLCS01V1,根据作品的原理图作相应修改就行了,其中要注意的是用到的几个I/O口,程序下载口就直接用板子上的,还有几个就是用于控制LED的两个I/O口,是用MCU上的PA11PA12两个端口,以及用于与wifi模块通信的UART口,这里分别用板上的GPIO2GPIO3MCU上的PC0PC1两个端口,它是低功耗串行异步收发器LP_UART1,这里因为没有对功耗特别要求,所以把它作为通用的串行通信器来用,还有一点要注意的是,要想用串口的两个端口,必须把扩展板上的R5,R6两个电阻去掉,如图:
         

可以看出它原来是作为IIC通信口使用的,所以要去掉。
接着就是wifi模块,这里使用的是ESP8266的串行通信模块,型号是ESP-12F,电路图如下:
         

比较简单,可以像我这样通过直接焊线实现。
最后是LED,这个简单,也可以像我这样直接用个洞洞板焊接出来。剩下就是下载工具,可以用ST-LINK V2,也可以用J-LINK,个人喜欢咯。
2,软件类
支持STM32开发的软件主流还是IAR FOR ARMKEIL两款软件,我用的是IAR FOR ARM7.6版,这个需要的可以在网上下载,网上很容易就能找到相关的版本和破解工具,以及安装和破解方法。还有就是ST官方提供的SDK包和测试APP,这里用的是        
en.Bluemicrosystem2_firmware这个固件包修改的,需要的可以到前面的帖子里下载,以及
ST BlueMS这个APP前面也有提供下载的。
3,接着就是重头戏,固件源代码的修改,首先还是要先熟悉一下的,前一篇也有介绍过本次开发所用到的几个地方,这里我再详细的介绍一下吧。
首先,顺着工程文件的路径,找到并打开工程,如下图:
      

红圈1为路径,2为工程文件,打开工程,界面如下:

这里主要看main.c, sensor_service.cstm32l4xx_it.c这三个源文件,其中main.c是主函数,主要完成端口的初始化,数据的处理,逻辑功能的实现等都在这里操作,而sensor_service.c则是负责与蓝牙通信的部分,stm32l4xx_it.c则是中断处理的部分。下面我就说一下要用到的那些功能和修改了那些部分。
如下图,我一般在修改的地方都会加上类似的标识,方便观看理解,

我就主要介绍几个大的修改,第一个是,蓝牙通信那部分,如图:

这里原来就是作为Debug Console双向传输测试用的处理函数,原来只是简单的回传动作,这里把它改为接收蓝牙数据并作前期处理的功能函数,如图:

在这里,我就先说一下,我个人定的几个指令吧。首先,LED的控制,是通过APP端发送过来的LED1ON,LED1OFF,LED2ON,LED2OFF这几条指令控制的;接下来是获取温度值,是通过RTE这条指令完成的,返回的温度值格式是Temp=xx.x *C;跟着是设置一个控制LED灯开和关的临界温度值,是通过STE=XX.X(温度值,如36.4),单位是摄氏度;继续,需要处理的是发送WIFI模块联网的指令,这个指令分两次发送,因为蓝牙一次最大的发送长度是20个字节,太长只能分开传输,指令分别是AT1="SSID",#   AT2="password"#  必须按照12这样的顺序发送,其中SSID为路由名称,这里要注意的是SSIDpassword里不能出现#这个结束位,当发送完两个指令时,MCU会通过串口配置wifi模块,而模块返回的信息会通过蓝牙反馈到APP上的,信息内容请参考wifi模块的说明书;当wifi模块连上路由后,我们再建立一个服务器,然后通过指令把服务器的IP和端口信息发送给处理器,指令内容是SC1="TCP","XXX.#  SC2=XXX.X.XXX"#  SC3=,XXXX#  一共三个指令,其中前两个指令里的XX是服务器的IP,后面那个指令的XX是端口号,通过返回的模块信息就可以判断有没有建立连接,连上服务器后,可以通过以下指令跟设备通信,D1ON,D1OFF,D2ON,D2OFF 四个指令分别控制LED的开和关,GT指令则是获取当前温度值,返回的温度值格式是:Temp=XX.X *C。以上便是所有的指令协议操作了,具体操作也可以看我发的作品展示视频。
跟着就是主函数main.c的修改了,如图:
   
                                                          图1
     
                                                          图2
     
                                                         图3
其中1图是添加的蓝牙数据处理函数,包括LED灯的开关,温度值的获取和回送,临界温度值的处理函数,以及wifi模块处理的函数,2图是用到的端口和串口的初始化函数,3图是添加的串口中断响应和数据处理的函数,主要是处理wifi模块的回显和通过服务器通信发送过来的数据。
再就是在中断源文件stm32l4xx_it.c里添加串口中断函数,如图:
   

还有就是,环境数据获取的函数,如图:
  

温度,气压和湿度都是在static void SendEnvironmentalData(void)这个函数里获取和处理的,其中温度是在下图这个地方:
   

这里可以直接调用修改就可以了,具体都是通过SPI中断事件处理的。
好了,到这里就基本介绍完了,有兴趣的朋友可以自己也试试咯。在这里,再次的感谢ST和EEworld等相关人员的工作,让我有这么一次实习的机会,同时也祝各位参赛的朋友顺顺利利咯!

下面再放些我整理的资料,有需要的人士可以自行提取。
关于wifi模块ESP8266的: ESP8266串口WIFI 无线模块 WIFI远距离无线模块 穿墙王.rar (13.66 MB, 下载次数: 60)
其它:   开发参考资料.rar (13.31 MB, 下载次数: 50)
补上ST BlueMS软件:   com.st.bluems.apk (4.73 MB, 下载次数: 33)

原理图.png (131.42 KB, 下载次数: 0)

原理图.png

作品形象图.jpg (1.5 MB, 下载次数: 0)

作品形象图.jpg

最新回复

nmg
zhaogong参与活动的相关帖子如下: SensorTile大赛参选设计开篇(第一篇):SensorTile套件的开箱和简评SensorTile大赛参选设计(第二篇):SensorTile套件相关的固件烧录和算法库注册基本功能展示和过程介绍   详情 回复 发表于 2017-5-5 11:32
点赞 关注
 
 

回复
举报

5263

帖子

239

TA的资源

管理员

来自 6楼
 
zhaogong参与活动的相关帖子如下:


加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

111

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
相当完整和详尽的演示,通过BlueMS console来调试和展示是一个不错的示例哦

赶紧mark下来准备学习起来

点评

哈哈,时间紧迫,能简就简咯!!  详情 回复 发表于 2017-5-3 17:33
 
 
 

回复

62

帖子

3

TA的资源

一粒金砂(中级)

板凳
 
alberthink 发表于 2017-5-3 11:50
相当完整和详尽的演示,通过BlueMS console来调试和展示是一个不错的示例哦

赶紧mark下来准备 ...

哈哈,时间紧迫,能简就简咯!!
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 
大神,能带下小弟么?抱一抱粗腿
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢分享
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表