基于STM32和SIM900A的监测系统设计(上位机基于labVIEW开发,数据库采用MySQL)
时间:2022-10-02 04:00:01
1. 整体方案
首先,简要说明开发目的:本开发希望实现单片机采集信号,无线传输到上位机,显示采集信息并存储。
思路:
- 利用STM32单片机通过串口和SIM900A通信无线模块;
- 利用STM32单片机控制SIM900A使用服务器TCP/IP建立连接,通过IP将数据发送到服务器的地址和端口号;
- 基于上位机软件TCP/IP协议接收服务器传输的数据,输的数据MySQL数据库。
2. 所用硬件
-
使用单片机STM32F103C8T6最小系统板
-
使用无线模块SIM900A模块
-
CP2102模块 USB TO TTL,USB转串口模块UART
3. 调试步骤
写在前面:在开发过程中,从CSDN社区博客学到了很多经验。我在学习过程中努力整理学习资源,希望对大家有所帮助。请按照以下步骤学习调试,然后看第四部分的项目实现。信号收集和使用STM32单片机的ADC关于实现功能STM这里就不赘述32单片机的学习了。强烈建议根据海创电子学习,这里给B站学习网站。
https://www.bilibili.com/video/BV1N7411x7Yk?share_source=copy_web
3.1 STM32控制SIM900A的实现方法
转自:
https://blog.csdn.net/andylauren/article/details/52251243
本文介绍了使用STM32控制SIM900A分别阐述了硬件和软件的思路,实现了短信的收发和数据的无线传输。思路很清晰,请仔细阅读。
3.2 SIM900A调试:GPRS建立TCP连接到服务器进行数据传输
转自:
https://blog.csdn.net/Forever1715/article/details/81020052
SIM900A模块学习资料
链接:https://pan.baidu.com/s/13DPQsht5xB8YXFDePlXTfA
提取码:zkyi
请阅读文件夹:12,调试教程 必看资料
阅读顺序:
- UNV-SIM800-V3.92用户手册-V1.0.pdf
- AN0021 SIM800-SIM900系列开发板调试.pdf
- AN0023-SIM800-sim900系类模块GPRS部分调试笔记.pdf
提供服务器地址,提供服务器地址IP与端口,三分钟内不连接就会失效,但刷新页面自动更新。
http://tt.ai-thinker.com:8000/ttcloud
服务器的功能:使用TCP客户端方的客户端TCP所有客户端和页面都发送服务器TCP将服务器数据转发到其他客户端。
3.3 LabVIEW调试:LabVIEW建立TCP连接到服务器进行数据传输
转自:
https://blog.csdn.net/weixin_28972031/article/details/113369003
本文中的程序创建了两个过程:生产者和消费者:生产者过程TCP如果有数据,将数据插入队列;消费者从队列中读取数据,延迟200ms然后在字符串控件中显示数据和当前时间连接。动图中的串口转网络助手可使用3.替换2节测试服务器。
根据上述链接的解释,我建立了它 LabVIEW程序,供参考:
链接:https://pan.baidu.com/s/1okE1vdQaw13E7FhgUgc__Q
提取码:6zja
3.4 数据库调试:创建MySQL与labVIEW连接
转自:
https://blog.csdn.net/weixin_42576925/article/details/80967392
博主对这篇文章非常用心,请不要忘记表扬他,本文详细介绍了创作MySQL与labVIEW连接过程:
- 如何安装MySQL
- 如何构建数据源
- 如何装Navicat for MySQL
- 如何安装labVIEW(32位和64位略有区别)
- 如何重新配置数据源?ODBC(仅32位labVIEW需要)
- 如何安装labSQL实现工具包和存取数据
4. 项目实现
4.1 准备工作
需要准备两台电脑,一台连接到所有硬件部件,另一台打开LabVIEW程序上位机作为远程监控。
用电脑实现效果其实是一样的,但并没有反映远程,哈哈!
请参考数据库配置3.四节,我是按照它的流程配置的。
4.2 硬件接线
传感器模拟信号输出端 --> STM32的PA0,
串口2(与SIM900A通信):
STM32的PA2(TXD)–> SIM900A的RXD,
STM32的PA3(RXD) --> SIM900A的TXD,
STM32的VDD_3 --> SIM900A的V_MCU,
STM32的VSS_3 --> SIM900A的GND。
串口3(与计算机通信):
STM32的PB10(TXD)–> CP2102的RXD,
STM32的PB11(RXD) --> CP2102的TXD。
之所以在这里使用串口3,是因为外部显示屏成本高,功耗大,同时学习3.2节SIM900A调试时买的CP2102模块,因此在进行STM编写32程序时,使用串口3和计算机通信显示SIM900A注册到GPRS网络信息。
(程序其实可以进一步优化,不使用串口3,而是将SIM900A注册到GPRS网络的信息经安信可透传云服务器发送至LabVIEW上位机,放LabVIEW优化程序,分别SIM900A注册到GPRS采集信号的网络信息和信息。
4.3 程序
请自行下载:
链接:https://pan.baidu.com/s/1HyqM7hCN1TMJ_fdjmxFkkg
提取码:z25c
如果这篇文章对你有帮助,请喜欢它。请注明转载和复制的来源。你的支持是我不断更新的动力。玫瑰手有余香!