irpas技术客

【毕业设计】ESP8266 WiFi 模块使用介绍 - 单片机 物联网 嵌入式_Mdc_stdio_单片机wifi模块

大大的周 558

文章目录 1 简介2 ESP 8266 引脚排列3 供电方式4 单片机与ESP8266交互5 测试代码6 最后


1 简介

Hi,大家好,这里是丹成学长,今天学长向大家介绍一下ESP8266 WiFi 模块,该模块常被用于物联网开发,无论是毕业设计还是公司项目都产常用的模块,今天带大家初步认识ESP8266.

大家可用于 课程设计 或 毕业设计

2 ESP 8266 引脚排列

ESP8266 有 8 个引脚,分别是:

接收电压互感器通用输入输出口 0重启CH_PD通用输入输出口 2TX接地VCC 和 GND 是电源引脚,RX 和 TX 用于通信 3 供电方式

ESP8266 WiFi 模块有多种供电方式:

可以使用 2 节 AA 电池供电可以使用 LIPO 电池为 ESP Dev Thing 板供电可以使用 LM117 3.3V 稳压器

逻辑电平控制器

ESP8266 的最大电压为 3.6V,因此该器件具有板载 3.3V 稳压器,可为 IC 提供安全、一致的电压。这意味着 ESP8266 的 I/O 引脚也以 3.3V 运行,需要将 5V 信号运行到 IC 中的逻辑电平控制器。

或者,如果想直接向 ESP8266 提供外部稳压电源,则可以通过3V3引脚(在 I2C 接头上)提供该电压。虽然这个电压不一定是 3.3V,但它必须在1.7-3.6V的范围内。 可以使用两节 AA 电池为 ESP 供电。正极从电池到 ESP 的 VCC 和 GND 到 ESP 8266 的 GND。

电平转换器易于使用。电路板需要由系统使用的两个电压源(高压和低压)供电。高电压(例如 5V)连接到“HV”引脚,低电压(例如 3.3V)连接到“LV”,从系统接地到“GND”引脚。

4 单片机与ESP8266交互

这里以arduino单片机为例 要通过 Arduino UNO 与 ESP8266 通信,需要在两者之间使用逻辑电平控制器来安全地与 ESP8266 一起工作。

连接:

将 ESP 连接到 Arduino,将 ESP8266 RX 连接到逻辑电平控制器 Level 1将 ESP TX 连接到 2 级逻辑电平控制器ESP VCC 至 Arduino UNO 3.3V逻辑电平控制器电平到 Arduino 3.3V逻辑电平控制器 GND 到 Arduino GNDESP GND 到 Arduino GNDESP CH_PD 至 Arduino 5V逻辑电平控制器 HV 到 Arduino 5V逻辑电平控制器 HV1 至 Arduino 第 11 引脚逻辑电平控制器 HV2 到 Arduino 第 10 个引脚

上位机测试能否ping通模块 单击开始,运行,然后键入CMD并按 Enter。输入IPCONFIG ,然后按回车。输入PING 和模块的 IP 地址。成功的 PING 请求将始终返回一组数字。如果收到“请求超时”消息,则表示某些内容未在通信。

然后将IP 地址写入网络浏览器,就可以与 ESP8266 模块进行通信。

5 测试代码 // 库 #include "Arduino.h" #include "ESP8266.h" #include "dweet.h" // 引脚定义 #define ESP8266_PIN_RX 10 #define ESP8266_PIN_TX 11 // 全局变量和定义 // ==================================================================== // vvvvvvvvvvvvvvvvvvvv WI-FI设置 vvvvvvvvvvvvvvvvvvvv // const char *SSID = "WIFI-SSID"; // 输入Wi-Fi 名 const char *PASSWORD = "PASSWORD" ; // 输入 Wi-Fi密码 // // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // ==================================================================== // Dweet 令牌已为您??自动生成 char* const inputToken = "59a7c547b7e19d001f7002d0_input"; char* const outputToken = "59a7c547b7e19d001f7002d0_output"; //对象初始化 ESP8266 wifi(ESP8266_PIN_RX,ESP8266_PIN_TX); Dweet dweet( &wifi, inputToken, outputToken); // 定义用于测试菜单的变量 const int timeout = 10000; //定义10秒超时 char menuOption = 0; long time0; //设置电路工作的基本要素。每次您的电路通电时,它首先运行。 void setup() { // 设置串口,这对调试很有用 // 使用串行监视器查看打印的消息 Serial.begin(9600); while (!Serial) ; // 等待串口连接。本机 USB 需要 Serial.println("start"); wifi.init(SSID, PASSWORD); menuOption = menu(); } // 电路的主要逻辑。它定义了您选择的组件之间的交互。设置后,它一遍又一遍地运行,在一个永恒的循环中。 void loop() { else if (menuOption == '1') { //设置DWEETS dweet.setDweet("DemoKey", "DemoValue"); //用你自己的 (key, value) 对替换你的数据 dweet.sendDweetKeys(); //获取 DWEETS dweet.receiveDweetEvents(); if(!strcmp(dweet.getValue() , "DemoEventName")) { Serial.println("DemoEventName received!"); } } if (millis() - time0 > timeout) { menuOption = menu(); } } //用于选择要测试的组件的菜单功能 // 按照串行监视器获取指令 char menu() { Serial.println(F("\nWhich component would you like to test?")); Serial.println(F("(1) IOT")); Serial.println(F("(menu) send anything else or press on board reset button\n")); while (!Serial.available()); // 如果收到,则从串行监视器读取数据 while (Serial.available()) { char c = Serial.read(); if (isAlphaNumeric(c)) { else if(c == '1') Serial.println(F("Now Testing IOT")); else { Serial.println(F("illegal input!")); return 0; } time0 = millis(); return c; } } } 6 最后


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #单片机wifi模块 #wifi #课程设计 # #毕业设计ESP8266 #