esp8266 php 接口,ESP8266与零知板使用SPI接口连接 提高传输速率

ESP8266与零知板使用SPI接口连接 提高传输速率

[复制链接]

我们在使用ESP8266模块的时候,大多数情况下使用时串口连接,这对于少量数据传输情况下比较方便,特别是对于AT指令使用非常方便,但是在传输数据量较大的情况下,使用串口就大大限制了传输速率,也使得8266模块没有发挥其强大的WIFI大量数据传输的功能;下面在零知-增强板上介绍使用SPI接口连接ESP8266模块,加快数据传输速率.

1、硬件

ESP8266

a26d678767e8b431ecd7a25f1936bdc5.gif

esp图.png (211.11 KB, 下载次数: 0)

2019-9-20 09:00 上传

零知增强板

a26d678767e8b431ecd7a25f1936bdc5.gif

增强板.jpg (46.54 KB, 下载次数: 0)

2019-9-20 09:01 上传

杜邦线

a26d678767e8b431ecd7a25f1936bdc5.gif

杜邦线.png (82.56 KB, 下载次数: 0)

2019-9-20 09:01 上传

2、硬件连接

硬件上只需要把零知增强板的SPI接口和WIFI模块的SPI接口对应连接即可,当然这里实际上是8266的HSPI引脚,连接方式比较简单:

a26d678767e8b431ecd7a25f1936bdc5.gif

spI.jpg (21.21 KB, 下载次数: 0)

2019-9-20 09:03 上传

当然还需要连接电源和地引脚到零知板的3.3和GND上。这里为了方便使用的是NodeMCU板,你也可以使用其他带SPI接口的esp8266模块

3、我们要使用SPI的方式进行通信,那么ESP8266模块和零知板都需要相应SPI相关代码,这里为了简便就直接使用相关的库进行操作了。

(1)ESP8266端代码

a26d678767e8b431ecd7a25f1936bdc5.gif

第一个压缩包.png (147.16 KB, 下载次数: 1)

2019-9-20 09:04 上传

(在评论区留下您的足迹和QQ邮箱,全部资料免费分享哦)

下载这个文件后,使用Arduino ESP8266方式下载到NodeMCU上,下载前配置如下:

a26d678767e8b431ecd7a25f1936bdc5.gif

配置图.jpg (41.1 KB, 下载次数: 0)

2019-9-20 09:05 上传

(2)零知增强板端代码编写

a26d678767e8b431ecd7a25f1936bdc5.gif

第二个压缩包.png (68.83 KB, 下载次数: 0)

2019-9-20 09:07 上传

(评论区留言,资料全部奉上)

首先下载这个库,并放置到零知平台对应软件库目录下,然后编写如下程序:

/*

WiFiSPI example: esp8266连接AP,UDP传输数据

电路连接:

1. On ESP8266 must be running (flashed) WiFiSPIESP application.

2. Connect the Arduino to the following pins on the esp8266:

ESP8266         |

GPIO    NodeMCU   Name  |   Lingzhi Enhanced Board

===================================

15       D8       SS   |   53

13       D7      MOSI  |   51

12       D6      MISO  |   50

14       D5      SCK   |   52

*/

#include "WiFiSpi.h"

#include "WiFiSpiUdp.h"

//热点名称

char ssid[] = "lingzhilab";

char pass[] = "lingzhilab.com";

unsigned int localPort = 8081;

char udpServerIP[] = "192.168.0.122";

int serverPort = 8081;

#define PACKET_SIZE 256

byte packetBuffer[PACKET_SIZE];

const int UDP_TIMEOUT = 2000;

WiFiSpiUdp udpClient;

void setup()

{

// initialize serial for debugging

Serial.begin(9600);

// initialize the ESP module

WiFiSpi.init();

// 检查是否连接了运行SPIWifi程序的8266模块

if (WiFiSpi.status() == WL_NO_SHIELD) {

Serial.println("WiFi shield not present");

// don't continue

while (true);

}

int status = WL_IDLE_STATUS;

// attempt to connect to WiFi network

while (status != WL_CONNECTED) {

Serial.print("Attempting to connect to WPA SSID: ");

Serial.println(ssid);

// Connect to WPA/WPA2 network

status = WiFiSpi.begin(ssid, pass);

}

// you're connected now, so print out the data

Serial.println("You're connected to the network");

udpClient.begin(localPort);

}

void loop()

{

sendPacket(udpServerIP); // send an packet to server

// wait for a reply for UDP_TIMEOUT miliseconds

unsigned long startMs = millis();

while (!udpClient.parsePacket() && (millis() - startMs) < UDP_TIMEOUT) {}

// when there should be a packet do not call parsePacket() once more, call available() instead

if (udpClient.available()) {

Serial.println("packet received:");

// We've received a packet, read the data from it into the buffer

udpClient.read(packetBuffer, PACKET_SIZE);

Serial.println((char*)packetBuffer);

Serial.println();

}

// wait ten seconds before asking for the time again

delay(1000);

}

// send an packet to server

void sendPacket(char *server)

{

// set all bytes in the buffer to 0

memset(packetBuffer, 0, PACKET_SIZE);

strcpy((char*)packetBuffer, "message from UDP client\r\n");

udpClient.beginPacket(server, serverPort);

udpClient.write(packetBuffer, PACKET_SIZE);

udpClient.endPacket();

}

上面的代码需要更改为自己的wifi名称和密码,并更改在第三步得到的UDP server的IP地址,验证完成后下载到零知-增强板

完整工程代码:

a26d678767e8b431ecd7a25f1936bdc5.gif

第三个压缩包.png (85.58 KB, 下载次数: 0)

2019-9-20 09:28 上传

(留下QQ邮箱,别忘记哦)

4、验证测试

我们下载好所有的代码并连接好硬件后,首先在手机上连接同一个Wifi,如上面的“lingzhilab”,然后打开网络调试助手工具,并开启UDP-Server模式,填写上面代码中一样的端口号8081,这里会分配到一个服务端地址,这个地址就需要填写到上面的

char udpServerIP[] = "192.168.0.122";

上面准备工作完成后,我们就可以看到在手机网络调试助手上接收到从零知板发来的信息,同时也可以发送信息给零知板,如下:

手机端网络调试助手接收到信息:

a26d678767e8b431ecd7a25f1936bdc5.gif

手机调试.jpg (43.12 KB, 下载次数: 0)

2019-9-20 09:30 上传

零知板接收到手机端发送来的信息:

a26d678767e8b431ecd7a25f1936bdc5.gif

手机调试2.jpg (58.07 KB, 下载次数: 0)

2019-9-20 09:31 上传

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值