功能介绍:
使用4G模块EC600S和32单片机实现接入阿里云服务器,上传光照数据和下发命令控制LED灯(PC13),同时可以打电话、发短信。
前期准备:
1、首先你得有一个阿里云的账号,没有的话就注册一个
2、在物联网平台创建产品和设备
附上参考文章:AT指令接入阿里云
主要硬件准备:
1、STM32F103C8T6最小系统板
2、4G模块,我使用的是EC600S(适用于移动、联通、电信卡)
3、光照强度传感器BH1750
模块接线:
4G模块EC600S:
VCC–5V GND–GND TX–PA3 RX–PA2
光照强度传感器BH1750:
VCC–3.3V GND–GNG SCL–PB6 SDA–PB7 ADDR–不接
演示阶段:
实物图
串口助手输出信息
成功接入阿里云,设备显示在线
成功上传光照数据和LED灯状态
在线调试里可以下发控制命令
查看自己是否订阅成功
开发Web应用和移动应用,可以上物联网应用开发控制台 应用开发链接
简单开发的手机应用
代码需要修改的地方
1、三元组和手机号码
阿里云三元组获取方式:
2、数据流名(标识符)修改
将Light、LED修改为你的标识符
标识符查看方式:
部分代码实现:
数据上传部分代码
每隔3S上传一次光照数据
命令的下发部分代码
在串口2中断服务函数中,通过“version”字符串判断有没有接收到下发的命令,如果是下发,串口2就会接收到这样一长串的字符串:
收到下发的命令后,将U2_RX_Cmd置1在main()中指向命令和上传LED灯状态。
有时发布消息时会出错,出错时串口2会接收到字符串“EEOR”。发生错误时,我们可以试着重连阿里云。
发短信和打电话可以直接调用这两个函数即可
main.c文件