您的位置 首页 > 腾讯云社区

ESP8266开发环境搭建及项目演示---zeruns

ESP8266 是一款由乐鑫 Espressif 公司制作的低成本的 Wi-Fi 芯片,具有完整的 TCP / IP 协议栈和微控制器功能。它专为移动设备、可穿戴电子产品和物联网应用设计,功耗很低且价格非常低廉。

ESP8266有多种开发环境可以选择,本文讲Arduino IDE的开发环境搭建。

本文所用到的开发板及其他模块,以及连接线购买地址在最下面。

我这里使用的 NodeMcu 开发板即搭载了这款芯片。

请根据自己的开发板所用的USB转TTL电平芯片下载安装对应的驱动,我的开发板用的是CH340

安装Arduino IDE

Arduino IDE 是由 Arduino 官方提供的支持 C 语言的集成开发环境,主要是针对 Arduino 系列的开发板进行编程。 通过简单的配置,可以在原本的编程环境里添加上对 ESP8266 开发板的支持。对于熟悉 Arduino 函数库和开发流程的用户,基本上没有任何使用上的区别。

Arduino IDE下载地址: Arduino官网:https://www.arduino.cc/en/Main/Software

添加 ESP8266 支持

打开Arduino IDE,点击左上角的文件,进入首选项(Preferences),找到附加开发板管理器地址(Additional Board Manager URLs),并在其后输入如下链接: http://arduino.esp8266.com/stable/package_esp8266com_index.json

然后点击工具 → 开发板 → 开发板管理器,进入开发板管理器界面:

搜索 esp8266 并安装:

安装完成后,重启 Arduino IDE 软件。在工具 → 开发板选项中即会看到 ESP8266 开发板的选项:

选择端口,先在设备管理器中查看端口,然后在arduino ide中选择对应端口。

项目演示向串口发送Hello World

在 Arduino IDE 中新建项目并写入如下代码:

void setup() { //初始化函数,这个函数内的代码只在启动时运行一次 Serial.begin(115200); //设置串口波特率 }/* https://blog.zeruns.tech */ void loop() { //循环函数,这个函数内的代码会一直循环运行 Serial.println("Hello World"); //向串口打印Hello World }

输入后点击上传键进行编译上传到开发板,然后打开串口监视器,选择波特率115200即可看到输出的Hello World。

LED闪烁

ESP8266模块上自带一个LED,这个LED接的是D4口。

注意:ESP8266有多种开发板,不同的开发板的GPIO口不一样。

void setup() { //初始化函数,这个函数内的代码只在启动时运行一次 pinMode(D4,OUTPUT); //设置GPIO口D4状态为输出模式 } void loop() { //循环函数,这个函数内的代码会一直循环运行 digitalWrite(D4,HIGH); //设置GPIO口D0输出高电平,HIGH可以用1代替 delay(1000); //延时1000毫秒 digitalWrite(D4,LOW); //设置GPIO口D0输出低电平,LOW可以用0代替 delay(1000); //https://blog.zeruns.tech }读取DHT11数据并显示出来

本例中使用 DHT11 温湿度传感器 测量温度和湿度,再把测量所得的结果输出至 0.96寸的OLED屏幕 中。

项目源码:

#include <Arduino.h> #include <NTPClient.h> #include <U8g2lib.h> #include <DHT.h> #ifdef U8X8_HAVE_HW_SPI #include <SPI.h> #endif #ifdef U8X8_HAVE_HW_I2C #include <Wire.h> #endif DHT dht(D3,DHT11, 15); U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ D1, /* data=*/ D2, /* reset=*/ U8X8_PIN_NONE); void setup(){ u8g2.begin(); u8g2.enableUTF8Print(); dht.begin(); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); u8g2.clearBuffer(); u8g2.setFont(u8g2_font_unifont_t_chinese2); u8g2.setFontDirection(0); u8g2.setCursor(0, 15); u8g2.print("Humidity:"); u8g2.setCursor(80, 15); u8g2.print(h); //https://blog.zeruns.tech u8g2.setCursor(120, 15); u8g2.print("%"); u8g2.setCursor(0, 40); u8g2.print("Temperature:"); u8g2.setCursor(0, 55); u8g2.print(t); u8g2.setCursor(40, 55); u8g2.print("C"); u8g2.sendBuffer(); delay(1000); }

由于源代码中首行引入的 DHT库 和 U8g2库 并不是 Arduino IDE 内置的库文件,需要先点击项目 → 加载库 → 管理库进入库管理器,搜索安装如下三个依赖库(Adafruit Unified Sensor 和 DHT sensor library 和 U8g2):

线路连接

NodeMcu

DHT11

3V3

VCC

GND

GND

D3

DATA

NodeMcu

0.96寸OLED

3V3

VCC

GND

GND

D1

SCL

D2

SDA

WiFi连接

ESP8266 最大的特性就是其超低成本的 Wi-Fi 实现。 这里简单贴出其连接 Wi-Fi 的示例代码:

#include<ESP8266WiFi.h> const char* ssid = "blog.zeruns.tech"; //wifi名 const char* passwd = "blog.zeruns.tech"; //wifi密码 void setup() { Serial.begin(115200); //设置串口波特率 WiFi.begin(ssid,passwd); //连接wifi while (WiFi.status() != WL_CONNECTED) //判断wifi连接状态 { delay(500); Serial.print("."); //串口打印 . } Serial.println(""); //换行 Serial.println("WiFi cnnected"); Serial.println(WiFi.localIP()); //打印获取到的IP地址 Serial.println("https://blog.zeruns.tech"); } void loop() { }购买地址

NodeMcu开发板(ESP8266):复制$Xbsf1nUlvhL$打开手机淘宝立即下单

DHT11温湿度传感器模块::复制$QC5L1nUN2i2$打开手机淘宝立即下单

杜邦线:复制$Ye1D1nUKbAT$打开手机淘宝立即下单

0.96寸OLED屏:复制$2Omg1nUrfci$打开手机淘宝立即下单

---来自腾讯云社区的---zeruns

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: