Arduino IDE for ESP8266 快速入门(三)ESP8266资源简介

Arduino IDE for ESP8266 快速入门(三)ESP8266资源简介,第1张

来看一下ESP-12模块引脚
上图是安装在各种开发板上的那个核心模块,标注的这些引脚全都是可以在Arduino中用的,具体来说是11个GPIO(其中2个被串口0占用),还有PWM、SPI、IIC、串口1、一个ADC输入,不如Arduino UNO接口多,但是一般应用下这个IO口数量还是可以的,上面那个图是有点错误的,大家不要以上图作参考

我们再来看一下NodeMCU开发板的引脚图
最开始那个ESP-12的引脚图有点误导人的感觉,其蓝色标签上写着的 “Dxx” 其实是ESP8266芯片内部的GPIO编号,在wemos和nodemcu开发板上也有标着 “Dxx” ,而这两个号码是不一样的,举例说明在Arduino中 *** 作NodeMCU上的D5(GPIO14)这个IO口,使其输出高电平,要写

digitalWrite(D5,HIGH);

或者

digitalWrite(14,HIGH);

不要搞错了

wemos的两款开发板上的 “Dxx” 与NodeMCU开发板的 “Dxx” 是相同的。

本文采用 ESP8266 NodeMCU 板开发,该开发板板载LED灯,同IO引脚为D0(GPIO16)口相连,LED灯为共阳接法,也就是要想LED灯点亮,D0(GPIO16)口要输出低电平“0”。

打开 Arduino 点击 “工具” - “开发板” ,选择 NodeMCU10(ESP12E Module)
点击菜单栏 “文件” - “示例”- “01Basice”- “01Basice”- “Blink”, 可查看示例LED闪光灯控制程序,该程序控制LED灯亮一秒灭一秒。

程序说明:
1在使用输入或者输出功能前需通过 pinMode() 函数配置引脚模式。
其调用形式为:
pinMode(pin,mode);

I/O引脚的三种模式分别为: INPUT —— 输入模式; OUTPUT —— 输出模式;INPUT _PULLUP —— 输入上拉模式;
2配置为输出模式后,需用通过 digitalWrite() 函数输出高电平或低电平;其调用形式为:
digitalWrite(pin,value);

a点击 “工具” - “端口” ,选择在设备管理中看到的串口。
b点击 “工具” - “Upload Speed” ,选择 115200
c点击 上传 ,将写的程序烧录到 MCU 中,期间 ESP8266 的指示灯会一直闪烁,在 Arduino 控制台中会显示上传进度,上传到 100% 就可以查看效果了。

在上传完车后,开发板上LED灯将会亮一秒灭一秒的循环进行下去。

快速了解wifi模块 这个视频就够了 ESP8266

太极创客零基础入门学用Arduino 第一部分 合辑

太极创客零基础入门学用Arduino 第三部分 智能应用篇 合辑
P12 3-11 Arduino内存1
P13 3-12 Arduino内存2 EEPROM
P14 3-13 Arduino内存2 内存优化
P15 3-14 安装第三方库

ESP8266教程零基础入门学用物联网-基础知识篇(太极创客团队)

零基础入门学用Arduino-专项教程2(面向对象基础)1 初始面向对象

零基础入门学用Arduino-专项教程2(面向对象基础)

>测量太阳能电池板、UPS和其他日常使用电池的电压会花费大量时间。如果,给这些设备添加一个WiFi模块,是不是读取电压更方便了?为此,英锐恩单片机开发工程师分享了一个来自国外的基于NodeMCU开发的带WiFi模块的电池电压监控系统。
使用该系统可以连接到我们本地家庭WiFi的WiFi设备,可以从控制器读取电压,并向最终用户更新当前电池电量。为此,在本方案中使用nodemcu WiFi模块。它不仅可以用作控制器,还可以将其自身作为服务器或客户端连接到WiFi网络。电池监控电路是传统的分压器电路。我要测量12伏电池。可以修改电路以测量24伏电池,甚至更多48伏并联电池组。
Nodemcu是一个很小的设备,它的工作电压为33伏。由于其工作电压为33伏,因此其引脚只能提供和吸收33伏的电压。大于5伏的电压可能会烧断引脚或炸掉节点MCU。在我们的情况下,我们要测量12伏电池,nodemcu adc(模拟至数字通道)只能接受33伏。我们需要在这里聪明地比赛。我们要做的是将两个电阻器之间的电压分压,并仅测量一个电阻器上的电压,剩余的电阻器电压将通过数学计算。典型的分压器电路和公式如下:

接下来,我们来计算一下Rtop和Rbottom的值。在这里,我们需要认真考虑一些重要的因素。
(1)低欧姆电阻会吸收大量电流,并且电线可能会立即被加热。因此,电线可能在几秒钟内熔化。因此,对于较大的安培小时电池,请始终使用足够数量的电阻。这里选择了一个电阻Rbottom为10k欧姆。
(2)在充电过程中,电池电压可能会增加到18伏。例如,在充满阳光的情况下,150瓦的太阳能电池板在6安培时输出17伏特,输出电压甚至可以达到18伏特以上。太阳能控制器还输出电压大约等于15伏,可为电池充电。
公式计算
我将测量Rbottom两端的电压,并随机决定其值为10k欧姆。我们知道Vout可以高达33伏,因为nodemcu可以工作并且在其I/O引脚接受最大33伏。电池充电时Vin为18伏,现在我们可以计算Rtop的值。

