收藏官网首页
查看: 1747|回复: 22

ESP8266 SOC门磁系统(一)---短信报警功能

1

主题

7

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
发表于 2017-11-4 12:43:47 | 显示全部楼层 |阅读模式
汉枫LPB120模块
本文为作者原创,转载请注明 http://club.gizwits.com/forum.ph ... e=1&extra=#pid31364  谢谢!!


计划:
esp8266 SOC门磁系统(一)---短信报警功能
ESP8266 SOC门磁系统(二)---无限发射
ESP8266 SOC门磁系统(三)---红外接入
ESP8266 SOC门磁系统(四)---拍照系统
ESP8266 SOC门磁系统(五)---微信功能


一、前言
最初打算用ESP8266做安防门磁报警系统,可以实现微信监控、远程开关报警器、报警短信通知,图片上传等功能,从网上找了教程http://www.geek-workshop.com/thread-27582-1-1.html,按照这个教程也搭建成功。但是使用过程中发现:
1、这个教程中必备的开发环境:ESP8266WEB空间、短信服务供应商。其中:
->ESP8266手头有两块,没有问题。
->最开始用免费WEB空间,供应商打开了浏览器安全检查功能,ESP8266无法穿透这个功能,之后申请一个廉价的收费空间,但是第二年要涨价,心疼钱,这个是最主要问题。
->网上有很多收费的短信服务商,综合比较我选择阿里云的,每条短信不到5分钱,而且申请送10块钱(有效期一个月)。
2、远程遥控功能思路: ESP8266定时将IP上传到WEB服务器。通过微信读取WEB服务器上的IP再控制ESP8266。最开始我用的是联通网络,有外网IP,上述的方案可以实现,宽带到期后换成PB的,没有外网IP,这个功能就实现不了。
3、该方案是将ESP8266直接安装到门上,查看8266参数,如果用18650锂电池供电最多也就能坚持1天,如果采用变压器供电,需在门上走线,影响美观。

