ESP8266的基本使用及透传编程
来源:互联网 发布:数据库定时同步工具 编辑:程序博客网 时间:2024/06/05 20:48
15年的时候用过一次,当时文档还没现在这么全,这次帮同学做毕设用到了,记录一下基本的使用
手里的模块是ESP-01
具体选项和文档见官网:http://wiki.ai-thinker.com
一:接线
查阅手册可知,正常工作时:
VCC ————-3.3V
GND ————-GND
CH_PD————-3.3V
GPIO2————-3.3V
RX ————-TX
TX ————-Rx
其余引脚为空。
烧写时:
GPIO0接地。
为了方便使用,我直接将CH_PD和VCC焊在了一起,烧写时只需要把GPIO0引出接到地。
调试的时候用的CH340 USB转串口,网上很多地方强调对电源要求高,最好用五号电池,15年和现在实测直接接USB转串口模块没问题。
为了烧录方便,把排阵连通做为GND,烧录的时候GPIO0接GND,工作模式直接GPIO0悬空。
此时连接电脑,波特率选择115200,8位数据位,1位停止位,无奇偶校验位,即可进行AT指令测试。
二:开发环境
这次使用发现了Arduino IDE 也可以用来开发ESP8266了,而且完全是Arduino风格。
首先 下载Arduino IDE-文件-首选项-附加开发板管理网址-http://wechat.doit.am/package_esp8266com_index.json-保存。
然后 工具-开发板-开发板管理器-esp8266 by ESP8266 Community-选择2.0-下载。
下载时开发板选择Generic ESP8266 Module CPU 频率 80 MHz。
三:编写程序
这里我编写了两个透传的程序,都是作为station模式连接电脑共享的WIFI。
第一个,ESP8266作为TCP客户端进行透传
#include <ESP8266WiFi.h>const char *ssid = "WIFISSID";const char *password = "PASSWORD";const char *host = "192.168.191.1";//要连接的TCP服务器IPWiFiClient client;const int tcpPort = 8080;//TCP服务器的端口号void setup(){ Serial.begin(115200); delay(10); Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP());}void loop(){ while (!client.connected()) { if (!client.connect(host, tcpPort)) { Serial.println("connection...."); //client.stop(); delay(500); } } while (client.available()) { uint8_t c = client.read(); Serial.write(c); } if (Serial.available()) { size_t counti = Serial.available(); uint8_t sbuf[counti]; Serial.readBytes(sbuf, counti); client.write(sbuf, counti); }
第二个,ESP8266作为TCP服务端进行透传
#include <ESP8266WiFi.h>const char *ssid = "WIFISSID";const char *password = "PASSWORD";const int tcpPort = 80;//要建立的TCP服务的端口号WiFiServer server(tcpPort);void setup(){ Serial.begin(115200); delay(10); Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); server.begin();}void loop(){ WiFiClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); } if (Serial.available()) { size_t counti = Serial.available(); uint8_t sbuf[counti]; Serial.readBytes(sbuf, counti); client.write(sbuf, counti); } } delay(1); client.stop(); }}
官方文档:
http://esp8266.github.io/Arduino/versions/2.0.0/doc/libraries.html#wifiesp8266wifi-library
交流:@坯子王珂
- ESP8266的基本使用及透传编程
- esp8266的平台建置、基本使用說明及韌體更換
- shell的基本使用及vi 编程
- ESP8266 、station模式、 单连接透传模式 、基本指令
- esp8266 download tool的使用
- esp8266 wifi模块的使用
- ESP8266的基本配置与串口通信
- ESP8266-使用ESP8266 NONOS SDK的JSON API
- ESP8266-使用ESP8266 NONOS SDK的driver/key API
- 【ESP8266】使用uPyLoader调试运行MicroPython的ESP8266
- 【ESP8266】使用ESP8266 NONOS SDK的JSON API
- 使用AT指令配置ESP8266开启透传模式
- 关于ESP8266使用ArduinoIDE编程,调用airkiss_lan_recv和airkiss_lan_pack出错的解决方法
- ESP8266使用
- [新手]ESP8266的使用范例----智能家居
- ESP8266-SDK中I2C的使用
- Arduino使用ESP8266通信的实践
- wifi模块:ESP8266-ESP-01的使用
- HDU1248 寒冰王座 (完全背包)
- WIN7下C#调用大漠插件
- (转)玩转AppBarLayout,更酷炫的顶部栏
- 约瑟夫问题
- 定时器
- ESP8266的基本使用及透传编程
- 0-1背包问题(java版)
- 观察者模式与发布/订阅模式区别
- HDU1879 继续畅通工程
- (二)android recovery升级过程中掉电处理
- C语言 查找字符串子串 返回位置
- 二叉树的最大节点
- 黑客教程
- numpy基础