蓝冠注册:基本的ESP8266 NodeMCU教程:Breadboard, Pinout和可调LED与脉宽调制(PWM)

蓝冠,蓝冠官网,蓝冠注册,

蓝冠注册《Q374919 》这是一个关于如何使用一个ESP8266 NodeMCU板的面包板来调暗LED应用脉宽调制(PWM)的基本教程。

如果您需要进一步澄清本教程中的一些概念,蓝冠注册 请参阅以下文章。他们从头开始解释概念和术语。第一个介绍了ESP8266 NodeMCU板,第二个介绍了如何使用Arduino集成开发环境(IDE)编程。

关于ESP8266, ESP-XX模块和NodeMCU的介绍性指南

ESP8266 NodeMCU编程:第一步

大纲

硬件

使用电路试验板

ESP8266 NodeMCU引出线

模拟和数字输入/输出

连接一个领导

编写和测试代码

硬件

NodeMCU V2

Elegoo EL-KIT-001 UNO R3项目完成Arduino的入门工具包和教程

这些是附属链接。这意味着如果你点击链接,蓝冠 购买推广项目,我们将收到一个小的附属委员会在没有额外的成本给你,产品的价格是相同的。如果您觉得没问题,我们将非常感谢您对我们工作和网站的支持。

使用电路试验板

实验板,也称为原型板,是一种用于电子电路原型制作的无焊料装置。我们只需要将电子元件的端子插入孔中,然后通过电线将它们连接起来。它们有不同的尺寸和形状,但它们的工作方式都是一样的。

请看下面的图片。黑线决定如何引脚连接在一起内部的面包板。横线上的插脚用导线连接在一起。红线(+标志)用于作为电源总线,蓝冠官网 而蓝线(-标志)通常用作地面总线。垂直的引脚也被连接在一起到部门。这种划分便于集成电路和其他组件安装在面包板上。

ESP8266 NodeMCU引出线

让我们考虑一个NodeMCU V2板,实际用途的NodeMCU V3是相同的。在本教程中,我们感兴趣的是电源引脚(3.3 V)、接地引脚(GND)和GPIO引脚。通常,NodeMCU板只有一个模拟引脚(A0)和几个数字引脚D0 – D9 (GPIO XX)。

NodeMCU V2引出线

NodeMCU V2引出线

如果我们想与数字pin交互,我们必须记住GPIO数字(0..16),而模拟pin使用别名(A0)。数字引脚可以用作输入或输出,而模拟引脚只能用作输入。默认情况下,pin被设置为输入,但是指定它们将如何在我们的程序中使用始终是一个好的实践。

pinMode(输入)

pinMode(5、输出)

pinMode (A0,输入)

模拟和数字输入/输出

数字引脚可以用作数字输入或输出,我们可以读或写高(3.3V)或低(0V)值。正如我们将看到的,数字引脚也可以作为一个模拟输出通过脉冲宽度调制(PWM)。

另一方面,模拟引脚可以用作模拟输入,但不能用作输出。这与Arduino板中的模拟引脚不同,在Arduino板中模拟引脚也可以用作数字输入和输出。另外,我们必须考虑到模拟引脚允许的最大电压是1v。

蓝冠:Qt 5框架技术和工具:QML, Qt Quick, Qt Creator和Felgo

蓝冠,蓝冠官网,蓝冠注册,

蓝冠《Q374919 》这是一篇简要的文章,旨在定义和阐明主要的Qt 5框架技术和工具,其中介绍了QML、Qt Quick、蓝冠 Qt Creator和Felgo等术语。

大纲

Qt框架

QML – Qt元语言

Qt Creator集成开发环境(IDE)

Felgo

太酷了!我该如何开始呢?

Qt框架

Qt是一个跨平台框架,用于为桌面(Linux、Windows和macOS)、移动设备(iOS、Android、Windows Phone)和嵌入式设备(Raspberry Pi等)创建应用程序。它是由Qt公司开发的。Qt具有一组功能丰富的现成的多平台模块各种不同的领域,如:多媒体(Qt多媒体),网络和连接(Qt网络,Qt蓝牙,Qt NFC,等等),图形(Qt小部件,Qt快,Qt快速控制,Qt OpenGL,等等),输入方法、传感器(Qt传感器),数据存储(Qt SQL, Qt XML等)等等。

