esp01s作为ap,收发数据
1.首先要下载ardunio IDE,安装;
2.然后就是接线,由于要下载进去,把gpio0加接地,en脚接3.3,rx接tx,tx接rx,rst脚接3.3,gpio2接3.3;
3.安装开发库,参考这位博主:https://blog.csdn.net/qq_24269643/article/details/87574021
4.tcp的代码
#include <ESP8266WiFi.h>WiFiServer server(8080);
WiFiClient client;void setup() {pinMode(LED_BUILTIN, OUTPUT);Serial.begin ( 115200 );//Serial.println("");// 设置内网IPAddress softLocal(192,168,4,1); // 1 设置内网WIFI IP地址IPAddress softGateway(192,168,4,1);IPAddress softSubnet(255,255,255,0);WiFi.softAPConfig(softLocal, softGateway, softSubnet);String apName = ("ESP8266_"+(String)ESP.getChipId()); // 2 设置WIFI名称const char *softAPName = apName.c_str();WiFi.softAP(softAPName, "12345678"); // 3创建wifi 名称 +密码 adminadmin//IPAddress myIP = WiFi.softAPIP(); // 4输出创建的WIFI IP地址//Serial.print("AP IP address: "); //Serial.println(myIP);//Serial.print("softAPName: "); // 5输出WIFI 名称//Serial.println(apName);server.begin();
}void loop() {client = server.available();if (client){while (client.connected()){if(client.available()){size_t count = client.available();uint8_t sbuf[count];client.readBytes(sbuf, count);Serial.write(sbuf, count);} if(Serial.available()) {size_t count = Serial.available();uint8_t sbuf[count];Serial.readBytes(sbuf, count);client.write(sbuf, count);}delay(5);}delay(10);client.stop();}digitalWrite(LED_BUILTIN, LOW);delay(250);digitalWrite(LED_BUILTIN, HIGH);delay(250);
}
程序:在没有连接连上时,led会闪,连上之后就灭了。
5.点击上传,等待完成,之后把gpio0脚悬空,重新上电,就可以用啦。主要是用来把我的小四轴数据传给手机。
凉了一年,又开始搞小四轴了,之前半路吃灰了,上面的tcp通信,实际用的时候,在安卓端和stm32端都出现数据断开了,后面改成udp通信,有一点点改善。stm32接收也要改,之前用的是串口空闲+dma的,老是断开两半过来,,看来还是老实点一个个接。
上个辣鸡四轴的图
这四轴中间改版了几次,还是有bug,电机的供电走线走细,导致转速一上去就挂,后面用几根线直接连电源口用着先。传感器那里,6050还好能用,bmp280感觉是走线或者画的时候引脚出错了,焊上去一丢丢反应都无有。不说了,先上现在的esp01s的代码,有一点点遗憾,串口和udp那里,之后udp那里有东西收到之后,才能获取到udp的ip和端口,也就是说如果udp那边没收到东西,我串口发东西就不知道发给谁了,,
esp8266开的ap,不知道怎么查连入设备的ip,后面再想想办法。
上代码了
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>WiFiUDP Udp;
char receivebuf[255];
char srBuf[255];
unsigned int localUdpPort = 8860; int sLen = 0;
int packetSize = 0;void setup() {// put your setup code here, to run once:Serial.begin ( 115200 );//Serial.println("");// 设置内网IPAddress softLocal(192,168,4,1); // 1 设置内网WIFI IP地址IPAddress softGateway(192,168,4,1);IPAddress softSubnet(255,255,255,0);WiFi.softAPConfig(softLocal, softGateway, softSubnet);String apName = ("ESP8266_SZ"); // 2 设置WIFI名称const char *softAPName = apName.c_str();WiFi.softAP(softAPName, "12345678"); // 3创建wifi 名称 +密码 adminadminUdp.begin(localUdpPort);
}void loop() {// put your main code here, to run repeatedly:packetSize = Udp.parsePacket();if (packetSize) {int len = Udp.read(receivebuf, 255);if (len > 0) { Serial.write(receivebuf,len);}}sLen = Serial.available();if(sLen){Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());while(sLen){Serial.read(srBuf,sLen);Udp.write(srBuf,sLen);delay(1);sLen = Serial.available();}Udp.endPacket();}
}
改进在这里,在网络调试助手测试,之前会分开一段一段发,这样子就连到一起了,只要的想法是,看延时1毫秒后还有无有数据进来,无有就发了。
sLen = Serial.available();if(sLen){Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());while(sLen){Serial.read(srBuf,sLen);Udp.write(srBuf,sLen);delay(1);sLen = Serial.available();}Udp.endPacket();}
esp01s作为ap,收发数据相关推荐
- STM32F103C8T6+ESP-01S+MQTT服务器实现数据上传和接收(一)
STM32F103C8T6+ESP-01S+MQTT服务器实现数据的上传和接收(一) 前言 ESP-01S固件烧录 主要AT指令 手写简单的库函数 常量定义 全局变量声明 串口初始化 关闭AT指令回显 ...
- STM32笔记---USART3配置及收发数据
前段时间某个项目需要多串口收发数据,因此尝试了一番,参考了正点原子官方例程,现在记录下 代码: USART3.c中先添加头文件: #include "sys.h" #include ...
- socket通过多网卡收发数据
1. 通过bind机制, socket必须要调用bind才能发送tcp包. bind调用时需要一个ip地址.一般一台机器的多网口都要配置不同的ip地址(路由器除外,路由器是一个网桥设备,只是负 ...
- can总线配置读入是什么意思_STM32学习笔记—CAN总线收发数据常见问题分析
CAN,Controller Area Network(控制器局域网络),在汽车电子.工业控制领域的应用比较多,通常用于局域组网. 这是第9篇学习分享文章,<STM32学习笔记>之CAN总 ...
- linux 网络编程:使用两线程实现socket同时收发数据
http://blog.csdn.net/li_wen01/article/details/52665505 工作中最近有使用到socket 向客户端同时发送和接收数据,因为是嵌入式linux设备,且 ...
- linux网络编程:使用多进程实现socket同时收发数据
转载:http://blog.csdn.net/li_wen01/article/details/52685844 前面已讲过使用一个进程实现服务端和客户端P2P通信的实例,但是它只能同时处理一个客户 ...
- STM32f407与STM32F103 串口采用DMA收发数据配置方法的异同
最近有个项目需要用到STM32F407ZET6这款芯片,其中有一个串口收发数据的应用.因为之前有用过STMF32F103ZET6通过DMA收发数据的方案,所以我打算移植之前的代码实现这个功能,STM3 ...
- Linux内核分析 - 网络[一]:收发数据包的调用
什么是NAPI NAPI是linux一套最新的处理网口数据的API,linux 2.5引入的,所以很多驱动并不支持这种操作方式.简单来说,NAPI是综合中断方式与轮询方式的技术.数据量很低与很高时,N ...
- 485通信自动收发数据实现
485通信是工业控制中很常用的一种通信方式,但是编写通信程序的时候需要在代码中手动控制接收和发送,如果接收和发送逻辑没处理好往往会造成通信故障,实现起来比较麻烦.那能不能让485通信是接收和发送数据可 ...
- php socket发数据打印,PHP向socket服务器收发数据的方法
这篇文章主要介绍了PHP向socket服务器收发数据的方法,分析了socket收发数据的方法,并介绍了socket常用函数,需要的朋友可以参考下 本文实例讲述了PHP向socket服务器收发数据的方法 ...
最新文章
- cruzer php sandisk 闪迪u盘量产工具_SanDisk Cruzer Micro下载
- 应对百度算法调整的三大优化技巧
- 聊城高级财经计算机应用升学,聊城高级财经职业学校成功承办省级职业技能大赛赛项...
- python pil保存图片_python爬取百度图片并保存到本地
- Android之使用IDA Pro静态分析so文件
- Java启动参数与内存调优一些学习笔记
- 408. Valid Word Abbreviation
- java callable接口_Java多线程之Callable接口的实现有返回值的线程
- tensorflow越跑越慢_tensorflow sess.run()越来越慢的原因分析及其解决方法
- ios 扫码枪外设 键盘模式_多平台连接:雷柏XK100蓝牙键盘评测
- 可拖动jquery插件
- matlab求数的因子,matlab中因子分析的函数factoran如何使用??
- 如何做个bat文件改变系统时间格式_老板发来一份表格名单,100个人按姓名建文件夹,同事五秒就完成...
- 二、ReactDOM.render()
- 【Spring-IOC】依赖注入
- ROS 安装教程Ubuntu16.04(2022年最新)
- 美国人如何看待超自然?
- 包看包会的变量与数据类型
- [题单]多校补题 2017-2012
- Java久居第一是因为这些