JAVA 实践项目 --- 树莓派信息自动化采集后入库项目 (一)

本贴最后更新于 2496 天前,其中的信息可能已经渤澥桑田

项目源代码可访问我的 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 的使用和理解。

项目的模块设计:
imagepng

随着稍微的学习我们会对各个模块进行讲解和代码编写。

当你准备好了,就开始我们的项目实践吧!

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3203 引用 • 8217 回帖 • 1 关注
  • 实践项目
    6 引用

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 34 关注
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 451 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    240 引用 • 224 回帖
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    52 引用 • 228 回帖
  • 印象笔记
    3 引用 • 16 回帖 • 1 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 14 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    32 引用 • 100 回帖 • 1 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    119 引用 • 323 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 184 关注
  • 创业

    你比 99% 的人都优秀么?

    81 引用 • 1395 回帖 • 2 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 808 关注
  • CodeMirror
    2 引用 • 17 回帖 • 177 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 89 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 618 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    89 引用 • 150 回帖
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 5 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 563 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 1 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 1 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 413 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 709 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖 • 3 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    29 引用 • 230 回帖 • 124 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 832 关注
  • Anytype
    3 引用 • 31 回帖 • 33 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 2 关注
  • OneNote
    1 引用 • 3 回帖 • 2 关注