查看Qt模块列表,查看所有可用模块。Qt文档真的很好。您可以在那里获得关于模块、类甚至实际示例的详细信息。

Qt库是用c++编写的,蓝冠官网 传统上这是Qt唯一支持的编程语言,但是现在Qt框架可以在c++、QML、Javascrypt和Python中使用。

Qt框架在商业和开放源码许可下有双重许可。关于开源许可,Qt的核心目前是在GPLv3和LGPLv3下许可的。有些模块只在GLPLv3下提供(例如Qt图表、Qt数据可视化等),有些工具只在商业许可中提供(例如用于自动化的Qt和用于创建设备的Qt)。查看Qt模块列表,了解它们是在哪些条款下授权的。

经典的桌面风格的应用程序可以在Qt中开发Qt小部件模块和c++。或者,Qt Quick模块可以用于设计更便于移动和流畅的QML、JavaScript甚至c++应用程序,如果需要的话。

QML – Qt元语言

QML是一种用于设计图形用户界面(gui)的标记语言。它是Qt Quick模块的一部分。QML是为移动设备设计的,提供流畅的用户体验、蓝冠注册 触摸屏功能和流畅的动画。然而,QML也可以用于设计桌面应用程序。作为多平台的Qt/QML,您可以为桌面、移动设备和嵌入式设备设计和部署相同的应用程序。

QML文档被定义为分层对象树。QML gui的逻辑部分可以用JavaScript和/或c++编程。

蓝冠注册:开始使用ESP8266 NodeMCU远程控制从自定义应用桌面,iOS和Android

蓝冠,蓝冠官网,蓝冠注册,

蓝冠注册《Q374919 》本教程演示了如何从工作在桌面、iOS和Android上的自定义多平台应用程序中控制ESP8266 NodeMCU板。示例应用程序将允许我们打开和关闭ESP8266 NodeMCU内置LED。

我们将在Arduino概要中配置一个异步web服务器并开发一个API REST。然后,我们将使用Felgo标准开发工具包(SDK)开发一个多平台app。Felgo利用Qt (Qt Creator, QML, Qt Quick, JavaScript等)开发多平台应用程序。

这个示例是介绍性的,蓝冠注册 很容易理解。如果您不熟悉前一段的所有术语,不要感到不知所措!下面你可以找到一些对你有帮助的教程。如果您不熟悉Arduino IDE或Felgo,请检查它们。

ESP8266 NodeMCU编程:第一步

Qt, QML和Felgo教程。美国宇航局天文图片的一天应用程序桌面,iOS和Android

硬件

NodeMCU V2

NodeMCU V3

这些是附属链接。这意味着如果你点击链接,蓝冠官网 购买推广项目,我们将收到一个小的附属委员会在没有额外的成本给你,产品的价格是相同的。如果您觉得没问题,我们将非常感谢您对我们工作和网站的支持。

ESP8266 NodeMCU草图

自定义应用程序桌面,iOS和Android

ESP8266 NodeMCU草图

我们可以使用默认的ESP8266WebServer,蓝冠 但是ESPAsyncWebServer比上一个有一些优势,因为它是一个异步web服务器,因此它可以处理多个客户端。而且,API调用可以更精确地定义。所以,让我们看看如何利用它。

我们需要为我们的草图安装以下库。如果你不知道如何在Arduino IDE中安装它们,看看ESP8266 NodeMCU编程的最后:第一步。

ArduinoJson(版本5),可以从Arduino IDE库管理器中安装。

ESPAsyncTCP。下载存储库的zip文件,并通过Arduino IDE安装它。

ESPAsyncWebServer。下载存储库的zip文件,并通过Arduino IDE安装它。

让我们看一下草图代码。第一部分包括一些头文件,定义一些常量(WiFi标识符和密码,服务器端口,请求URL和参数),声明我们的服务器对象。

include < ESP8266WiFi.h >

include < ESPAsyncTCP.h >

