项目源代码可访问我的 github:https://github.com/Spacider/Gather-and-store
如果觉得好的话请给个 star 哦~
树莓派
树莓派是一个固定的硬件系统,我们可以通过指令与板上的各式传感器(比如温度、湿度、二氧化碳传感器)进行交互。这里我们不去深究树莓派的实现方式(嵌入式方向,逃~),我们只需要理解如何与树莓派交互的手段和与我们通过与树莓派交互能获得什么?下面谈谈我的想法:
- 如何与树莓派进行交互?
测试环境采用的是 XML 文件的形式,发送端的 XML 如下所示:
<?xml version="1.0" encoding="UTF-8"?> <Message>
<SrcID>100</SrcID> //电脑端ID
<DstID>101</DstID> //树莓派ID
<DevID>2</DevID> //板子模块ID
<SensorAddress>16</SensorAddress> //板子上具体的传感器ID
<Counter>1</Counter> //操控的传感器个数
<Cmd>3</Cmd> //发送指令 3表示要接收数据 16表示要发送数据
<Status>1</Status> //状态 默认值1表示成功
</Message>
这些数据就是我们需要发送给树莓派系统的数据,通过这些数据,树莓派系统就可以找到对应的传感器并给我们反应相关的数据,比如上 XML 文件表示找到 ID 为 101 的树莓派,然后好到板子 2 上的 16 号传感器!
- 与树莓派交互能获得什么?
树莓派系统在获得找到传感器以后就会读取该传感器的数据,同样,他回拼接一个新的 XML 文件给你,只不过这个 XML 文件是带有传感器数据的!先看 XML 文件的内容:
<?xml version="1.0" encoding="UTF-8"?> <Message>
<SrcID>100</SrcID> //电脑端ID
<DstID>101</DstID> //树莓派ID
<DevID>2</DevID> //板子模块ID
<SensorAddress>0</SensorAddress>
<Counter>0</Counter>
<Cmd>3</Cmd> //发送的命令3表示接收数据16表示要发送数据
<Data>63a87aec02</Data> //16进制数据
<Status>1</Status> //状态 默认值1表示成功
</Message>
返回的 XML 文件大致相同,只不过 SensorAddress 和 Counter 属性为 0,因为我们不必关注板上的传感器和 ID,Data 字段所带给我们的就是采集到的数据,这个数据为 16 进制,之后我们会完整的介绍如何去拆分这个数据。
谈到项目
这个项目中我们采用的是 XML 文件的形式,项目可运行在真实树莓派系统上,这里我们采用测试环境,可以获得与真实环境相同的效果。
项目用到的技术(或者说你需要懂的基础):
1.Thread 的使用和理解。
2.XML 文件解析(dom4j 或其他解析技术)。
3.各种流的使用和理解。
4.log4j 的使用。
5.jdbc 的使用和理解。
项目的模块设计:
随着稍微的学习我们会对各个模块进行讲解和代码编写。
当你准备好了,就开始我们的项目实践吧!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于