# 51SCM_Mqtt_GraduationProject
51单片机采集环境数据并使用MQTT协议上传至阿里云,阿里云使用AMQP消息队列下发至业务服务器,在前端页面展示数据
## 配置
|硬件|硬件型号|
|---|---|
|单片机|IAP15w4k58s4|
|OLED显示屏|128x64 IIC|
|WiFi|ESP8266|
## 头文件列表
[include](/include)
## 文件目录结构
```
.
|-- KeyAndOled 按键及OLED的测试
| |-- KOLED.uvgui.zghbq
| |-- KOLED.uvopt
| |-- KOLED.uvproj
| |-- Listings
| |-- Objects
| |-- STARTUP.A51
| |-- include
| `-- main.c
|-- MQTTClient C语言实现的MQTT客户端
| |-- ClassDiagram.cd
| |-- MQTTClient.sln
| |-- MQTTClient.vcxproj
| |-- MQTTClient.vcxproj.filters
| |-- MQTTClient.vcxproj.user
| |-- README.md
| |-- esp.h
| |-- main.c
| |-- mqtt.c
| |-- mqtt.h
| `-- x64
|-- README.md
|-- Uart1test 对UART1串口通信的测试
| |-- Listings
| |-- Objects
| |-- README.md
| |-- STARTUP.A51
| |-- esptest.uvgui.zghbq
| |-- esptest.uvopt
| |-- esptest.uvproj
| |-- include
| `-- main.c
|-- amqp-java 来自阿里云iot平台的AMQP客户端的Java版本的demo
| |-- lib
| |-- pom.xml
| |-- src
| `-- target
|-- amqpSpring Java Spring业务服务器
| |-- HELP.md
| |-- amqpSpring.iml
| |-- mvnw
| |-- mvnw.cmd
| |-- pom.xml
| |-- src
| | |-- main
| | | |-- java
| | | | `-- com
| | | | `-- example
| | | | `-- amqpspring
| | | | |-- AmqpClient.java
| | | | |-- AmqpFullSQL.java
| | | | |-- AmqpMessage.java
| | | | |-- AmqpMessageDTO.java
| | | | |-- AmqpSpringApplication.java
| | | | |-- MessageOfTopicController.java
| | | | |-- PageAmqpMessageRepository.java
| | | | |-- SaveAmqpMessageRepository.java
| | | | |-- TopicAmqpMessageRepository.java
| | | | `-- TopicsController.java
| | | `-- resources
| | | |-- application.properties
| | | |-- static
| | | | |-- anewdemo.html
| | | | |-- css
| | | | | `-- aDemo.css
| | | | |-- index.html
| | | | |-- js
| | | | | `-- topics.js
| | | | `-- topics.html
| | | `-- templates
| | `-- test
| | `-- java
| | `-- com
| | `-- example
| | `-- amqpspring
| | `-- AmqpSpringApplicationTests.java
| `-- target
|-- doc 使用pandoc生成论文的过程文档
|-- esp ESP8266测试模块
| |-- Listings
| |-- Objects
| |-- STARTUP.A51
| |-- esp.uvgui.zghbq
| |-- esp.uvopt
| |-- esp.uvproj
| |-- include
| `-- main.c
|-- esptest 同样也是ESP8266测试模块
| |-- Listings
| |-- Objects
| |-- STARTUP.A51
| |-- esptest.uvgui.zghbq
| |-- esptest.uvopt
| |-- esptest.uvproj
| |-- include
| `-- main.c
|-- include 头文件
|-- mqttstc 最终烧录至单片机的程序
| |-- Listings
| |-- Objects
| |-- STARTUP.A51
| |-- include
| |-- main.c
| |-- mqttstc.uvgui.zghbq
| |-- mqttstc.uvopt
| `-- mqttstc.uvproj
`-- uml 过程中使用的UML图,使用plantuml绘制
```
## 使用方法
* 注册阿里云iot平台账户,按照其说明文档添加产品及设备,在设备界面获取MQTT连接参数
![新建的阿里云iot产品界面](img/iotproduct.jpg)
![新建的阿里云iot设备界面](img/iotdevice.jpg)
* 使用visual studio打开 `MQTTClient` 文件夹,使用获得的MQTT连接参数修改`main.c` 的阿里云相关配置,仅需要修改 `三元组` 、 `加密方式` 、 `密码`
* 按照需要,修改服务器地址
* 之后的对于MQTTClient中代码的修改可能会造成无法预料的bug,请自行查询搜索引擎解答,或发送邮件至`zghbqbc@gmail.com`。MQTTClient文件中包含了众多对C语言指针的使用,请至少对C语言的数组、函数指针等知识有一定的了解
* 修改 `main.c` 文件中 `MQTTSendData` 函数中 `printf` 内容,让其输出十六进制数字和空格与逗号,修改后的代码如下:
```
int MQTTSendData(const char* data, unsigned int length)
{
///* 发送数据到服务端 */
send(sock, data, length, 0);
//{
// return 1;
//}
//return 0;
unsigned char temp = 0;
printf("\n\nlength is %d\n\n", length);
while (length--)
{
temp = *data++;
printf("0x%02X ,", temp);
}
return 1;
}
```
* 运行 `main.c` 文件,结果如下图所示,这里需要得到的是阿里云iot的IP地址、MQTT的CONNECT报文及PUBLISH报文的十六进制内容
* 其实不需要 `MQTTClient` 项目,仅需要使用 `MQTT.fx` 工具和网络抓包工具也能得到同样的数据
* 这一步运行完毕后可在阿里云iot平台日志中看到有设备上下线记录,证明上述步骤圆满完成,若无上下线记录,请排查是否正确的修改了阿里云连接参数
* 运行时可能会被杀毒软件报错,请关闭杀毒软件,或将相应的文件转移至信任区
![MQTTClient运行后的结果](img/MQTTClient.jpg)
* 使用 `Keil` 打开 `mqttstc` 项目,修改 `main.c` 文件中 `初始化esp8266` 的相关参数,第一个为WiFi的名称,第二个为WiFi密码,第三个为上方获取的阿里云iot的IP地址,端口号无需修改
* 修改 `esp.c` 中数组 `MQTTConnectData[]`,`MQTTPublishData` 的内容
* 编译生成可执行文件,烧录至单片机,启动单片机,可在阿里云iot平台的日志中查询到相关设备上线记录,证明设备上线成功
* 若未上线,请按照如下步骤检查:
1. 打开宏晶公司烧录软件的串口通信界面,打开接收数据,重启单片机,若能正常接收数据则证明UART串口无故障,按照串口的输出日志可做初步检查
2. 打开路由器后台界面,检查是否有ESP设备上线
3. 使用模拟TCP通信软件(如Serial Port Utility)检查网络通信是否有故障,这一步需要去修改单片机程序中的目的IP地址
4. 发邮件给我
* 使用虚拟机或服务器或在物理机上创建一个MySQL数据库,以供之后的步骤使用
* 这一步需要做到可以通过navicat等数据库软件连接至MySQL数据库
* 使用IDEA打开 `amqpSpring` 项目,修改配置文件,打开项目时注意保持网络畅通,以便项目自动下载安装相应的库
* 修改 `application.properties` 的内容,以便Java项目连接数据库
* 根据注释,修改 `AmqpClient` 类中相关的参数,此处的修改可以参考[阿里云物联网平台的帮助文档](https://help.aliyun.com/document_detail/143601.htm),这个类实际就是将帮助文档中的示例的Java demo修改而来
* 启动 `AmqpSpringApplication` ,正常情况下可在控制台查看到相应的日志输出
![日志输出](img/amqpspringlog.jpg)
* 点击进入 `anewdemo.html` 页面,启动该页面,可访问浏览器前端
## UART1端口输出测试
### 使用
1. 使用 keil51 打开 *.uvproj 文件
2. 导入 include 文件夹 及相应的 .c 文件 <br> ***仅导入 include 文件夹而不导入 .c 文件是无法编译的***
3. 若遇到 `main.c(24): error C267: 'Uart1SendData': requires ANSI-style prototype` 之类的定义错误。检查相应的 .h 文件中是否声明了相应的函数
4. 烧录
## OLED屏和按键K1 ~ K6
### 使用
1. 使用 keil51 打开 *.uvproj 文件
2. 导入 include 文件夹 及相应的 .c 文件 <br> ***仅导入 include 文件夹而不导入 .c 文件是无法编译的***
3. 烧录
4. 若OLED屏不显示,检查OLED.h文件(或 main.c 文件)中是否对OLED屏使用到的两个时钟GPIO端口进行初始化
```
GPIO_InitTypeDef GPIO_InitStructure; //结构定义
//推挽输出
GPIO_InitStruc
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【作品名称】:基于51单片机采集环境数据并使用MQTT协议上传至阿里云 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 1单片机采集环境数据并使用MQTT协议上传至阿里云,阿里云使用AMQP消息队列下发至业务服务器,在前端页面展示数据 配置 硬件 硬件型号 单片机 IAP15w4k58s4 OLED显示屏 128x64 IIC WiFi ESP8266 使用visual studio打开 MQTTClient 文件夹,使用获得的MQTT连接参数修改main.c 的阿里云相关配置,仅需要修改 三元组 、 加密方式 、 密码 按照需要,修改服务器地址 之后的对于MQTTClient中代码的修改可能会造成无法预料的bug,请自行查询搜索引擎解答,或发送邮件至zghbqbc@gmail.com。MQTTClient文件中包含了众多对C语言指针的使用,请至少对C语言的数组、函数指针等知识有一定的了解 修改 main.c 文件中 MQTTSendData 函数中 printf 内容,让其输出十
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/EXE.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 381 条
- 1
- 2
- 3
- 4
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/4530fde4ec954012a1ac6bd3893fbfc9_weixin_44010641.jpg!1)
MarcoPage
- 粉丝: 3479
- 资源: 4401
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- Hadoop 2.6 版本API压缩包
- "数据库管理系统实战与实现细节"
- Adobe Flash Player 29.0.0.140 for Internet Explorer
- "AndyTiming:轻便时序图绘制工具"
- 汇编语言编程入门与进阶指南
- 架构实施与实践交流大会纪要
- 本设计以STM32F1单片机为控制核心,设计并制作了简易多功能液体容器.设计主要包括单片机控制模块、电源模块、超声波测距模块、T
- HexView(Vector)版本的1.12.05
- aircrack-ng的1.0rc1版本,适用于Windows系统
- 为开发人员打造的低代码开发平台,将复杂的工作简单化、重复的工作自动化,提高质量、效率、可维护性
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)