include < ESPAsyncWebServer.h >

include < ArduinoJson.h >

const char [] = “WiFi_SSID”;

const char pass[] = “WiFi_password”;

const int port = 2390;

REQUEST_LED = “/led”;

const字符串PARAM_STATE = “state”;

AsyncWebServer服务器(港口);

接下来,我们定义两个helper函数来获取和设置内置的LED状态。请注意,内置的LED在低状态下是亮的。

void setLEDstate(bool state) {

digitalWrite (LED_BUILTIN状态?低:高);

}

bool getLEDstate () {

回报! digitalRead (LED_BUILTIN);

}

我们的web服务器是异步的,因此我们必须在setup函数中定义它的所有行为,因此在本例中我们的loop函数是空的。设置功能的第一部分设置数据传输速率,声明内置LED引脚为输出,关闭引脚,连接我们的WiFi网络,将WiFi SSID和IP地址打印到串行监视器上。

无效的设置(){

Serial.begin (115200);

pinMode (LED_BUILTIN、输出);

digitalWrite (LED_BUILTIN、高);

WiFi.mode (WIFI_STA);

WiFi。开始(ssid,通过);

系列。打印(“连接”);

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

并同时(“。”);

延迟(300);

}

以(” “);

系列。打印(“WiFi连接到:”);

以WiFi.SSID ());

系列。打印(“IP地址:”);

以WiFi.localIP ());

}

无效循环(){}

我们可以声明server。在我们的草图中拦截请求的语句。下面的代码显示了我们如何拦截GET (HTTP_GET)对/led的请求。REQUEST_LED是一个字符串常量(” /led “),使用c_str函数将其转换为char *常量。

然后,我们检查PARAM_STATE参数(“state”)是否在请求(has_param)中。如果是这样,我们将获得它的值(getParam)作为字符串,并将其转换为整数值(toInt)。整数值会自动转换为布尔值。

蓝冠注册:Qt, QML和Felgo教程。美国宇航局天文图片的一天应用程序桌面,iOS和Android

蓝冠,蓝冠官网,蓝冠注册,

蓝冠注册《Q374919 》这是一个介绍性教程,蓝冠注册 让您开始使用Qt/QML和Felgo来为桌面(Linux, Window & macOS)和移动设备(iOS & Android)设计多平台应用程序。本教程开发了一个完整的应用程序:NASA Astronomy Picture of the Day应用程序。本教程还描述了如何创建自定义QML组件,以及如何通过访问NASA开放api来执行HTTP请求。

看看下面的视频,看看应用程序的行动!这个应用程序可以在Linux, Window, macOS, Android和iOS上运行,所有的代码都是一样的。是不是很酷?但是,Felgo路线图还包括为云中的不同平台构建应用程序,支持嵌入式和物联网设备,并将应用程序发布到web上。

如果你不熟悉Qt框架或Felgo,蓝冠 我建议你先看看Qt 5框架技术和工具:QML, Qt Quick, Qt Creator和Felgo。

大纲

当天天文图片(APoD)应用

美国宇航局APoD开放API

执行HTTP请求

创建自定义QML组件

我如何执行应用程序?在我的手机里实时刷新怎么样?

我可以做什么来学习和改进这个应用程序?

当天天文图片(APoD)应用

让我们来看看如何设计一个QML应用程序来访问NASA天文图片当日开放API,蓝冠官网 并通过实时代码重载在我们的手机或平板电脑上进行测试。最酷的是你可以使用桌面操作系统(Linux, Windows和macOS)和移动设备(Android或iOS)的任何组合。

APoD应用程序的代码是开源的,可以在我们的GitHub上的APoDapp库中找到。

首先要做的是下载并安装Felgo。它集成了所有需要的东西。Felgo包括Qt框架和Qt Creator IDE。安装之后,执行Felgo,您应该会看到Qt Creator。请看示例部分,看看这个软件开发工具包(SDK)可以做些什么。

下一步是创建一个新的应用程序,点击File -> new File or Project,然后选择Felgo Apps, Single-Page Application。将其命名为“APoDapp”并选择目标文件夹。在工具箱选择中,只选择Felgo desktop,单击next,再次单击next和finish。

