ESP8266与Arduino的那些事

您所在的位置:网站首页 stm32和arduino2560哪个性能好 ESP8266与Arduino的那些事

ESP8266与Arduino的那些事

2024-07-16 22:31| 来源: 网络整理| 查看: 265

        大家好,我是#猫神様のメモ帳#

        我的高考终于结束了,虽然有点迟,但今天我们来聊一聊ESP8266的编程开发。

        ESP8266是内置超低功耗 Tensilica L106 32 位 RISC 处理器,CPU 时钟速度最高可达 160 MHz,支持实时操作系统 (RTOS) 和 Wi-Fi 协议栈,可将高达 80% 的处理能力留给应用编程和开发。ESP8266专为移动设备、可穿戴电子产品和物联应用设计,并与其他几项专利技术一起使机器实现最低能耗。为满足移动设备和可穿戴性电子产品的功率需求,ESP8266在近距离时可以通过软件编程减少PA的输出功率来降低整体功耗,以适应不同的应用方案。

        这么高级的WIFI MCU的发布对于IOT来说是一个巨大的里程碑,它成功地使物联网成本从100元以上下降至不到20元,那么,介绍了这么多,也该说说ESP8266的开发了。有人说,我没有开发过ESP8266,不会用它的开发环境,更不知道如何用SDK。不用担心,只要你会用Arduino写代码,就OK了喵。

1.esp8266 环境安装

    首先,我们来安装Arduino里面的ESP8266环境

    1.先打开Arduino,选择【文件】>【首选项】,在附加开发板管理器网址中复制一下内容:{http://arduino.esp8266.com/stable/package_esp8266com_index.json},然后点击{好}。

    2.现在选择【工具】>【开发板】>【开发板管理器】,在搜索框中输入ESP8266,就可以找到开发板了,随即,不用说的喵,安装。

    3.安装完成后查看例程

到此为止,ESP8266环境就安装完成了喵。

2.esp8266 wifi配置

    接下来,我们来说说如何使用WIFI。

    在Arduino中,要使用ESP8266联网,一共只需要6行代码,四步。

1.调用库

#include

2.设置WIFI SSID和密码

const char* ssid     = "SSID";

const char* password = "Password";

3.设置WIFI模式

WiFi.mode(WIFI_STA);

4.设备自连

WiFi.begin(ssid, password);

当然,如果你是刚刚开始,建议加上串口显示信息。

#include

const char* ssid     = "SSID";

const char* password = "Password";

void setup() {

  Serial.begin(115200); //配置串口,波特率115200

  delay(10);

  Serial.println();

  Serial.println();

  Serial.print("Connecting to ");

  Serial.println(ssid);

  WiFi.mode(WIFI_STA);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {        //等待连接完成

    delay(500);

    Serial.print(".");

  }

  Serial.println("");

  Serial.println("WiFi connected");    //显示连接信息

  Serial.print("IP address: ");

  Serial.println(WiFi.localIP());

  Serial.print("SSID: ");

  Serial.println(ssid);

  Serial.print("Password: ");

  Serial.println(password);

}

void loop() {

}

到此为止,WIFI配置就完成了

3.esp8266 http client应用

1.Arduino中使用API接口的方式有很多,但最直接的就是基于http的方式了。

*API接口简单来说就是服务器用于提供信息的接入点,可获取如JSON和XML等格式的天气、交通、污染指数等信息

Arduino中的http函数也非常好用:

1.首先调用函数

#include

2.配置函数

HTTPClient http;

3.发送请求

String a=“http://flash.weather.com.cn/wmaps/xml/nanjing.xml”;

http.begin(a);

/*这里我就直接用我制作天气预报显示屏所使用的XML格式的API接口

*P.S        定义的a是一个用于存储API地址的变量,也可指直接调用http.begin(“http://flash.weather.com.cn/wmaps/xml/nanjing.xml”);

*/P.P.S    API接口格式前一定要加{http://},否则无法解析。

4.获取反馈数据

String payload;

 int httpCode = http.GET();

  if (httpCode == HTTP_CODE_OK) {

    payload = http.getString();

    }

这样,就完成了全部流程,当然,如果你想在你的代码中多次调用,也可以将其封装为一个函数,如下

注意:不要忘记头文件

这样,函数就封装完成了喵。

4.esp8266 oled显示屏使用

    在我制作天气预报显示屏时,显然要用到显示屏,我用的是IIC接口的0.96寸OLED显示屏,这个显示屏使用方便,调用简单。但用它要选择好函数库,建议使用Adafruit_ssd1306syp这个库。下载链接{https://pan.baidu.com/s/118bqbNXLWabG_GcHmdQtcg}

    这个库的好处在于可以指定SDA和SCL,不需要一定使用硬件IIC接口,特别适合ESP8266这种有些模块引脚较少的硬件使用(UP最初做显示屏时用的是ESP-01模块哦)

    安装好库文件后查看例程,

Adafruit_ssd1306syp例程

下面来介绍代码:

重要代码如下:

display.update(); 

//画面更新,也就是保存更改,在你制定显示内容后一定要调用此函数才能显示

display.clear();

//清空显示

display.setTextColor(WHITE);

//设置颜色(白色,取决于你的显示屏)

display.setTextColor(BLACK, WHITE);

//反白,白底黑字

display.setTextSize(1);

//设置字号

  display.print("123"); 

//打印文字,不换行

  display.println(“123”);

//打印文字,换行

display.println(0xDEADBEEF, HEX);

//以HEX格式输出

display.drawLine(0, 0, 127, 63,WHITE);

画线,从坐标(0,0)画直线到坐标(127,63)

/****************************************/

    1.定义管脚,配置函数

#include

#define SDA_PIN 8

#define SCL_PIN 9

Adafruit_ssd1306syp display(SDA_PIN,SCL_PIN);

    2.启动显示

display.initialize();

    3.显示文字

display.setTextSize(1);

display.setTextColor(WHITE);

display.setCursor(0,0);

display.println("Hello, world!");

display.update();

4.清屏

display.clear();

/*********************************分割线**************************/

到此为止,ESP8266的基础教程也就结束了喵,喜欢的话可以点个关注哦,如果有想要看关于ESP8266的其他内容的教程可以留言或私信我喵,谢谢大家的阅读。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3