收藏官网首页
查看: 69516|回复: 31

【MEGA64+ESP8266】之智能家居

7

主题

44

帖子

116

积分

注册会员

Rank: 2

积分
116
发表于 2016-7-25 00:58:55 来自手机 | 显示全部楼层 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
本帖最后由 Genius 于 2016-8-25 14:51 编辑

就是辣么棒!一个app就能控制所有家电、家居。
原创**,转载请注明来自:http://club.gizwits.com/thread-2939-1-1.html
作者:孤独的蛇
【开源硬件】机智云智能硬件创新大赛  http://club.gizwits.com/thread-2646-1-1.html

看到这个活动,心里痒痒的,尝试参加一下。左等右等申请的gokit3还没到,手头正好有一块N年前自己焊接的MEGA64最小系统板和一块esp8266-01,索性就用这两个设备来设计一个智能家居小系统。整体还在构思中,待构思完毕后再制作过程发布。



   通过几天的考虑,为本次设计的智能家居系统做出如下的设计:
1、通过手机APP等移动设备,连接互联网机智云,通过ESP8266进行互联网通信,获取控制命令,并将命令通过RS232串口通信传给MCU:MEGA64,最终由MEGA64对具体的设备进行控制;
2、本次智能家居可进行操作或获取信息的内容主要为:
    a、智能开关:可以通过移动客户端远程对智能开关进行控制开关的通电与断电的操作。由此可衍伸出很多电器设备的控制,只要控制电源的开和关的,都可以通过智能开关进行控制。
    b、智能调光器:可以通过移动客户端,控制各电灯的亮暗,也可以通过环境亮度来进行自动控制。
    c、智能插座:和智能开关类似,只不过这个控制的是插座的通电和断电。
    d、智能窗帘:可以对窗帘的打开和关闭进行操作,也可以设定窗帘打开的多少,从而满足亮度的需要。
    e、智能自动收衣服:通过雨滴传感器传来的数据,判断现在是否下雨来对衣架的回收或伸展,保证衣服的干燥。
    f、智能风扇:可以控制风扇的转速。
    g、智能心情灯:可根据需要对RGB灯的三种颜色进行调节,从而控制灯的颜色,随心而变,增加氛围。
    h、智能音乐播放器:可以进行音乐的播放、暂停、上一曲、下一曲、随机播放、循环播放灯操作。
    i、智能安防窗户打开报警器:可进行安防监控,如果窗户被打开了,则会远程发送报警通知。
    j、智能红外解码转发器:可对各种电器的遥控器进行解码,并存储,然后通过远程控制发出相应的红外遥控信号进行控制电器,相当于遥控器。
    k、火焰防火灾报警器:监测家里的环境是否有着火现象,如有则进行消息通知。
    l、可燃气体报警器:监测环境中是否含有可燃气体,并达到一定的浓度后进行消息通知。
    m、自动浇花器:通过检测花盆中土壤的湿度进行控制是否对花浇水。
    n、温度、湿度表:通过检测环境的温度和湿度,并上报到移动客户端显示。


以上是对本次智能家居的任务设计方案,后面则对方案进行实际的选材设计与制作。
由于实际情况的限制,本次设计的一些内容,不是实际的220V交流电的操作,而是通过模拟的方式用5V直流电进行操作。其模拟的方法和220V交流电的实际操作方法是一致的,只是有些地方需要进行电路的设计,在后期的制作过程中也会给出这些设计。【MEGA64+ESP8266】之智能家居系统结构图







【MEGA64 ESP8266】之智能家居系统结构图【MEGA64 ESP8266】之智能家居系统结构图.png.png

智能家居-机智云接入串口通信协议文档.pdf

137.46 KB, 下载次数: 290, 下载积分: 威望 1

土壤湿度传感器模块电路图.pdf

24.87 KB, 下载次数: 158, 下载积分: 威望 1

M64_BIT_OPERATION.zip

1.9 KB, 下载次数: 162, 下载积分: 威望 1

MEGA64_ESP8266_GOKIT.zip

15.47 KB, 下载次数: 222, 下载积分: 威望 1

7

主题

44

帖子

116

积分

注册会员

Rank: 2

积分
116
 楼主| 发表于 2016-8-24 17:02:18 | 显示全部楼层
本帖最后由 孤独的蛇 于 2016-8-24 17:08 编辑

前段时间一直跑医 院,导 致没有什么时间和心 思在上面,加上没有足够的工具,所以本次的设计只能到这里了,只是一个框架,具体的应用还是要靠自己设计。
手机APP现在没有时间去研究了,毕竟不是这方面的人。。。。只能将就使用demoAPP来进行控制了。。。。

手机APP连接设备的视频,为什么是倒立的???
http://v.youku.com/v_show/id_XMTY5NzkwMzk5Ng==.html

远程控制LED灯开关:
http://v.youku.com/v_show/id_XMTY5NzkwNzEyMA==.html