主要的QML代码。qml是qml对象的层次树。import语句定义我们想要使用的模块和版本。如果不同模块中有同名的组件,我们可以根据需要设置别名(如Quick2)。

我们的应用程序的总体结构如下所示。主节点中的App组件。NavigationStack组件添加了一个导航栏,该导航栏显示页面标题,并用于在页面之间导航。页面是组件的容器。

蓝冠官网:ESP8266 NodeMCU编程:第一步

蓝冠,蓝冠官网,蓝冠注册,

蓝冠官网《Q374919 》在本教程中,蓝冠官网 我们将学习如何编程NodeMCU板。第一步是连接它们,安装适当的驱动程序。之后,我们将学习如何使用Arduino IDE来部署我们的第一个程序(示意图)。

这个指南只针对NodeMCU板吗?

不,这里描述的步骤应该与任何ESP8266开发委员会相同或非常相似。要快速了解所有这些术语,请参阅ESP8266、ESP-XX模块和NodeMCU的入门指南。

硬件

NodeMCU V2

NodeMCU V3

这些是附属链接。这意味着如果你点击链接,蓝冠注册 购买推广项目,我们将收到一个小的附属委员会在没有额外的成本给你,产品的价格是相同的。如果您觉得没问题,我们将非常感谢您对我们工作和网站的支持。

大纲

连接到NodeMCU

编程语言和工具

Arduino集成开发环境(IDE)

写和部署一个草图

管理库

进一步的阅读

连接到NodeMCU

大多数NodeMCU板都配备了一个微型USB端口。你只需要使用一个USB到micro USB电缆连接你的NodeMCU到计算机。当你的NodeMCU第一次开机时,蓝冠 内置的LED会快速闪烁,然后关闭。请记住,有些NodeMCU主板预装了一个程序,可以让LED一直闪烁。

注意:确保你的USB数据线支持数据传输,而不仅仅是电源,特别是如果你使用的是另一个设备的充电USB数据线。如果你用这种电缆连接你的NodeMCU,你会看到LED在设备通电时闪烁,但你将无法与它交流。

如果您正在使用Linux,则不需要安装驱动程序,因为它们已经在大多数主要的Linux发行版中安装了。然而,如果你使用的是Windows或macOS,很可能你必须安装驱动程序。要安装适当的驱动程序,你需要知道你的NodeMCU板的USB总线转换芯片的家庭。这些信息通常是由制造商提供的。主要有两个家族:CP210X (NodeMCU V2)和CH340G/CH341 (NodeMCU V1和V3)。

蓝冠官网 :Tensorflow Lite集成Qt和Felgo用于iOS和Android多平台机器学习应用

蓝冠,蓝冠官网,蓝冠注册,

蓝冠官网《Q374919 》在之前的一篇题为《使用Tensorflow, Qt和Felgo在桌面,iOS和Android上的机器学习》的文章中,蓝冠官网 通过一个集成了两个谷歌预训练神经网络用于图像分类和物体检测的具体例子,探讨了如何将Tensorflow与Qt和Felgo集成。

这篇文章的重点是开发相同的应用程序,但在这种情况下使用Tensorflow Lite。TensorFlow Lite是TensorFlow针对移动和嵌入式设备的轻量级解决方案,目前处于技术预览状态。TensorFlow Lite使用许多技术来实现移动应用程序的低延迟、更小更快的神经网络模型。除此之外,蓝冠注册Tensorflow Lite的编译更加简单快捷。

看看我们之前的文章,这篇文章只提到了这款应用程序和这里开发的应用程序的区别。这意味着这里给出的所有代码和解释都适用于这种情况。

图像分类和目标检测示例

其目标是开发一个应用程序,用户可以在两个谷歌预训练的神经网络模型中选择一个。以下步骤描述了如何构建这样的应用程序。

克隆存储库

要克隆这个存储库,执行下面的命令,递归地克隆它,因为TensorFlow存储库在其中。

git克隆——递归https://github.com/MechatronicsBlog/TensorFlowLiteQtVPlay.git

如何建立TensorFlow Lite Qt

