年轻人的第一块WiFi/蓝牙模块

1年前
1年前
3.7k字
加载中
文章概述 Powered by Google Gemini Beta
本文指导如何使用ESP8266和ESP32模块建立WiFi连接、设置Web服务器和利用蓝牙功能。文章提供了有关添加开发板包、LED测试、服务器启动和蓝牙串口通讯的详细步骤,并提供了ESP8266和ESP32的示例代码。

年轻人的第一块WiFi/蓝牙模块

这里主要记录chi捣鼓他的第一块ESP8266和ESP32小板的一些小事和注意事项(x

最近补了点货,买了传感器来了,当然还有ESP32啦~(

chi的100,没力(悲

最近的一个好消息:昨天把“主板坏了”的笔记本修好了,合张影。

rnm修电脑的,退钱!!!还好没有换主板。

其实笔记本只是LVDS接口接触不良导致电脑屏幕没亮而已(全恼(因为我换过屏幕)

然后就速速把台式机里面的nvme拆下来给笔记本用了,之后这台笔记本会黑果(

好了唠嗑结束 进入正文啦(

0x01 开玩

众所周知ESP8266和ESP32是国产板!!!感动中国!!!

ESP8266和ESP32造价低廉(我买的ESP8266要12CNY,ESP32要22CNY),还支持WiFi和蓝牙(ESP32),支持arduino IDE,但是Arduino IDE默认不提供ESP8266和ESP32的板子,需要我们自行安装下载。

打开Arduino IDE -> Perferences -> Additional Board URLs 添加以下的开发板包链接:

https://arduino.esp8266.com/stable/package_esp8266com_index.json
https://githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

如果ghusercontent无法访问 可以把域名调整到 ghraw.chicdn.cn

然后在Boards Manager中搜索ESP8266ESP32就可以安装了~

ESP32和ESP8266板的文件都是从gh下下来的,如果嫌慢,请自行使用魔法。

0x02 亮起来吧,LED

如何测试一个ESP8266/ESP32模块呢,当然是测试LED啦~

这是测试代码:

#define lcd 2
void setup () {
 pinMode(lcd, OUTPUT);
}
void loop () {
 writeDigital(lcd, HIGH);
 delay(100);
 writeDigital(lcd, LOW);
}

亮瞎你的眼

0x03 跑起来吧,Web服务器!

那怎么开个服务器呢(

这是例程:

ESP8266用这个:

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

#define AP_ssid "WIFINAme" //这里改成你的设备当前环境下要连接的接入点名字
#define password "passw0rd" //这里改成你的设备当前环境下要连接的接入点密码

ESP8266WebServer server(80); //创建Web服务器 80端口监听
 
int i = 0; //用来判定连接是否超时的累加量

void homepage () {
 Server.send(200, "text/html;charset=utf8", "<h1>小黑子食不食油饼</h1><hr/><p>Powered by <a href=\"https:\/\/\im.chihuo2104.dev/\" target=\"_blank\">chihuo2104</a>.All rights reserved&copy;2018-2023.<br/>Served by ESP32.");
}

void setup() {
 Serial.begin(9600); // 启动串口通讯,波特率设置为9600
 Serial.println("Start Connection");
 
 //调用 WiFi.begin()函数,开始连接接入点
 WiFi.begin(AP_ssid, password);
 Serial.print("Connecting to");
 Serial.print(AP_ssid);
 
 //这里的循环用来判断是否连接成功的。连接过程中每隔500毫秒会检查一次是否连接成功,,并打一个点表示正在连接中
 //连接成功后会给出提示,但是若60秒后还是没有连接上,则会提示超时
 while (WiFi.status() != WL_CONNECTED) {
 i++;
 delay(500);
 Serial.print(".");
 if (i > 120) { //60秒后如果还是连接不上,就判定为连接超时
 Serial.print("Connect Failed!");
 break;
 }
 }
 
 Serial.println("Connect Successful!");
 
 Serial.print("IP Address: ");
 Serial.println(WiFi.localIP());
 
 //初始化WebServer
 server.on("/", homepage);
 server.begin();
 Serial.println("HTTP server started");
}
 
void loop() {
 server.handleClient(); //没有这个Web服务器无法提供服务~
}

ESP32用这个:

#include <WiFi.h>
#include <WebServer.h>
WebServer Server(80);

void homeRoute () {
 Server.send(200, "text/html;charset=utf8", "<h1>小黑子食不食油饼</h1><hr/><p>Powered by <a href=\"https:\/\/\im.chihuo2104.dev/\" target=\"_blank\">chihuo2104</a>.All rights reserved&copy;2018-2023.<br/>Served by ESP32.");
}

void setup()
{
 WiFi.begin("wifiname", "password"); //连接wifi名称和密码
 while (WiFi.status() != WL_CONNECTED)
 {
 delay(500);
 Serial.println("Connecting to WiFi..");
 }
 Serial.println("Connect success.");
 Serial.println(WiFi.localIP()); //打印出服务器的IP
 Server.on("/", homeRoute);
 Server.begin();
}

void loop()
{
 Server.handleClient();
}

效果是这样的:

0x04 跑起来吧,Bluetooth!

ESP32是支持蓝牙的,我们可以通过蓝牙和它进行串口通讯~

这是回声例程:

#include <BluetoothSerial.h>

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled!
#endif

BluetoothSerial btSerial;

void setup()
{
 btSerial.begin("esp32"); //将作为esp32设备被发现
}

void loop ()
{
 if (btSerial.available()) {//有没有内容
 btSerial.write(btSerial.read());//返回读取的内容
 }
}

这时候我们可以打开手机/电脑来连接蓝牙,进行串口调试:

0x05 小点

烧录出现错误请保持冷静,多次刷写肯定能成功(

下一篇:不知道欸

Arduino开发板ESP8266ESP32蓝牙电子垃圾

Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v3.0.0-alpha.1