现在,如果电池侧有18伏电压,则将在电阻器之间分配电压,在10k电阻器上将下降33伏,在4454k电阻器上将剩下147伏。4454 k ohm电阻在市场上不可用,我将使用高于该额定值的电阻,可以在任何电子产品商店中找到47 k ohm电阻。如果电池没有充电,并说提供12伏电压,电阻两端的压降将是多少?

从以上讨论可以明显看出,Rbottom两端的电压现在不会超过33伏。我希望读者对计算有意义。现在的问题是如何通过nodemcu将333伏转换为12伏,或者如何从333伏预测电池侧的电压为12伏。这里涉及更多的数学。由于电阻值是固定的,因此我们可以计算电阻两端相对于电源的电压比,并将其用于代码中表示电源的实际电压。比率的计算方法如下:

上面给出了两种情况,当电源为18伏时和电源为12伏时,两种情况的比率均为恒定值。该比率在代码中用于预测实际的电源/电池电压。比率乘以Rbottom处的实际电压值。
方案电路图如下。我正在使用nodemcu的ADC0通道来测量电池电压。电池和nodemcu电源都必须接地,以完成电路。这是一个最常见的错误,将测量两个接地未一起接地的电压。如果未将nodemcu接地与电池接地绑在一起,则adc0引脚将变为浮动引脚,并开始读取浮动值。

在完成电路之后,是时候继续编写代码了。代码是用arduino IDE编写的。我在代码中使用了ESP8266WiFih库,因此请首先确保将此库安装在arduino库文件夹中。如果不存在,请从github下载并首先安装。然后输入要与您的nodemcu连接的WiFi网络的SSID和密码。最有可能的是您的家庭WiFi。因此,只需输入ssid和密码。现在,将代码上传到nodemcu中。上传之前,请确保您从arduino开发板上选择了正确的开发板。如果nodemcu没有出现在您的面板下拉菜单中,则从面板管理器导入其链接并安装其必要文件。
在浏览器中点击分配的IP后,您将看到显示电池状态和按钮的页面。随时按此按钮可获得更新的温度。
注意:Nodemcu和要查看其电压的客户端移动设备或台式机必须连接到同一WiFi。如果您的服务器节点计算机和客户端移动设备或计算机,便携式计算机等连接到不同的网络,则在点击IP后无法查看任何内容。
源代码附件:
带WiFi模块的电池电压监控系统txt
以上就是英锐恩单片机开发工程师们分享的基于NodeMCU开发的带WiFi模块的电池电压监控系统。

ESP8266芯片有17个GPIO引脚(GPIO0~GPIO16)。
这些引脚中的GPIO6~GPIO 11被用于连接开发板的闪存(Flash Memory)。如果在实验电路中使用GPIO6~GPIO11,NodeMCU开发板将无法正常工作。因此建议您不要使用GPIO6~GPIO 11。

GPIO2引脚 在NodeMCU开发板启动时是不能连接低电平的。
GPIO15引脚在开发板运行中一直保持低电平状态。因此请不要使用GPIO15引脚来读取开关状态或进行I²C通讯。
GPIO0引脚在开发板运行中需要一直保持高电平状态。否则ESP8266将进入程序上传工作模式也就无法正常工作了。您无需对GPIO0引脚进行额外 *** 作,因为NodeMCU的内置电路可以确保GPIO0引脚在工作时连接高电平而在上传程序时连接低电平。

GPIO 0-15引脚都配有内置上拉电阻。这一点与Arduino十分类似。GPIO16 引脚配有内置下拉电阻。

ESP8266 只有一个模拟输入引脚(该引脚通过模拟-数字转换将引脚上的模拟电压数值转化为数字量)。此引脚可以读取的模拟电压值为 0 – 10V。请注意:ESP8266 芯片模拟输入引脚连接在10V以上电压可能损坏ESP8266芯片

esp8266的I2C是可以定义引脚的,默认的是SDA为4,SCL为5号引脚

ESP8266的SPI端口情况如下:

GPIO14 — CLK
GPIO12 — MISO
GPIO13 — MOSI
GPIO 15 — CS(SS)

esp8266目前做的比较好的开发版有几款,分别是wemos的
WeMos D1 WiFi Arduino UNO 开发板,这款外形兼容传统Arduino UNO,缺点是不够小巧

还有大名鼎鼎的NodeMCU
这款比较小巧,安装在面包板上很容易,要注意上面的USB转串口芯片分CP2102和CH340两种,个人认为CP2102比较好用,在Mac下用的话最好选择CP2102版本的
另外一款也是最Mini的,适合自己DIY组装的wemos D1 mini
三种开发板或许只有外观上的区别了……另外注意一下,NodeMCU开发板的引脚要比其他两款多一些,那些引脚是用来连接SD卡的,在Arduino里并不能把这些引脚当做普通IO口来用,如果不Care的话,其他方面与另外两款没什么区别。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/12975152.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存