0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP8266-12E和Arduino入门

454398 来源:网络整理 作者:网络整理 2020-01-31 17:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

对于任何物联网DIY)DIY项目来说,Wi-Fi都是必不可少的工具包,但是我们最喜欢的Arduino并未随附Wi-Fi,并且添加Wi-Fi防护罩可以带来总费用约为40美元。如果我告诉您有一个兼容Arduino的开发板,且内置Wi-Fi的价格不到10美元怎么办?嗯,有。

遇到了Arduino杀手:: ESP8266。将皇冠从我们亲爱的Arduino开发板的光亮的头上偷走只是时间问题。

除了俗称的ESP8266(也称为NodeMCU),最初是作为Arduino板的低成本Wi-Fi附加件销售的,直到黑客社区意识到您可以完全摆脱Arduino的困扰。

在不到一年的时间里,ESP8266迅速普及,并且得到了如此良好的支持和开发,如果您当前使用的是Arduino,您需要站起来记笔记。立即购买,然后按照本指南开始进行ESP8266编程-全部从熟悉的Arduino IDE中进行。

您当然不限于使用Arduino IDE,它们与兼容Lua也是如此(对我的新手来说,这看起来像是精简的Python),但是由于我们是从那些已经在Arduino上学到的人的角度解决这个问题的,所以今天我们将专门介绍它。

现在有很多ESP8266型号,但我将继续推荐该型号:ESP-12E(也称为NodeMCU 1.0,或者它的最新同级NodeMCU 2.0)。

它是比其他芯片贵一些(6.50美元比4美元!),但包括对芯片进行编程所需的串行驱动器,并具有内置的电源调节器以及许多IO引脚。它得到了广泛的支持,除了USB连接以外,实际上不需要任何其他程序来编程或供电,因此使用起来最简单。如果您购买任何其他种类的ESP8266开发板,则可能需要单独的3.3v电源调节器和合适的FTDI连接进行编程。

ESP8266-12E和Arduino入门

首先,为该开发板安装串行驱动程序。如果由于新的安全系统而在运行El Capitan,则可能需要禁用KEXT签名。

下一步,我们需要从Arduino IDE的开发板上启用对ESP8266的支持经理。打开“偏好设置”,然后输入以下URL,其中显示 Additional Board Manager URL :

ESP8266-12E和Arduino入门

点击确定,然后打开从工具-》主板菜单中的 Boards Manager ,搜索esp8266并安装平台。现在,您应该可以看到NodeMCU 1.0的选择。

保留CPU和上载速度,然后选择新安装的串行端口。在Mac上,它显示为 cu.SLAB_USBtoUART

作为第一个程序,我建议使用简单的Wi-Fi扫描器-从文件-》示例中找到它-》 ESP8266WiFi-》 WifiScan 。请注意,上传速度很慢,但最终会说“完成上传”,此时(不是以前,否则您将中断上传过程),您可以打开串行监视器。您应该看到类似以下内容:

成功!现在,让我们尝试连接一个。

这是用于连接到Wi-Fi网络的绝对简单的准系统代码。它不仅可以连接,还可以做其他任何事情,但是您可以稍后再添加。只需记住将YOUR_SSID和YOUR_PASSWORD更改为您的Wi-Fi详细信息即可。上传,打开串行控制台,您应该会看到它已连接。

#include

const char* ssid = “YOUR_SSID”;

const char* password = “YOUR_PASSWORD”;

WiFiClient wifiClient;

void setup() {

Serial.begin(115200);

Serial.print(“Connecting to ”);

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(“。”);

}

Serial.println(“”);

Serial.println(“WiFi connected”);

Serial.println(“IP address: ”);

Serial.println(WiFi.localIP());

}

void loop() {

}

难道这是如此简单吗?

在我们携带之前上面是引脚图-稍后可能会派上用场。请注意,代码中提到的引脚号是GPIO号,而不是可能写在板PCB上的D0-16。如果绝对不能肯定地确定传感器不起作用的原因,那么您可能已经混淆了引脚号。

快速智能家居传感器使用MQTT和DHT11

