本帖最后由 xxpcb 于 2022-3-4 19:58 编辑
ESP8266是一款价格十分亲民的wifi模块,在某宝上一块ESP8266开发板只要10几块钱!可以买来玩玩一些物联网相关的小项目。 ESP8266的开发方式有多种,目前我了解到的有: 因为我之前玩过Arduino,而且Arduino编程简单易操作,所以就选择先使用Arduino IDE来玩一玩ESP8266。 1 安装Arduino IDEArduino官网下载IDE:https://www.arduino.cc/en/software,我之前安装的版本是Arduino IDE 1.8.16,目前又有新版本的,可以安装最新的,不过基础功能相差不大。 根据自己使用的平台,点击右侧的下载。 我下载得到arduino-1.8.16-windows.exe安装文件,常规的“下一步”的安装方式安装即可。 安装完之后,打开,可以看到我的软件里已经有了Arduino AVR和ESP8266的开发环境(注:ESP8266的开发环境是我在旧版本的Arduino IDE中安装过,安装新版本IDE后,之前的配置也会自动加载进来),如果你之前没有配置过ESP8266,IDE中应该默认只有Arduino AVR这一项。
2 卸载旧的ESP8266开发包(可选)因为我之前安装过2.6.3版本的ESP8266,那我就先卸载掉,再安装一个更新版本(3.0.1)的ESP8266安装包。 在文件管理器地址栏输入 %LOCALAPPDATA%/Arduino15/packages,回车进入,然后删除掉其中的esp8266文件夹即可卸载
3 安装ESP8266开发包因为Arduino IDE默认是给Arduino开发板用的,默认只有Arduino开发板的相关开发资源。要想在在Arduino IDE中使用ESP8266,需要额外安装ESP8266的开发包。安装方式有两种,一种是在线安装,一种是使用离线包安装。 3.1 在线安装(不推荐)在线方式需要连网下载安装包,对网络环境要求较高,不推荐这种,因为经常因网络原因安装失败。不过还是要简单介绍一下这种安装方式。 在Arduino IDE下载ESP8266开发包,首先是找到菜单里的:文件->首选项 然后在“附件开发板管理网址”中输入: http://arduino.esp8266.com/stable/package_esp8266com_index.json 接着在:工具->开发板->开发板管理器,点击开发板管理器 输入esp8266,查看esp8266搜索结果,在线安装。 在线安装会很慢,容易失败。 3.2 离线安装(推荐)使用下载好的离线安装包(exe文件),一键安装,十分的方便 安装后,就可以看到ESP8266的相关资源了。 4 简单测试程序编写一个简单的连网测试程序,测试一下ESP8266的基本功能。 4.1 Arduino编程快速上手Arduino编程非常容易上手,它的基础框架就是一个初始和一个主循环: - //初始化
- void setup()
- {
- Serial.begin(9600);
- Serial.println("esp8266 test");
- initWiFi();
- }
-
- //主循环
- void loop()
- {
- Serial.println("hello esp8266");
- delay(1000);
- }
复制代码
初始化就是setup函数,我们可以在这里进行一些基础的初始化,比如串口初始化就是调用: 指定波特率9600,这个串口也是板子的供电口和程序下载口,通过Arduino IDE自带的串口监视器即可查看串口输出信息,不用再打开其它的串口助手之类的软件,用起来十分的方便。 此外,还可以将自己写的一些初始化函数放到setup函数中,用于程序开机时初始化,比如我们自己写的WIFI初始化函数:initWiFi()。 主循环就是loop函数,类似于单片机开发中的main函数里的while(1){},我们可以在这里进行程序逻辑代码的编写,比如每隔1秒循环打印一些信息: - Serial.println("hello esp8266");
- delay(1000);
复制代码这个delay函数也是Arduino自带的,单位是毫秒。 4.2 WIFI连网测试程序Arduino的编程语言,其实就是C++,当然也支持包含头文件以及类的操作。 比如要使用WIFI功能,需要先包含ESP8266WiFi.h这个头文件。 ESP8266WiFi这个库的内部已经帮我们实现了各种WIFI操作的各种功能函数,我们只需要实例化一个WiFiClient对象,就可以操作实现各种功能了: - #include <ESP8266WiFi.h>
-
- const char ssid[] = "xxxxx"; //WiFi名
- const char pass[] = "xxxxx"; //WiFi密码
-
- WiFiClient client;
复制代码WIFI初始化的流程也很简单,主要有3步: 配置WIFI为Station模式,即我们的ESP8266作为一个WIFI使用设备 关于WIFI的工作模式(STA模式与AP模式,可参考文章:【图解】物联网设备的N种Wi-Fi配网方式) 传入WIFI热点的ssid和密码,使得ESP8266连接到热点 读取WIFI连接状态,等待连接成功
- //初始化WIFI
- void initWiFi()
- {
- Serial.print("Connecting WiFi...");
- WiFi.mode(WIFI_STA); //配置WIFI为Station模式
- WiFi.begin(ssid, pass); //传入WIFI热点的ssid和密码
- while (WiFi.status() != WL_CONNECTED) //等待连接成功
- {
- delay(500);
- Serial.print(".");
- }
-
- Serial.println("");
- Serial.println("WiFi connected");
- Serial.println("IP address: ");
- Serial.println(WiFi.localIP()); //打印自己的IP地址
- }
复制代码
4.3 测试效果Arduino的操作界面也十分的简洁,最左边的编译,第二个是编译+烧录,最右边那个放大镜图标是串口监视器,可以直接查看板子的串口输出。比如运行我们的测试程序后,就可以看到如下的串口打印信息了: 另外,注意在编译和下载时,要选对开发板的型号和串口号: 5 总结本篇介绍了Arduino IDE的安装、ESP8266开发包的安装以及Arduino编程的快速入门来测试ESP8266的连网功能。
|