DFEDU 发表于 2019-3-16 19:09:56

【mind+】多块主控板之间进行串口通讯的方法

我们在做项目中经常会遇到这些问题:
1、要接一堆传感器,结果主控板端口不够用了。
2、要接一堆传感器,但是各种电子模块之间有冲突,例如红外接收和声音播放冲突了,dht11和软串口冲突了,等等等等。
3、要使用大电流设备容易干扰传感器的数值,例如大功率电机影响到模拟输入的稳定性。
4、两个板子比较远要进行无线通讯,例如做一个蓝牙手柄控制小车。
5、要同时监听多个状态,单线程不够用。
等等。。。


这些情况下最简单的方法就是使用多个主控板,把不同的功能分开来运行,多个板子之间进行通讯即可。


那么问题来了,如何进行两个板子间通讯呢?我们选取常用的串口通讯为例。我们要实现的目的是:
一个UNO板采集dht11传感器数据,然后每隔几秒钟发送一次给另外一个UNO板解析出来并显示到屏幕上。


分析一下:
板A采集多个数据,发送给板B,使用串口通讯的话每次只能发送一个字节,因此数据要拆分发送。
硬件上:其中硬件连接就使用硬件串口TX和RX,注意交叉连接以及两个板子的GND要连接到一起。
软件上:需要板A发送多个数据,例如温度为20,湿度为60,如果发送2060,那么板B收到后不知道哪个是温度哪个是湿度,因此我们要规定一下发送顺序,例如发送1,20,2,60,这样B板收到1就知道接下来的是温度,收到2就知道接下来的是湿度数据了。


硬件连接形式如下:



左边为接收端,右边为发送端

板A程序如下:


板A定时发送数据,发送数据时采用1,数据1,2,数据2的形式方便板B收到之后可以知道多个数据分别是什么

板B程序如下:

板B接收到串口数据后根据1和2分别取出对应的值以显示出来

效果:


更多应用:
以上两个板子怎么实现连接可以使用多种方式就有多种效果了,关键是掌握通讯的过程和方法。
使用两个蓝牙串口透传模块,一个设为主机一个为从机,就可以轻松实现无线传输或者蓝牙小车等


使用一个物联网模块+XBEE组网模块或者microbit板子的无线广播功能,就可以把学校里面多个班级的噪音实时传输到物联网平台了

更多想法欢迎分享。。。




hnyzcj 发表于 2019-3-16 22:07:10

楼主就是不走寻常路

冀-闲庭信步 发表于 2019-3-21 11:28:44

hnyzcj 发表于 2019-3-16 22:07
楼主就是不走寻常路

请楼主解释下数据类型为什么不可以使用字母来表示呢?

gray6666 发表于 2019-3-25 09:43:30

思路独特,另辟蹊径,圈粉无数啊

冬天 发表于 2019-4-2 08:19:51

你好,请问mind+里的ddfr0299mp3模块怎么用,谢谢

bingxin05 发表于 2019-4-11 00:37:56

谢谢分享

赤星三春牛! 发表于 2022-1-21 22:39:41

楼主厉害!谢谢分享

KkQ1VrB7W776 发表于 2022-9-23 19:42:58

冬天 发表于 2019-4-2 08:19
你好,请问mind+里的ddfr0299mp3模块怎么用,谢谢

语文有问题,去论坛呀,mindli有MP3库在执行器哪里

蓝色微笑 发表于 2023-3-25 13:41:24

怎么接线是发送接发送,不是应该发送接接收么
页: [1]
查看完整版本: 【mind+】多块主控板之间进行串口通讯的方法