远程插座控制:这里使用LED灯来模拟开关
http://v.youku.com/v_show/id_XMTY5NzkwNzg3Mg==.html

RGB灯的控制:
http://v.youku.com/v_show/id_XMTY5NzkwOTI0MA==.html

音乐的控制:
http://v.youku.com/v_show/id_XMTY5NzkxMTM2NA==.html

直流马达的控制:
http://v.youku.com/v_show/id_XMTY5NzkxMDAwMA==.html

各种传感器:
http://v.youku.com/v_show/id_XMTY5NzkxMDcyMA==.html

遥控器的学习与控制:
http://v.youku.com/v_show/id_XMTY5NzkxMjAwNA==.html

至此,本次设计的所有东西完毕,对于手机APP,只能等到以后有时间的时候再进行研究了,弄好后我也会在这里附上的

7

主题

44

帖子

116

积分

注册会员

Rank: 2

积分
116
 楼主| 发表于 2016-8-24 17:40:24 | 显示全部楼层
[ 项目名称 ] MEGA64+ESP8266之智能家居
[ 项目概述 ]本项目使用最平常的单片机和常见的wifi模块制作一个智能家居的简单模型,通过机智云联网进行控制操作。
[ 硬件准备 ]
1、MEGA64最小系统板
2、ESP8266wifi模块
3、RGB三色灯,LED灯数个
4、音乐播放器(WTV020-SD语音模块)
5、直流马达及驱动
6、火焰传感器、雨滴传感器、土壤湿度传感器、光传感器、可燃气体传感器、温湿度传感器
7、红外接收一体芯片B18838和红外发射二极管
8、限位开关、编码器等
[ 使用软件环境 ] AvrStudio编写C语音程序  访问密码 2eff
[ 相关源码 ]MEGA64_ESP8266_GOKIT.c  访问密码 2889  、M64_BIT_OPERATION.H  访问密码 c82d
[ 项目介绍 ]

各种资料集合:https://yunpan.cn/cMuJYXrUqqKZy  访问密码 787e
0_1310790945ri5x.gif

ATmega64_64L_cn.pdf (2.76 MB, 下载次数: 22)

7

主题

44

帖子

116

积分

注册会员

Rank: 2

积分
116
 楼主| 发表于 2016-7-28 23:21:27 | 显示全部楼层

    通过几天的考虑,为本次设计的智能家居系统做出如下的设计:
1、通过手机APP等移动设备,连接互联网机智云,通过ESP8266进行互联网通信,获取控制命令,并将命令通过RS232串口通信传给MCU:MEGA64,最终由MEGA64对具体的设备进行控制;
2、本次智能家居可进行操作或获取信息的内容主要为:
    a、智能开关:可以通过移动客户端远程对智能开关进行控制开关的通电与断电的操作。由此可衍伸出很多电器设备的控制,只要控制电源的开和关的,都可以通过智能开关进行控制。
    b、智能调光器:可以通过移动客户端,控制各电灯的亮暗,也可以通过环境亮度来进行自动控制。
    c、智能插座:和智能开关类似,只不过这个控制的是插座的通电和断电。
    d、智能窗帘:可以对窗帘的打开和关闭进行操作,也可以设定窗帘打开的多少,从而满足亮度的需要。
    e、智能自动收衣服:通过雨滴传感器传来的数据,判断现在是否下雨来对衣架的回收或伸展,保证衣服的干燥。
    f、智能风扇:可以控制风扇的转速。
    g、智能心情灯:可根据需要对RGB灯的三种颜色进行调节,从而控制灯的颜色,随心而变,增加氛围。
    h、智能音乐播放器:可以进行音乐的播放、暂停、上一曲、下一曲、随机播放、循环播放灯操作。
    i、智能安防窗户打开报警器:可进行安防监控,如果窗户被打开了,则会远程发送报警通知。
    j、智能红外解码转发器:可对各种电器的遥控器进行解码,并存储,然后通过远程控制发出相应的红外遥控信号进行控制电器,相当于遥控器。
    k、火焰防火灾报警器:监测家里的环境是否有着火现象,如有则进行消息通知。
    l、可燃气体报警器:监测环境中是否含有可燃气体,并达到一定的浓度后进行消息通知。
    m、自动浇花器:通过检测花盆中土壤的湿度进行控制是否对花浇水。
    n、温度、湿度表:通过检测环境的温度和湿度,并上报到移动客户端显示。


以上是对本次智能家居的任务设计方案,后面则对方案进行实际的选材设计与制作。
由于实际情况的限制,本次设计的一些内容,不是实际的220V交流电的操作,而是通过模拟的方式用5V直流电进行操作。其模拟的方法和220V交流电的实际操作方法是一致的,只是有些地方需要进行电路的设计,在后期的制作过程中也会给出这些设计。


【MEGA64+ESP8266】之智能家居系统结构图

【MEGA64+ESP8266】之智能家居系统结构图

7

主题

44

帖子

116

积分

注册会员

Rank: 2

积分
116
 楼主| 发表于 2016-8-17 16:38:02 | 显示全部楼层
