Arduino---ESP8266 WIFI模块
一:Arduino安装ESP8266
https://www.arduino.cn/thread-76029-1-1.html(内容截图如下:最简单方法)
选用NodeMCU .0即可
二:简单测试
void setup() {
// put your setup code here, to run once:
pinMode(LED_BUILTIN,OUTPUT); //测试灯
} void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LED_BUILTIN,LOW);
delay();
digitalWrite(LED_BUILTIN,HIGH);
delay();
}
LED_BUILTIN中builtin是内建意思,为内建LED灯,可直接用于测试
三:引脚对应
引脚编号 | 对应数字 |
D0 | 16 |
D1 | 5 |
D2 | 4 |
D3 | 0 |
D4 | 2 |
D5 | 14 |
D6 | 12 |
D7 | 13 |
D8 | 15 |
D9 | 3 |
D10 | 1 |
四:简单使用案例:无线控制LED开关
#include <ESP8266WiFi.h> //引入模块 #ifndef STASSID
#define STASSID "Tenda_064E38"
#define STAPSK "YM123456789"
#endif const char* ssid = STASSID;
const char* password = STAPSK; // Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80); //开启板子的80端口 void setup() {
//https://blog.csdn.net/rong81590509/article/details/77010216
//在波特率为9600~38400之间,波特率的增长倍数与传输速率的增长倍数基本相同,但是在波特率大于192000以上时,传输速率基本没有任何提高。
//从115200开始实际与理论相差较大 11.25kb/s
//不要9600,因为9600下速率太慢0.9kb/s
Serial.begin(115200); //开启电脑的序列埠,设置为115200 // 测试D4接口
pinMode(, OUTPUT);
digitalWrite(, ); //设置为低电压 //告诉电脑连接到那个wifi了
Serial.println();
Serial.println();
Serial.print(F("Connecting to "));
Serial.println(ssid); //开始连接
WiFi.mode(WIFI_STA);
//WIFI模块的STA模式和AP模式有什么区别:AP是接入点,可以让用户接入。STA--Station无线终端,不接受无线接入,可以连接到无线AP,无线网卡工作在STA下
WiFi.begin(ssid, password); //开启WIFI //若是没有连接上:则一直打印....
while (WiFi.status() != WL_CONNECTED) {
delay();
Serial.print(F("."));
} //打印连线成功
Serial.println();
Serial.println(F("WiFi connected")); //开启伺服器
server.begin();
Serial.println(F("Server started")); //告诉电脑自己的IP
Serial.println(WiFi.localIP());
} void loop() {
//每次循环进入:都需要确认本板子是否有效(是否连上AP),成功则返回客户端连接自己的句柄
WiFiClient client = server.available();
if (!client) {
return;
} //成功就打印成功
Serial.println(F("new client"));
//若是客户端一直连接没有信息传入,则等待 //设置客户端连接超时时间。若在指定时间连接不上的为超时
client.setTimeout(); // default is 1000
//看客户端是否发送信息,不然一直等待
while(!client.available())
{
delay(1);
} //读取第一行\r为换行符--->为请求
String req = client.readStringUntil('\r');
Serial.println(F("request: "));
Serial.println(req);
//client.flush(); //刷新流 // Match the request
int val;
if (req.indexOf(F("/gpio/0")) != -) { //若是匹配到/gpio/0
val = ; //关闭
} else if (req.indexOf(F("/gpio/1")) != -) { //若是匹配到/gpio/1
val = ; //打开
} else {
Serial.println(F("invalid request"));
val = digitalRead(); //若是无用,则读取当前状态不变
} //修改状态
digitalWrite(, val); //向客户端句柄写入数据
client.print(F("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now "));
client.print((val) ? F("high") : F("low"));
client.print(F("<br><br>Click <a href='http://"));
client.print(WiFi.localIP());
client.print(F("/gpio/1'>here</a> to switch LED GPIO on, or <a href='http://"));
client.print(WiFi.localIP());
client.print(F("/gpio/0'>here</a> to switch LED GPIO off.</html>")); //客户端断开连接(对象释放了)
Serial.println(F("Disconnecting from client"));
}
本程序为单进程,不支持同步处理连接,易出现客户端死等。待改进
Arduino---ESP8266 WIFI模块的更多相关文章
- ARDUINO MEGA2560 经过ESP8266 WIFI模块上传温湿度数据到 OneNet 服务器
简述 原来写了一个C++的wifi库但是发现用c++ arduino这小身板有点扛不住,代码比较大,使用String类型数据处理速度慢,而且很容易无缘无故跑飞.而且封装成库后使用还需要修改arduin ...
- 用ESP8266 WIFI模块连接服务器,并实现与服务器相互通讯
最近在做一个智能锁的项目,该项目要求实现在任何地方(当然是要有网络的)可以在手机上用APP开锁.而我负责的部分主要是实现底层与服务器连接,并且要能相互通讯.考虑了很多问题,最终选择了用ESP8266 ...
- ESP8266 wifi 模块配置,Wechat+APP控制实现
首先刷入安信可的AiCloud 2.0 SDK文件,AiCloud 2.0具体信息参见AiCloud 1.0 和AiCloud 2.0对比 APP见如下二维码下载. 1.安信可AiCloud 2.0 ...
- 【stm32】基于hal库使用野火指南者esp8266 WIFI模块进行TCP传输
UART.c #include "stm32f1xx_it.h" #include "LED.h" #include "UART.h" #i ...
- ESP8266串口模块的基本使用【转】
本文转载自:http://www.shaoguoji.cn/2017/01/15/ESP8266-usage/ ESP8266是一款超低功耗的UART-WiFi 透传模块,拥有业内极富竞争力的封装尺寸 ...
- Arduino 基于 ESP8266 配置WIFI模块
Arduino 基于 ESP8266 配置WIFI模块 使用ESP8266作为服务器,使用浏览器访问该服务器,从而控制LED灯 选择 [文件]->[示例]->[ESP8266WIFI]-& ...
- 中国移动OnetNet云平台 使用WIFI模块ESP8266 TCP非透传模式传输数据流步骤
测试使用工具: WIFI模块型号:ESP8266 https://item.taobao.com/item.htm?spm=a1z10.1-c.w137712-175513579.2.btbD9X&a ...
- 中国移动OnetNet云平台 使用WIFI模块ESP8266 TCP透传模式传输数据流步骤
测试使用工具: WIFI模块型号:ESP8266 https://item.taobao.com/item.htm?spm=a1z10.1-c.w137712-175513579.2.btbD9X&a ...
- Beaglebone Black– 智能家居控制系统 LAS - 刷 WiFi 模块 ESP8266 Firmware 和 ESP8266 直接收发 GPIO 信号
用 Windows 来刷 ESP8266 固件有很多中文教程,来试试直接用 BBB 刷吧.目标是 NodeMCU,ESP-01 可用,就是我买的那个. 接线方式在上一篇.当 echo ‘BB-UART ...
- 解析-ESP01模块开发Arduino物联网wifi开关模块
本文将解析<完美图解物联网Iot实操 ESP8266>中 第五章 P177页 动手做的代码2(使用SPIFFS文件系统的代码) 首先我们先动手使用Arduino IDE编译并且上传代码,上 ...
随机推荐
- 使用超声波传感器HC-SR04检测障碍物
HC-SR04是一种常用的超声波传感器,能够探测2-300厘米范围内的障碍物. 传感器看起来像一个小PCB,前面有两个金属圆柱,背面有一个小电路. 在本文中,我们将提供一个简单的演示来使用HC-SR0 ...
- Oracle中split功能的实现
原始需求: 有这样的表:tb和pk两列 PK是将表的多个主键用“|”进行分隔,我想把它变成多行 如 fundamentals_asia1_af_out ID_BB_GLOBAL|BC_DT|BC_EQ ...
- numpy模块的基本使用
numpy(Numerical Python)提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速.节省空间.numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提 ...
- kafka读书笔记《kafka并不难学》
======第一章 1 在高并发场景,如大量插入.更新数据库会导致锁表,导致连接数过多的异常,此时需要消息队列来缓冲一下.消息队列通过异步处理请求来缓解压力 2 消息队列采用异步通信机制消息队列拥有先 ...
- VS2010 insert Oracle数据库
背景:批量插入上万条数据到Oracle数据库的一张表里. 工具:VS2010. 因为是访问远程数据库,所以需要先装一个oracle client. 使用oracle客户端的方式访问数据库,需要添加对其 ...
- 2018 Arab Collegiate Programming Contest (ACPC 2018) G. Greatest Chicken Dish (线段树+GCD)
题目链接:https://codeforces.com/gym/101991/problem/G 题意:给出 n 个数,q 次询问区间[ li,ri ]之间有多少个 GCD = di 的连续子区间. ...
- @JsonSerialize @JsonIgnoreProperties @JsonIgnore @JsonFormat
@JsonIgnoreProperties 此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响. @JsonIgnore 此注解用于属性或者方法上( ...
- mybatis-传多个参数
第一种方案:下标传参 DAO层的函数方法 Public User selectUser(String name, String area); 对应的Mapper.xml <select id=& ...
- 42 | grant之后要跟着flush privileges吗?
在 MySQL 里面,grant 语句是用来给用户赋权的.不知道你有没有见过一些操作文档里面提到,grant 之后要马上跟着执行一个 flush privileges 命令,才能使赋权语句生效.我最开 ...
- 前端利用webuploader实现超大文件分片上传、断点续传
本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...