手机发送给stm32用哪个客户端

手机发送给stm32用哪个客户端,第1张

信息转换是Android上层客户端与STM32底层控制通信的关键,Android上层客户端无法直接通过串口和底层STM32进行通信。而且在串口通信中,很容易出现数据的丢失。且是非握手的协议,即发送端不知道接收端是否收到发送的信息。

技术实现要素:

本发明的目的是:解决Android上层客户端无法直接通过串口和底层STM32进行通信的技术问题。

本发明提供了一种Android上层客户端与STM32底层通信方法,来实现上层通过串口和底层进行通信,包括以下步骤:

步骤S100:Android上层客户端向STM32底层传送信息;包括以下子步骤:步骤S110:使用USB转RS232连接线将微型USB接口连接平板USB接口,用于平板供电和数据传输;普通USB接口接5v电源,为FTID模块和平板供电;RS232接口输出或接受RS232串口数据信息;步骤S120:RS232通用串口信息经过RS232电平转TTL电平模块,其中,采用max232芯片实现电平转换,最终被转换成TTL信息;步骤S130:TTL信息被底层STM32接收。

步骤S200:STM32底层向Android上层客户端传送信息;包括以下子步骤:步骤S210:STM32底层通过各种传感器采集信息;步骤S220:采集到的信息经过TTL转RS232模块转换成RS232通用串口信息进行传输;其中,采用max232芯片实现电平转换;步骤S230:传输的信息经过解码显示在安卓上层客户端。

本发明的另一个目的是:解决串口之间数据传输易丢失的问题。

优选的,该方法所传送的信息数据采用符号#,标记数据终止。

优选的,该方法所传送的信息数据采用符号$,标记数据开始。

本发明提供了一种模拟握手协议的数据传输格式,使得数据的传输更加可靠。

有益效果:本发明实现了Android上层客户端与STM32底层控制通信的信息转换,有效地解决了上层与底层不能直接通信的问题,而且较为实用,简单;同时通信中采用的数据传输格式,模拟了握手协议,使得传输更加的可靠。

附图说明

图1为本发明实施例提供的基于Android上层客户端与STM32底层通信方法的系统结构示意图。

图2为本发明实施例提供的Android上层客户端与STM32底层通信方法的数据包发送格式。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

本实施例是将Android上层客户端与STM32底层通信方法用于传感器数据传送。首先连接在STM32F103主控板上的各种传感器采集数据,经过主控板进行数据处理之后,通过无线串口模块发送数据到PC端。

PC端运行一个JAVA程序,程序定义串口接口,当无线数传开始工作后,串口就会打开,java程序就能接收来自串口的数据。接收到来自串口的数据后,程序通过Socket和安卓客户端连接上,打开输出流。再对接收到的数据进行处理和分发。处理时,进行数据解析,每一种数据都与相应的输出流对应,通过该输出流传输到安卓客户端。并且在Eclipse控制台输出接受的数据以检测是否传输出错。

之后打开安卓客户端,客户通过socket套接字和电脑相连,可以互相通信。客户端连上服务器后,接收来自服务器端的数据并作出相应判断和处理。客户端定义了5个线程,用来接受和处理不同种类的数据。同时将数据存储到数据库。

具体过程如下:请参照图1,安卓上层客户端与STM32底层控制通信,是通过STM32底层控制—电脑服务器端—安卓客户端实现的。这一模式实现较为方便,传输数据可靠。

STM32底层通过传感器获得环境的相关参数,其中包括温度、心率、湿度、烟雾浓度、是否摔倒等数据。然后将电脑和STM32底层控制通过无线数传连接,这些数据通过无线数传传到电脑串口上,等待电脑服务器端的接收。这些数据按照自定义的格式来传输。格式为“$No,data#”。No为0,表示湿度。No为1表示心率,No为2表示温度,No为3表示烟雾浓度,No为4表示是否摔倒。

电脑服务器端是用Ecl ipse写的Java程序。程序定义串口接口,当无线数传开始工作后,串口就会打开,java程序就能接收来自串口的数据。接收到来自串口的数据后,程序通过Socket和安卓客户端连接上,打开输出流。再对接收到的数据进行处理和分发。处理时,进行数据解析,每一种数据都与相应的输出流对应,通过该输出流传输到安卓客户端。并且在Eclipse控制台输出接受的数据以检测是否传输出错。

