目录
前言
借助ESP-01SWIFI模块、阿里云IOT、APP inventor实现物联网项目,本文即记录项目实现过程,其中参考多篇文章实现。
一、阿里云IOT
1.登录阿里云服务器,使用支付宝账号即可
2.阿里云IOT平台
3.管理控制台—>公共实例—>产品—>确认
4.设备—>添加设备
分别添加esp8266 与 APP 用以对接
此时阿里云基础配置已基本足够
二、ESP-01S
1、接入阿里云服务器
对与esp-01S模块,其通过串口与主控通信,主控通过串口发送AT指令配置该模块。在测试阶段,可使用串口助手对其控制,波特率115200。
ESP-01S接入阿里云
所用到的指令如下:应注意clientId中添加’ \ ’
AT |
AT+RST |
AT+CWMODE=1 |
AT+CIPSNTPCFG=1,8,“ntp1.aliyun.com” |
AT+CWJAP=“WIFI名”,“WIFI密码” |
AT+MQTTUSERCFG=0,1,“NULL”,“username”,“passwd”,0,0,“” |
AT+MQTTCLIENTID=0,“clientId” |
AT+MQTTCONN=0,“mqttHostUrl”,1883,1 |
连接成功后,阿里云服务器上设备连接状态将由“未激活”变为“在线”
2、消息发送与接收
其中订阅主题与发布主题:
- 阿里云服务器—>产品—>Topic类列表—>自定义Topic
将黄字为ProductKey、蓝字为对应DeviceName
发布: /iag77MwiXZa/${deviceName}/user/update |
订阅:/iag77MwiXZa/${deviceName}/user/get |
- 消息发送
日志服务中
可查看是否发送成功
- 消息接收
串口发送如下订阅主题
此时对应设备Topic列表里则出现对应Topic
发布消息,同时观察串口
此时串口收到服务器设备发送内容
三、APP Inventor
使用APP inventor开发手机客户端,主要参考如下文章:
基于appinventor开发阿里云物联网Android软件(胎教级包懂教程)_app inventor 物联网_HDUGEEK的博客-CSDN博客
本人也是在该博客所分享的APP inventor离线版下开发,在GitHub下载该项目时,直接Download ZIP项目文件会受损,需要用到git,可参考下文:
如何使用git下载Github代码_git怎么下载代码_QBU-95的博客-CSDN博客
本项目的aia文件已上传至该博客,修改对应物联网项目密钥等内容
其中:
- port:1883
- idDevice:MQTT 连接参数clientId
- userna:MQTT 连接参数username
- password:MQTT 连接参数password
- ipAdreess:MQTT 连接参数mqttHostUrl
四、Arduino
由于时间间隔较久且经历刷机,esp8266的arduino开发时所参考的文章及链接已找不到,单找到一个项目ino文件,且由于设备上交,程序具体是否可用本人已无法验证。印象中程序参考自GitHub上项目。
#include <Arduino.h>
#include <Servo.h>
#include <Ticker.h>
#include <Crypto.h>
#include <ESP8266WiFiMulti.h>
#include <PubSubClient.h>
#include <ArduinoJson.h>
using experimental::crypto::SHA256;
// 实例化一个对象 wifiMulti
ESP8266WiFiMulti wifiMulti;
WiFiClient espClient;
PubSubClient client(espClient);
void connetMqtt();
String signHmacSha256(String deviceId, String productKey, String deviceName, String deviceSecret, uint64_t timestamp);
void callback(char *topic, byte *payload, unsigned int length);
/*物联网配置参数*/
const String productKey = "####"; //productKey
const String deviceName = "####"; //deviceName
const String deviceSecret = "#####"; //deviceSecret
const String subTopic = "/" + productKey + "/" + deviceName + "/user/get"; //subTopic
const String pubTopic = "/" + productKey + "/" + deviceName + "/user/update";//pubTopic
const String regionId = "cn-shanghai"; //
const String serverUrl = productKey + ".iot-as-mqtt." + regionId + ".aliyuncs.com";//Url
const int serverPort = 1883; //阿里云
/*WIFI配置参数*/
const char wifiName[] = "####";//WIFI名
const char wifiPassword[] = "####";//密码
/*接收数据*/
DynamicJsonDocument doc(1024);
int fire=0; //火情信息
int mode=0,done=0;//mode 0:手动 1:自动 done:0 舵机复位 1 舵机执行
int Myclient=0;//客户端信息标志位
/*舵机配置*/
#define PWM_pin 4
Servo myservo;// create servo object
int pos = 0; //舵机角度
Ticker timer1;
void setup()
{
myservo.attach(PWM_pin);
myservo.write(0);
// put your setup code here, to run once:
Serial.begin(115200);
## 最后
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/850f08a564f86712bd74b1efc43830a6.png)
![img](https://img-blog.csdnimg.cn/img_convert/95a4d385c68365ae2accfacc0dfd5410.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/edd5b5d5ac071cbb224d1414914dffad.png)
![img](https://img-blog.csdnimg.cn/img_convert/c6325d078fbdd958712b4190c136ea4e.png)
![img](https://img-blog.csdnimg.cn/img_convert/cb9c58e9058a3b21798840efad634936.png)
![img](https://img-blog.csdnimg.cn/img_convert/617f713fde07c149fe7622b6570d2736.png)
![](https://img-blog.csdnimg.cn/img_convert/5d2918055ad27fe59f588387338a8284.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!
[外链图片转存中...(img-wZrSAgjm-1715555671602)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**
[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!