mixly-一种扩展esp8266 IO口的办法

前言

在做一些项目的时候,我们经常会遇到IO口不够用的情况,那么我们该如何扩展IO口呢,我的想法是再增加一块主控板作为附属,比如以esp32作为主控,arduino nano作为附属,附属的nano通过IO口获取各种数据,再通过串口和esp8266进行连接,并通过串口将数据发送给esp32,最后esp32获取到了数据之后进行解析,这样我们只需要二个IO口就可以达到多个IO口的效果。

一、所需器材

1.esp32 nodemcu
在这里插入图片描述

2.arduino nano
在这里插入图片描述

  1. DHT11
    在这里插入图片描述

二、接线

arduino nano DHT11
VCC VCC
GND GND
D2 OUT
esp32 arduino nano
GPIO2 D4
GPIO4 D3

在这个接线中,esp32的GPIO2引脚作为RX,GPIO4作为TX,arduino nano的D3引脚做为RX,D4引脚作为TX,这里的引脚都可以根据自己的需要改,并且我在使用时发现esp32的GPIO2在下载时不能接东西,不然会下载失败。

三、程序

arduino nano端程序
在这里插入图片描述
首先初始化一个软串口,RX为D3,TX为D4,然后使用软串口将温湿度数据以特定的格式发送给esp32,格式如下
*wendu25.10shidu76.00#
使用这个格式的原因是为了方便解析,也可以换成其他的格式,第二个打印的
作用是打印发送的数据,用于调试,方便DEBUG,然后延时1S,延时1S的作用是避免乱码,如果一直发送的话会造成接收端的数据丢失和乱码
串口监视器的数据如下
在这里插入图片描述
esp32端程序
在这里插入图片描述
首先blynk初始化,然后初始化GPIO2引脚作为RX,GPIO4引脚作为TX,然后使用blynk定时器,每隔1S来读取数据,并且解析数据,将数据发送到手机端的blynkAPP上。
esp32串口监视器数据
在这里插入图片描述
手机APP端效果图
在这里插入图片描述

四、总结

理论上说,假设作为附属的MCU有40个可用引脚,那么就相当于主控MCU用2个引脚可用完成40个引脚的事情,并且这个还可以级联,比如主控A用2个引脚可以换主控B的40个引脚,然后B的其他38个引脚,每2个引脚又可以换主控C的40个引脚,这样就不用担心IO口不够用了。

猜你喜欢

转载自blog.csdn.net/moshanghuaw/article/details/116406069