安卓客户端主要是用来提醒用户并向用户提供实时环境信息的。客户通过socket套接字和电脑相连,可以互相通信。客户端连上服务器后,就可接收来自服务器端的数据并作出相应判断和处理。客户端定义了5个线程,用来接受和处理不同种类的数据。客户端每个界面都有相应环境参数的正常范围值和相关介绍。种类0环境湿度、种类2环境温度,如果温湿度在正常范围,则用默认黑体字显示当前环境湿度。若不在正常的范围,则用红色字体提示用户注意。种类1是心率,若在正常范围,则用默认黑体字显示当前心率,弱不在正常范围,则用红字字体显示当前心率,并且提示是过高还是过低。过高则建议休息,过低则建议去检查身体。而且这些数据和发生的准确时间将会存储到数据库。种类3是烟雾浓度,若不正常,则讲烟雾浓度和时间记录到数据库,以便检查是否有过烟雾异常。种类4判断是否摔倒。若摔倒,则手机震动提示用户,而且将摔倒时间存储到数据库。这样一来,不仅能够实时显示当前环境状况,又能查询是否有过异常,如心跳、摔倒等,主要针对年轻人方便检查老年人一段时间内的异常状况。

图2中的数据格式为“$No,data#”。No为0,表示湿度。No为1表示心率,No为2表示温度,No为3表示烟雾浓度,No为4表示是否摔倒,整个通信过程,采用此数据格式来进行数据传输。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。STM32作为主控芯片,ESP8266作为外设,利用串口传递信息,通过机智云平台实现STM32与手机之间的数据传输!之所以选择机智云平台,是因为机智云平台相关配套的软件工具非常齐全,而且和正点合作,按照原子哥的精神推出有详细的基于STM32的教程,非常适合对云服务的认知处于一脸懵的人对其进行初步的探索STM32板子和ESP8266模块必不可少,下载机智云的DEMO APP,链接:机智云DEMO APP

(2)ESP8266的固件,链接:GAgent for ESP8266 04020034

(3)串口调试工具,链接:机智云串口调试助手 for win7\win8\win10 v2.3.5

(4)使用MCU代码自动生成工具,自动生成MCU代码,使用方法链接:MCU代码生成工具介绍

(5)这个链接包含乐鑫官方烧录工具,机智云串口调试工具,ESP8266固件,以及原子哥详细的机智云教程的PDF资料;提取码为:txs8:工具

步骤有四:

(1)注册机智云,创建新产品,使用MCU代码生成工具自动生成代码;

(2)刷ESP8266固件,并在机智云的串口助手上进行调试;

(3)将生成的代码移植到自己的工程;

(4)联网,调试;

1、创建产品,生成代码

1.1 创建产品简介

创建产品的过程中要弄明白几个关键要素之间的关系,Product Key,Product Secret,以及数据点所包含的内容!

首先Product Key和Product Secret可以理解为你所创建产品的登录账号和密码,后面自动生成的代码会把这个写进协议里面,这样的话后期把程序烧录进MCU入网之后,手机会通过这个获取你所创建的产品信息!

接下来以最简单的控制LED为例!

比如:实现的目标既可以在MCU开发板控制三个LED的亮灭,又可以在手机上控制,而且在开发板上控制时手机上可以显示当前LED的亮灭状态!那么你可以创建一个产品,然后产品里面有三个数据点!这三个数据点就是指这三个LED!然后三个LED中每一个又包含“亮”“灭”两种状态!

这里的产品就像是用MDK写STM32点亮发光二极管的时候要建立的工程类似!然后因为三个LED有且只有两种状态所以我们设置的数据包类型为布尔值!然后我们希望手机端和开发板上都可以控制所以数据读写类型设置为可写!

说白了就是采集传感器的数据然后通过蓝牙模块预留的接口输出。后面的智能手机是吓人的,你只需要吧数据推送到蓝牙模块就是了。这样看来就是数据采集和解析处理了。自己看相关配置和例程就可以解决的啊。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6693215.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存