esp8266入门 c++ 笔记

用于记录学习过程遇到的各个知识点,主要是每个函数的作用。文章内容参考:太极创客
在这里插入图片描述
你可能需要的头文件

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WebServer.h>
#include <FS.h>
#include <LittleFS.h>
#include <ArduinoJson.h>
// 初始化代码位置,如设置引脚用于输入或输出。
void setup() {
   
  // put your setup code here, to run once:
}

// 这函数里的代码是一个死循环里的代码,这个函数会被不断调用。
void loop() {
   
  // put your main code here, to run repeatedly:
}

串口相关

void setup() {
   
	// 以9600波特率启动串口
	Serial.begin(9600);		// 这一行必须写在setup里。
	//通过串口发送字符串,不以换行结尾。
	Serial.print("Access Point:");
	//通过串口发送字符串,以换行结尾。
	Serial.println(ssid);
}

工作模式

AP模式工作
开发板自己创建一个WiFi

const char *ssid = "wangba";
const char *password = "12345678";		// 如果这里为空,则不需要密码就可连接。
void setup() {
   
	Serial.begin(9600);		// 这里的参数是波特率。
	//esp8266以AP模式工作,并传入热点名称和密码,如果密码是空字符串则没有密码。
	//AP模式下,8266会创建一个WiFi,相当于一个路由器。
	WiFi.softAP(ssid, password);
	// 通过串口输出WiFi名字。
	Serial.println(WiFi.SSID()); 
	// 通过串口输出开发板的ip地址。
	Serial.println(WiFi.softAPIP());
}

无线终端模式

// 连接某个特定的WiFi。
const char *ssid = "xxxx";
const char *password = "88888888";
void setup() {
   
	WiFi.begin(ssid, password);
	int i = 0;
	while(WiFi.status() != WL_CONNECTED) {
   
		delay(1000);
		Serial.print(i++);
		Serial.println(" please waiting...");
	}
	Serial.println("name: ");
	Serial.println(WiFi.SSID()); 
	Serial.println("IP: ");
	Serial.println(WiFi.localIP());
}
// 预设多个WiFi,自动连接其中一个。
// 我并没有连接成功。
ESP8266WiFiMulti wifiMulti;
void setup() {
   
	wifiMulti.addAP("xxxx", "12345678");
	wifiMulti.addAP("xxxxx", "87654321");
	wifiMulti.addAP("xxxxxx", "13572468");
	int i = 0;
	while(WiFi.run() != WL_CONNECTED) {
   
		delay(1000);
		Serial.print(i++);
		Serial.println(" please waiting...");
	}
	Serial.println("name: ");
	Serial.println(WiFi.SSID()); 
	Serial.println("IP: ");
	Serial.println(WiFi.localIP());
}

基本网络服务器

开启一个web服务

const char *ssid = "xxxx";
const char *password = "88888888";
const int server_port = 8080;

// 开启web服务,并设置端口号为8080。
ESP8266WebServer esp8266_web_server(server_port);

void setup() {
   
  // put your setup code here, to run once:
  Serial.begin(9600);
  WiFi.begin(ssid, password);
  int i = 0;
  while(WiFi.status() != WL_CONNECTED) {
   
    delay(1000);
    Serial.print(i++);
    Serial.println(" please waiting...");
  }
  // 启动服务
  esp8266_web_server.begin();
  // 绑定路径与处理函数。
  esp8266_web_server.on("/", handleRoot);
  // 绑定404处理函数
  esp8266_web_server.onNotFound(handleNotFound);
  Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.print(":"); Serial.print(server_port);
}

void loop() {
   
  // put your main code here, to run repeatedly:
  // 处理http请求
  esp8266_web_server.handleClient();
}

void handleRoot() {
   
  // 发现中文在电脑浏览器里乱码,手机浏览器中没有乱码。
  esp8266_web_server.send(200, "text/plain", "hello from esp8266\n欢迎来到esp8266服务页面。");
}

void handleNotFound() {
   
  esp8266_web_server.send(404, "text/plain", "404 Not Found");
}

通过网页改变io口状态,关键代码如下。

pinMode
### ESP8266嵌入式开发入门教程 #### 一、环境搭建 对于初次接触ESP8266的开发者来说,首要任务是建立合适的开发环境。这通常涉及到安装特定版本的Arduino IDE或其他支持平台[^3]。 #### 二、硬件准备 使用像ESP-07S这样的模块进行初步测试是一个不错的选择。通过USB转串口设备连接电脑与ESP8266,能够方便地上传程序并观察运行效果。值得注意的是,在某些型号如ESP8266S01中,IO0和EN引脚已经设置为内部上拉状态,因此在大多数情况下无需额外连线即可正常工作;而UART接口则用于数据传输,默认波特率设定为115200bps,可根据需求调整[^4]。 #### 三、软件配置 当提到RTOS SDK时,它提供了丰富的API函数来简化Wi-Fi网络接入和其他复杂操作的任务管理等功能。熟悉这些特性有助于更高效地利用资源完成项目目标[^1]。 #### 四、C语言基础回顾 鉴于ESP系列微控制器多基于C/C++编程语言实现应用逻辑,掌握一定水平的C语法知识显得尤为重要。虽然这里不会深入探讨整个C语言体系,但对于那些打算从事ESP32/ESP8266开发的人来说,重温指针、结构体以及内存分配等方面的基础概念是非常有帮助的[^2]。 ```c // 示例:简单的LED闪烁控制代码片段 void setup() { pinMode(LED_BUILTIN, OUTPUT); // 设置内置LED引脚模式 } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); // 打开LED一秒 digitalWrite(LED_BUILTIN, LOW ); delay(1000); // 关闭LED一秒 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值