这是一个实际示例,您可以立即使用它来监视您的房屋。我们将添加DHT11温度和湿度传感器,然后使用MQTT协议通过Wi-Fi网络报告这些值,在我的情况下,该报告将报告给OpenHAB DIY家庭自动化系统(如果没有,您可能需要阅读我们的初学者指南使OpenHAB在Raspberry Pi上启动并运行,以及第2部分,专门讨论安装MQTT服务器。

在接线侧,将DHT传感器连接到 GND , 3.3v 和〜D4 (或GPIO 2)。这就是我们现在所需要的。

下载这些MQTT和DHT库。 即使您已经拥有了它们,也仍然可以下载这些文件,备份所拥有的文件并用它们覆盖。Adafruit的最新DHT11库使用自动算法来确定从数据库中读取数据的速度。传感器,但是它在ESP8266上存在故障,并且90%的时间导致读取失败。

使用下载中包含的旧版库1.0,您可以手动更改计时:11种方法最适合这些ESP2866开发板。我还遍历了MQTT库的许多副本,试图找到一个好的 callback 函数,最后找到了其中的一个。替换掉它们后,您需要重新启动Arduino IDE。

这是项目的完整代码。顶部是您需要更改的所有变量,包括Wi-Fi详细信息,MQTT服务器(虽然没有身份验证,但如果使用云服务器,则可以使用URL代替URL,)以及发布数据的渠道。

这是它的工作方式和一些注意事项:

首先我们连接到Wi-Fi,然后连接到MQTT服务器,然后开始主循环()。

在循环中,我们每60秒轮询DHT传感器并将读数发布到相关的MQTT通道。同样,如果您发现大多数读数都导致失败消息,则说明DHT库的版本错误–降级至v1.0。

client.loop()将控制权传递给MQTT库,使其能够对传入消息做出反应。

我们有一个 messageReceived()函数用于处理传入消息–只需执行简单的if语句来比较有效载荷以及您期望的消息。例如,您可以使用它来激活继电器。

运行了几天后,我发现它们会随机停止工作–我认为这是某种内存泄漏,但是鉴于我没有我没有编码技能来解决这个问题,而且可能与核心库有关,所以我每天都选择asimple软复位。传感器节点首次激活后的正好一天,它们将自行重启。

从3.3v为这些廉价DHT11模块供电时,湿度值远远低于其应有的水平。我已经通过简单的乘法解决了这一问题,并针对商用传感器进行了校准。我建议您在阅读之前,也请先根据自己的已知来源进行确认。或者,用5V为它们供电–但是您必须在数据引脚和ESP8266之间放置一个5v-3.3v逻辑电平转换器,否则会损坏它。。

如果一切顺利,您现在应该在MQTT代理中接收传感器读数,并且可以按照我们的初学者指南第2部分中的详细说明将它们连接到OpenHAB,在这里我还向您展示了如何绘制数据图。

告别Arduino,我们如此爱你。只是开个玩笑:我家的每个地方甚至都没有Wi-Fi,因此对于那些地点,我仍然需要带有Arduino和RF接收器的网状网络。

要进行有趣的项目,请查看如何制作一个ESP8266的Wi-Fi按钮。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195969
  • ESP8266
    +关注

    关注

    51

    文章

    966

    浏览量

    49012
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Arduino plc和termux esp

    Arduino plc和termux esp
    的头像 发表于 12-06 06:41 1398次阅读

    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例

    【应用】国产26MHz频率晶振应用于物联网WIFI物联网模块(串口转WiFi模块),Espressif(乐鑫)ESP8285/ESP8266芯片匹配测试OKESP8285其实是ESP8266的升级版
    的头像 发表于 11-21 15:37 4053次阅读
    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) <b class='flag-5'>ESP</b>8285/<b class='flag-5'>ESP8266</b>芯片案例

    ESP8266ESP32开发板常见的2种下载方式

    至240MHz CPU,而ESP8266是单核处理器,主频支持80MHz至160MHZ。 这些WiFi模块都带有GPIO,支持SPI,I2C,UART等各种协议。这两款芯片都有STA/AP/STA+AP的工作模式。E...
    的头像 发表于 11-10 20:30 335次阅读
    <b class='flag-5'>ESP8266</b>和<b class='flag-5'>ESP</b>32开发板常见的2种下载方式

    ESP8266ESP32开发板常见的2种下载方式

    ESP8266全IO口引出,直接下载无需复位! ESP32功能框图 基于arduinoESP32/ESP8266开发环境搭建 1.在
    发表于 10-24 18:04

    esp8266 udp server 端口监听错误的原因?

    1、使用esp8266 at组件+sal socket实现使用udpserver_sample.c demo代码 udp server,通信失败 2、跟踪代码发现 packegs 里面
    发表于 09-23 07:03

    请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗

    请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
    发表于 09-17 12:06

    ESP8266】进入透传模式后,数据间隔怎么调整,

    01.TCP客户端用ESP8266透传模式发送数据是10ms发送一次,(连续发送) 02.TCP服务器接收到的数据是200ms左右接收一次,数据未丢失,但是更新不及时; 03.通过TCP调试助手已
    发表于 09-15 10:16

    rtt连接ESP8266报错(AT+CIPDNS_CUR?),固件版本为2.3.0.0,是什么原因导致的?

    不知道我这个固件版本挺新的,为什么不支持报错(AT+CIPDNS_CUR?) 大佬们那个固件版本支持AT+CIPDNS_CUR?的,可以给我一个支持(AT+CIPDNS_CUR?)的固件包吗.但是固件版本是2.3.0.0的吗,我使用的是esp8266_12F
    发表于 09-12 07:21

    【RA-Eco-RA6M4开发板评测】——4.使用ESP8266获取任意城市的天意预报

    手头上有一个ESP8266,闲置了很久,突然想起来可以和RA6M4开发板连接起来,使用AT指令来获取网络天气预报,于是就把它们连接起来。就有了这个帖子。 开始创建工程,打开 RA smart 配置
    发表于 07-23 19:50

    STM32+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植)

    本教程将详细介绍如何将STM32微控制器与ESP8266Wi-Fi模块连接到机智云平台,实现温湿度数据的上传与继电器的远程控制。通过此过程,您将学会如何配置机智云平台,烧录ESP8266固件,移植
    的头像 发表于 07-15 18:54 748次阅读
    STM32+<b class='flag-5'>esp8266</b>连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植)

    单片机实例项目:ESP8266串口WIFI

    单片机实例项目:ESP8266串口WIFI,推荐下载!
    发表于 06-03 21:01

    ESP8266烧录与机智云一键配网教程

    ESP8266模块因其低成本和高性能,广泛应用于智能家居和工业自动化等领域。机智云平台提供了一键配网功能,简化了设备的联网过程。本教程将详细介绍如何使用ESP8266进行烧录,并通过机智云实现一键配
    的头像 发表于 05-24 11:04 1559次阅读
    <b class='flag-5'>ESP8266</b>烧录与机智云一键配网教程

    【RA-Eco-RA4M2开发板评测】RA4M2 + ESP8266获取城市天气预报(一)

    很高兴收到瑞萨电子的RA4M2开发板,有幸成为了幸运观众,本期就来使用瑞萨的RA4M2开发板通过串口连接WIFI模块ESP8266,获取天气预报数据信息。并实时显示出来。它可以获取国内任何城市
    发表于 05-02 14:28

    零知开源——ESP8266+MPU6050 实现运动姿态检测

    零知ESP8266的I2C通信        在运动姿态检测、机器人平衡控制、VR头戴设备等应用中,MPU6050(三轴加速度计+三轴陀螺仪)是一个常见的姿态传感器。而ESP8266作为一款低功耗
    的头像 发表于 02-20 17:54 2807次阅读
    零知开源——<b class='flag-5'>ESP8266</b>+MPU6050 实现运动姿态检测

    ESP-12S规格书

    ESP-12s WiFi 模块是由安信可科技开发的,该模块核心处理器 ESP8266 在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位
    发表于 12-23 15:10 3次下载