通过长时间的思考,我制定如下方案
1、在长期的查找过程中发现ESP8266+MQTT+短信服务可以解决上面的1/2两个缺点。
2、在网上买一个普通的门磁报警器(不到3块钱,两节7#干电池用了一年半还有电)将其该着成带FM发射功能。
3ESP8266接收门磁报警器的无线信号,将数据上传MQTT平台,同时执行短信报警功能。
4、平台选择:测试各个云服务商的网络速度,发现机智云是相应最快的,而且开发相对简单。

二、准备条件
1、阿里云短信功能
2Code::Blocks(本地调试C代码用,如在ESP8266调试,可跳过此步)
3ESP8266及编译环境搭建  http://wiki.ai-thinker.com/ai_ide_install
4、机智云账号
5ESP8266 SOC代码生产及下载
http://docs.gizwits.com/zh-cn/deviceDev/DevSDK/%E4%BB%A3%E7%A0%81%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E5%B7%A5%E5%85%B7.html

三、开通阿里云短信功能
1、注册阿里云(也可以用X宝账户直接登录)
2、创建accesskeys子账号(也可以用最高权限的accesskeys
2.1  鼠标放在自己登录名上,会显示一个菜单,点击accesskeys按钮
1.png
2.2、在弹出的对话框中选择“开始使用子用户accesskeys
2.png

2.3、填写用户名之后点“下一步”
3.png
2.4、选择权限管理短信服务(SMS)的权限(搜索短信),下一步
4.png
2.5、填写手机收到的短信验证码后就可以开通服务。
5.png
2.6、记录AccessKeyID和AccessKeySecret
注:AccessKeySecret只在本步骤才能看到,以后也查不到,请将这个文件下载下来好好保管。
6.png
3、建立短信发送模板
3.1、找到“产品和服务”->“全部”->“短信服务”
7.png
3.2、点击“产品使用”->“短信签名”->“添加签名”
8.png
按照要求填写签名,等待阿里审核
9.png
这个是我申请的签名,记录下“签名名称”
10.png
3.3、点击“产品使用”->“短信模板”->“添加模板”,按要求填好后等待阿里审核
11.png
我申请是填写的信息,其中${time}是签名中的参数
12.png
这个是我申请的短信签名,记录“模板CODE”
13.png
3.4、经过上述步骤后,你可以使用特定的程序发送短信了,使用效果
14.png

4、编写程序
4.1、阿里云提供的代码都是基于WEB的(PHPjava),想在ESP8266上使用必须自己重新编写C代码。下载PHP_DEMO,对照https://help.aliyun.com/document_detail/56189.html?spm=5176.doc55496.6.573.gp8URv重新编写短信用签名系统
4.2、阿里短信签名大致流程:
4.2.1AccessKeyIdTimestamp等字段生产一个数组,(数组key就是这些关键字,值进行UTF-8转码)对数组进行key排序。
注:这步中阿里的API有点错误,对照PHP_DEMO发现根本不用执行这步
15.png
4.2.2用排序后的数组生产一个字段,格式AccessKeyId=XXX&Timestamp=YYY………
4.2.3对上步这段再次进行UTF-8转码,转码后在字段的最前边加GET&%2F&(或POST&%2F&,具体加什么取决你用什么方式发送URL数据),并且将里面的加号(+)替换成 %20、星号(*)替换成 %2A%7E 替换回波浪号(~)。4.2.42.6步骤中的AccessKeySecret码后面加“&4.2.5用上步用步骤4.2.4对步骤4.2.3支付串进行sha1_Base64加密,将加密后的字符进行UTF-8转码4.2.6Signature= sha1_Base64加到1)中的数值,重新生产URL数据码4.2.7将上述数据发送到dysmsapi.aliyuncs.com4.2.8查看手机收到短信没有?^_^
4.3、代码移植到ESP266(请自己在论坛里面搜索如何搭建ESP8266编程环境!)
4.3.1、从机智云下载ESP8266SOC代码(网上很多教程,不详细介绍)
4.3.2、将附件中的sendSms.h放到app\include\driver目录,将sendSms.c放到app\driver目录
4.3.3、打开sendSms.c,找到voidICACHE_FLASH_ATTR setURLchar(char* inURLchar)函数,按照要求修改如下字段:
16.png
4.3.4、打开sendSms.c,找到voidICACHE_FLASH_ATTR setTimes(char *TemplateParam,char *Timestamp,char*SignatureNonce)函数,将下列代码修改成对应短信中的参数
17.png
4.3.5、在gizwits_product.c中添加#include"driver/sendSms.h" 和如下代码
                 CheckIpStart();
                static uint32_t irLastTimer = 0;
                //做一个延时,等待http应答
                if((gizGetTimerCount()-irLastTimer)>5000){
                    irLastTimer =gizGetTimerCount();
                    if(getSendCode()==100){
                         GIZWITS_LOG("===================================\n");
                         GIZWITS_LOG("信息发送成功\n");
                         GIZWITS_LOG("===================================\n");
                    }
                }
因硬件还没搭接,所以我将上述代码加在int8_t ICACHE_FLASH_ATTR gizwitsEventProcess(eventInfo_t *info,uint8_t *data, uint32_t len)中
18.png
4.3.6、更改Makefile,生成user1.4096.new.6.bin
19.png
改成
20.png
4.3.7、将文件夹ld->eagle.app.v6.ld
21.png
改成
22.png
注:最开始没更改这个位置,编译没问题,生产bin时候报错,后来查看乐鑫帮助才解决。
http://espressif.com/zh-hans/support/explore/get-started/esp8266/getting-started-guide
http://blog.csdn.net/yannanxiu/article/details/51371798
23.png
4.3.8、编译,下载到ESP8266
4.3.9、打开机智云的SDK,测试你的程序~~~~~~~~~~~~


5、由于本人也是小白,上述代码在网友的基础上做一点点修改,因此执行效率存在问题,欢迎各位大神对其进行优化~~
硬件开发平台

                                      作者:daxiatt   
                                       201711

附件下载
游客,如果您要查看本帖隐藏内容请回复

36

主题

159

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
发表于 2017-11-6 15:12:37 | 显示全部楼层
机智云  D3引擎 可以实现 短信推送、Push推送(APP推送)、邮件推送等功能。
无需过多开发。只需要设置好条件即可。

D3引擎消息推送设置1

D3引擎消息推送设置1

D3引擎消息推送设置2

D3引擎消息推送设置2


点评

刚刚看了一下,必须企业用户才能申请 × 提示 企业账号的非个人项目下的产品才能申请该服务,如果你是个人账号需要开通企业账号,请发邮件给,我们会有专人联系你。或者直接电话400-6525-488联系我们。 确认  详情 回复 发表于 2017-11-9 15:23

0

主题

6

帖子

168

积分

注册会员

Rank: 2

积分
168
发表于 2017-11-6 16:37:24 | 显示全部楼层
正需要短信服务功能,给力。。。。。。

1

主题

7

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
 楼主| 发表于 2017-11-9 15:23:29 | 显示全部楼层
本帖最后由 daxiatt 于 2017-11-9 15:32 编辑
admin 发表于 2017-11-6 15:12
机智云  D3引擎 可以实现 短信推送、Push推送(APP推送)、邮件推送等功能。
无需过多开发。只需要设置好条 ...

刚刚看了一下,必须企业用户才能申请


提示
企业账号的非个人项目下的产品才能申请该服务,如果你是个人账号需要开通企业账号,请发邮件给club@gizwits.com,我们会有专人联系你。或者直接电话400-6525-488联系我们。

点评

你也可以注册企业用户。只需要完善信息即可  详情 回复 发表于 2017-11-15 09:34

1

主题

7

帖子

388

积分

中级会员

Rank: 3Rank: 3

积分
388
 楼主| 发表于 2017-11-9 15:31:23 | 显示全部楼层
教您5分钟接入机智云,实现傻瓜式开发
蚂蚁浏览器公司 发表于 2017-11-6 16:05
拍照及图片上传怎么搞定? esp8266传一个20k的图片2秒能传完吗,成功率怎么样 ...

这部分还没着手开发。这两天也合计了一下,用一块8266发短信基本吧他的所有资源都占用,要是再发图片估计还的在上一块。
你有发图片的代码可以共享一下吗?,
邮箱1295064439@qq.com谢谢

8

主题

138

帖子

3045

积分

论坛元老

Rank: 8Rank: 8

积分
3045
发表于 2017-11-6 10:42:18 | 显示全部楼层
kank看看学习
发表于 2017-11-6 10:52:47 | 显示全部楼层
66666。你的设备8266接入阿里智能开放平台了
1、机智云Adnroid开源框架QQ交流群: 434878850

QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-iot
关注机智云Gizwits官方公众号随

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2017-11-6 16:05:37 | 显示全部楼层
拍照及图片上传怎么搞定? esp8266传一个20k的图片2秒能传完吗,成功率怎么样

点评

这部分还没着手开发。这两天也合计了一下,用一块8266发短信基本吧他的所有资源都严重了,要是再发图片估计还的在上一块。 你有发图片的代码可以共享一下吗?, 邮箱  详情 回复 发表于 2017-11-9 15:31

1

主题

5

帖子

38

积分

新手上路

Rank: 1

积分
38
发表于 2017-11-6 16:40:47 | 显示全部楼层
xuexixuexi

0

主题

18

帖子

498

积分

中级会员

Rank: 3Rank: 3

积分
498
发表于 2017-11-7 21:45:45 | 显示全部楼层
汉枫LPB120模块
高,实在是高!学习学习

9

主题

26

帖子

926

积分

高级会员

Rank: 4

积分
926
发表于 2017-11-9 19:47:35 | 显示全部楼层
也想学习这方面的技巧!

0

主题

3

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2017-11-13 21:39:28 | 显示全部楼层
学习  谢谢

36

主题

159

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
发表于 2017-11-15 09:34:03 | 显示全部楼层
daxiatt 发表于 2017-11-9 15:23
刚刚看了一下,必须企业用户才能申请

你也可以注册企业用户。只需要完善信息即可

1

主题

5

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2017-11-19 22:45:03 | 显示全部楼层
ESP8266模块首单6.8元
学习了 楼主太厉害了

0

主题

2

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2018-1-4 18:53:44 | 显示全部楼层
很棒的,学习了短信的发送使用

0

主题

6

帖子

56

积分

注册会员

Rank: 2

积分
56
发表于 2018-2-1 15:13:18 | 显示全部楼层
门磁系统(一)---短信报警功能

4

主题

48

帖子

649

积分

高级会员

Rank: 4

积分
649
发表于 2018-3-2 19:32:55 | 显示全部楼层
ESP8266模块首单6.8元
xuexilexuexi
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

© 2011-2017 Gizwits ( 粤ICP备11090211号 )

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