汉枫LPB120模块
【三、智能插座】的设计
智能插座和智能开关的原理是一样的,这里就不再阐述。

7

主题

44

帖子

116

积分

注册会员

Rank: 2

积分
116
 楼主| 发表于 2016-8-17 17:34:11 | 显示全部楼层
【五、音乐MP3控制】
这里使用的是WTV020-SD语音模块(因为手上就有这个模块了。。。有好的模块可以替换掉)
1、产品特征
  
Ø  产品支持外挂最大1G容量的SD卡;
  
Ø  支持播放4Bit ADPCM格式文件;
  
Ø  自动识别语音文件;
  
Ø  可装载6KHz~32KHz、36KHz采样率AD4音频;
  
Ø  可装载6KHz~16KHz采样率WAV音频;
  
Ø  16bitDAC及PWM音频输出;
  
Ø  最多可存放512段语音;
  
Ø  WTV020-SD-20S,WTV020-SD-16P两种模块类型;
  
  
  
  
Ø  支持微型处理器和按键控制;
  
Ø  可以调用任意段落的语音进行播放;
  
Ø  掉电保存操作数据功能;
  
Ø  加载语音无需软件辅助,直接放置语音到SD卡便可;
  
Ø  支持文件组合播放,包括静音组合;
  
Ø  工作电压:DC2.5~3.6V;
  
Ø  静态电流:16uA(不插SD卡)
  
2、产品概述
WTV020-SD模块是一款可重复擦写语音内容的大容量存储类型的语音模块,可外挂最大容量为1GB的SD卡存储器。能加载WAV格式语音和AD4格式语音。
WTV020-SD模块以WTV020SD-20S语音芯片为主控核心,具有MP3控制模式,按键一对一控制模式(3段语音跟5段语音两种),上电循环播放控制模式以及二线串口控制模式。控制模式是在芯片制样时设置的,在操作过程中不能切换各种控制模式,如需要使用哪种模式进行控制,可向我司订做。
MP3控制模式:具有播放/停止,下一曲,上一曲,音量+,音量-等功能。
按键一对一控制模式(3段语音):一个按键对应触发一个语音,具备播放3段语音及调节音量加减的功能,所有按键被默认为脉冲不可重复触发。
按键一对一控制模式(5段语音):具有三种控制方式,⑴、所有按键均为脉冲可重复触发;⑵、所有按键均为播放/停止触发(单曲不循环);⑶、所有按键均为播放/停止(单曲可循环)。
上电循环播放控制模式:上电后,不需要触发任何I/O口,直接自动播放SD卡存储器内的所有语音,并拥有断电记忆点播放功能,当断电后再上电,自动从上次的断电处继续播放语音。具有两种控制方式,⑴、P04拥有脉冲播放/暂停功能;⑵、P05拥有电平播放/暂停功能。
二线串口控制模式:由单片机通过CLK时钟和DI数据线发送数据对WTV020-SD模块进行控制。可随意播放任何一个地址的语音。此状态下,能进行语音组合播放。
语音内容更新直接通过SD卡读卡器在PC上更换。该模块支持FAT文件系统。支持6KHz~32KHz、36KHz采样率的AD4语音和6KHz~16KHz采样率的WAV音频,能自动识别语音采样率以及语音文件格式。

点击这里可以下载此文档手册 (  访问密码 8861 )

  1. //音乐设置
  2. #define STOP 0xffff        //停止播放
  3. #define PLAY 0xfffe        //播放
  4. #define PAUSE 0xfffe        //暂停
  5. #define SINGLE_CYCLE 0xfffd        //单曲循环
  6. #define STOP_CYCLE 0xfffc        //停止循环
  7. #define ALL_CYCLE 0xfffb        //所有循环
  8. #define REST PORTG_2
  9. #define DI PORTG_1
  10. #define CLK PORTG_0
  11. volatile unsigned int voice_buf[8] = {0xfff0,0xfff1,0xfff2,0xfff3,0xfff4,0xfff5,0xfff6,0xfff7};        //音量 0xf0为静音  0xf7 为音量最大
  12. volatile unsigned char voice;
  13. volatile unsigned int song_number;
复制代码
  1. void init_fun()        //初始化模块
  2. {
  3.         voice = 1;        //初始音量设置为3,        0为最小,即静音;        7为最高
  4.    
  5.     song_number = 0;        //第1首歌曲
  6.     REST = 1;
  7.     DI = 1;
  8.     CLK = 1;
  9.     reset_fun();
  10.     delay_ms(300);
  11.     sent_data(voice_buf[voice]);
  12.     sent_data(ALL_CYCLE);
  13. }

  14. void reset_fun()        //复位模块
  15. {
  16.         REST = 0;
  17.         delay_ms(6);
  18.           REST = 1;
  19.         delay_ms(6);
  20. }

  21. void sent_data(uint dat)        //发送数据
  22. {
  23.         unsigned int i;
  24.         uint j;
  25.         for(i=