综合项目Java如何实时接收嵌入式硬件采集的数据并转储到数据库
Java提供接口用来收集数据。
实现方法很多,就看你如何架构你的系统的,我这里说几个,供您参考
1)直接用java写个java服务端端,监听某个端口 就好
2)集成redis,使用其发布订阅功能;或者使用streams;
3)可以集成任何消息队列中间件,如rabbitmq等
解决方法
一般这种就是利用mqtt协议
1、硬件端采集数据 发送mqtt数据
2、Java服务器端接收mqtt数据,解析之后存储到数据库。
嵌入式硬件采集的数据上传,传输的话需要看带宽了,可以像其它答主说的,采用MQTT协议,这种对于带宽要求非常低。现在嵌入式设备基本上都有MQTT模块了,引入就可以使用。
1.首先搭建一个MQTT服务器平台,可以采用EMQX平台。
可以看这篇文章搭建一个MQTT消息转发平台。
https://blog.csdn.net/xanadw/article/details/124571590
2.服务器引入MyMqttClient类,Mybatis可以自动生成数据库表的mapper类(采用springboot+mybatis)
MyMqttClient类的github地址--https://github.com/eclipse/paho.mqtt.java
订阅嵌入式设备的主题,接收消息,并存储到数据库。
3.嵌入式设备
嵌入式设备只需要添加mqtt相关的.h和.c文件,当然还有网络相关的文件,直接调用,发布一个主题(与服务器主题订阅的主题一致)。地址--https://github.com/tobyjaffey/mqtt-http-server
方法好多种,我说一下我之前用过的吧。
把32的数据通过模块转到边缘路由(或者中转的进程),在这个进程中使用json构造,然后通过mqty发送到上位机,上位机负责数据入数据库。
当然你也可以尝试Java进程直接获取单片机数据,用串口转无线和无线转串口用该能实现(java程序没写过,但是qt程序我是实现了的)
你要通过嵌入式提供的接口去查数据,查到数据后解析成你要的数据结构,然后存到库里就可以了
首先要通过通讯端口采集到传感器的数据,一般是串口,通过读取串口数据,然后用正确的sql语句 insert到数据库就好了