我们需要为我们的目标平台:iOS和Android构建TensorFlow Lite。在本例中,make用于为iOS(和Linux)构建TensorFlow Lite,蓝冠 而bazel用于Android。以下部分中的shell命令必须在主Tensorflow文件夹中执行。

构建Linux

下载Tensorflow Lite依赖项进行编译,并按如下方式进行编译。

tensorflow / lite /工具/ / download_dependencies.sh

让- f。/ tensorflow / lite /工具/制作/ Makefile

为Android构建(在Linux上)

首先,我们需要在主Tensorflow文件夹中的工作区文件中设置Android SDK和NDK路径。我们只需要包含以下配置,设置适当的路径和api_level值。如果你需要更多关于如何下载和安装NDK的信息,请看我们之前的文章。更多关于如何下载和安装Android SDK的信息,请访问Android Studio网站。

android_sdk_repository (

name = ” androidsdk “,

路径= ” / home / user / Android sdk”

)

android_ndk_repository (

name = ” androidndk “,

路径= ” / home / user / Android / android-ndk-r14b”,

api_level = 21,

)

然后,执行以下命令,使用bazel构建系统为ARM指令编译Tensorflow。

bazel build—cxxopt=’—std=c++11′ -c opt—config=android_arm

tensorflow / lite / java: libtensorflowlite_jni

面向iOS (macOS)的构建

下载用于进行编译的Tensorflow Lite依赖项,并通过执行下一个脚本进行编译。

tensorflow / lite /工具/ / download_dependencies.sh

tensorflow / lite /工具/ / build_ios_universal_lib.sh

如何使用TensorFlow Lite在您的Qt移动应用程序

这个应用程序的源代码在GitHub存储库中。本节将重点介绍与上一个版本相比的主要区别。

链接TensorFlow Lite在您的项目

下面的代码显示了添加到我们的qmake项目文件中的行,目的是为了

包括TensorFlow Lite头文件和TensorFlow Lite库的链接

取决于目标平台。

TensorFlow Lite -全局

TENSORFLOW_PATH = $ $ PWD / tensorflow /

TFLITE_MAKE_PATH = $ $ TENSORFLOW_PATH / tensorflow / lite /工具/

include += $$TENSORFLOW_PATH \

$ $ TFLITE_MAKE_PATH /下载/ \

$ $ TFLITE_MAKE_PATH /下载/特征\

蓝冠:在桌面,iOS和Android上使用Tensorflow, Qt和Felgo进行机器学习

蓝冠,蓝冠官网,蓝冠注册,

蓝冠《Q374919 》Felgo和Qt是多平台应用程序的出色工具。Qt有一套丰富的随时可用的multiplaform组件,蓝冠 用于不同的领域,如多媒体、网络和连接性、图形、输入方法、传感器、数据存储等等。Felgo进一步简化了移动设备和嵌入式设备的部署,并增加了一些不错的特性,比如分辨率和方面独立性,以及额外的组件和控件。Felgo的一个很好的特性是它不局限于移动设备,所以你可以在你的开发计算机上测试和原型你的应用程序,这肯定比编译和部署你的应用程序到模拟器更快。您甚至可以使用Felgo live reloading来查看代码的变化,几乎是即时的。Android和iOS设备也支持实时重载,这对于在移动设备上进行微调或测试代码片段非常有用。

TensorFlow是谷歌的开放机器学习框架。它灵活的体系结构允许跨各种平台(cpu、gpu、TPUs)和体系结构(桌面、服务器集群、蓝冠官网 移动设备和边缘设备)轻松部署计算。它支持Linux, macOS, Windows, Android和iOS等等。

TensorFlow有不同的味道。主要的一个是TensorFlow。另一个是TensorFlow Lite,它是TensorFlow为移动和嵌入式设备提供的轻量级解决方案。然而,TensorFlow Lite目前处于技术预览状态。这意味着目前还不能支持所有的TensorFlow特性,尽管在不久的将来它将成为移动设备和嵌入式设备的参考。

网上有很多关于如何使用Tensorflow构建应用程序的资料。首先,我们强烈推荐由Pete Warden, TensorFlow移动/嵌入式团队领导的免费电子书TensorFlow构建移动应用。

下面的示例使用了最初的TensorFow风格。它展示了如何将TensorFlow与Qt和Felgo集成,创建一个简单的多平台应用程序,蓝冠注册 其中包括两个预训练的神经网络,一个用于图像分类,另一个用于对象检测。本示例的代码托管在GitHub上。

本教程也可以在Felgo博客上找到。

示例应用程序

这就是这个例子可以做的:图像分类和目标检测。Tensorflow提供了机器学习框架,而Felgo和Qt促进了应用程序部署到多个平台:桌面和移动平台。

蓝冠关于ESP8266, ESP-XX模块和NodeMCU pinout的入门指南

蓝冠,蓝冠官网,蓝冠注册,

蓝冠《Q374919 》 什么是SoC?

片上系统(SoC)是集成电路(Chip),蓝冠 它集成了计算机或其他电子系统的全部或大部分组件。

ESP8266是什么?

ESP8266是一个SoC,包括一个ten二氧化硅Xtensa LX106 32位80 MHz (160 MHz overclock)微控制器单元(MCU),一个IEEE 802.11 b/g/n 2.4 GHz Wi-Fi微控制器,11个GPIO(通用输入/输出)引脚和模拟输入。不过,它没有内置的闪存来存储数据和指令。它的技术名称是ESP8266EX。ESP8285是ESP8266的演变,具有1兆字节的内置闪存。

什么是ESP-XX模块?

这些是用SoC ESP8266制作的模块。它们有内置的闪存。大多数ESP-XX模块包括一个WiFi天线。其中一些被装在一个金属盒子里,蓝冠官网 盒子上有联邦通信委员会(FCC)的批准印章。此外,他们中的一些包括一个小的板上LED连接到一个GPIO引脚(通常GPIO 2),这可以被编程。

ESP-XX模块的主要区别在于物理布局、形状因素、闪存大小和WiFi天线:陶瓷、蚀刻印刷电路板(PCB)等。它们需要额外的组件来形成一个可行的开发系统(USB总线转换芯片,外部电源供应,等等)。对于初级开发人员来说,蓝冠注册 最好考虑更大的板,比如NodeMCU,因为它们包含了编写它们所需的所有组件。

有许多ESP-XX模块可供选择:ESP-01, ESP-02,…,ESP-12, ESP-12E等。在ESP8266模块家族维基中,你可以找到所有模块的图片和一个总结其主要功能的表格,在页面的最后。

NodeMCU是什么?

NodeMCU指的是两个东西:一个开源的固件和一个基于ESP-12或ESP-12E模块(因此基于SoC ESP8266)的开放硬件开发板。两个模块都有4兆字节的闪存。

有几个NodeMCU板版本。它们之间的主要区别是可用的GPIO引脚的数量和主板尺寸。这是NodeMCU的三个版本。

NodeMCU -第一代- v0.9 – V1

NodeMCU V1的板子现在已经过时了。它基于ESP-12模块。一般来说,板子是黄色的。它是相当宽(31毫米),这使得很难适应它在一个面包板。它需要多达10针在面包板由于它的大宽度。还有6个未使用(未连接,保留)GPIO引脚。reset按钮将重新初始化加载的程序。按住flash按钮和复位按钮,将板子设置为闪烁模式。此模式用于上传模块固件。不过,这也可以从集成开发环境(IDE)自动完成,比如Arduino IDE。除了ESP-12 LED之外,这个板还有一个额外的LED。这个额外的LED连接到GPIO 16。USB总线转换芯片是CH340G。该芯片的目的是通过微USB端口在主板和连接的计算机之间传输数据。

NodeMCU -第二代- v1.0 – V2

NodeMCU V2板比它的前身(26毫米)更窄,解决了在面包板上安装它的问题。芯片升级为ESP-12E模块。ESP-12和ESP-12E模块基本相同。ESP-12E有一些额外的引脚,但它们在大多数情况下是没有用的。USB总线转换芯片是从CP210X家族(CP2101…CP2105)。从实用的角度来看,它的特点是相同的那些CH340G芯片。