ESP Rainmaker入门使用ESP32ESP
扫描二维码
随时随地手机看文章
RainMaker是pressif为ESP芯片提供的端到端解决方案。它使用户能够使用ESP32基于所有类型的AIoT解决方案构建无线控制和远程监控设备,只需单击部署。该平台提供便捷的访问功能,免费集成Alexa和Google Assistant,免费云部署,以及通过二维码提供WIFI。开发人员可以编写固件,并通过手机应用程序或语音助手立即与之交互,而无需在云或手机应用程序中进行任何编码。这使得制造商可以专注于固件开发,而不必担心应用程序或云集成以及其他基础设施。
这个解决方案的必要组成部分是:
声明服务(获取云连接凭据)
RainMaker代理(即RainMaker repo,开发固件)
RainMaker Cloud(后端,提供远程连接)
RainMaker手机App/CLI(远程访问的客户端实用程序)
在这个项目中,我们将控制一个led连接到ESP32使用ESP Rainmaker应用程序从我们的移动云。ESP32板和智能手机都需要连接到稳定的互联网,才能顺利工作。
ESP RainMaker工作流程
让我们看看应用程序如何连接和配置ESP32,并使其能够与物联网云平台通信。
首先,用ESP Rainmaker固件对ESP32板进行编程,上传成功后,生成QR码并显示在串行监视器上(不要忘记设置正确的波特率)。
一旦应用程序扫描QR码,它将启动与ESP32板的BLE通信。
ESP32通过蓝牙通信接收网络证书,使其能够连接到WIFI信号,并与ESP Rainmaker云建立连接。
所有传感器数据将被传送到ESP造雨者云,我们可以通过云服务或移动应用程序访问。
ESP RainMaker所需组件
ESP32董事会
Led灯泡(5v)
电路试验板
ESP32接口电路图
现在让我们从连接ESP32的led开始。我们将引线的正极连接到GPIO引脚15,另一端连接到ESP32的GND。至于开关,我们将使用板载启动开关。
基于Arduino IDE的ESP32编程
让我们看看如何使用Arduino IDE将ESP造雨器固件安装到ESP32板。为此,我们需要安装ESP32板包2.0版本,该版本支持ESP Rainmaker。如果您安装了较旧的软件包,请将其升级到v2.0。
打开Arduino IDE,然后转到文件>首选项。现在将以下链接粘贴到Additional Boards Manager url中,然后按Ok。
打开Arduino IDE并导航到Board Manager。安装最新版本的ESP32。
选择ESP32 Dev Module作为板,选择合适的flash大小和RainMaker分区方案。此外,启用在草图上传之前擦除所有Flash。
复制并编译下面提供的示例代码。
将编译后的代码上传到ESP32开发板上,选择正确的端口。
上传代码成功后,打开串口监视器,将波特率设置为115200。
现在按ESP32上的启用按钮。现在一个QR码被生成并显示在串行监视器上。
如上图所示,QR码不正确,复制串口监视器底部的URL并粘贴到任何浏览器。浏览器现在将显示正确且整洁的QR码。这是QR码,我们将扫描我们的ESP RainMaker应用程序来配置它。
ESP Rainmaker应用配置
下载ESP RainMaker应用程序并将其安装在您的智能手机上。打开应用程序并登录。
如果你之前没有添加任何设备,应用程序将显示主屏幕与添加设备按钮。
现在,打开你智能手机的蓝牙。点击“添加设备”,扫描浏览器中显示的二维码。
现在应用程序尝试与ESP32板建立BLE通信。一旦连接上,应用程序将显示一个屏幕来选择WIFI连接。
如果你的手机在应用程序中没有显示任何Wi-Fi网络,你可以通过点击加入其他网络选项手动输入WIFI凭据。
现在开始配置过程。它由几个步骤组成,在成功添加设备之前进行验证。勾选所有步骤后单击done。
设置过程完成后,ESP将连接到WIFI网络,并在应用程序主屏幕上以名为“Switch”的新设备出现。然后可以使用应用程序中的开关按钮控制LED。
Arduino代码说明
首先,我们必须包含成功执行代码所需的所有库。库仅包括RMaker.h、Wifi.h和wifi prove .h。
由于ESP32与蓝牙通信,因此我们使用指针service_name和pop定义了蓝牙凭据,这将在配置时使用。
然后我们定义了用于LED和开关的GPIO引脚。我们还创建了一个名为switch_state的布尔变量来存储开关状态。
sysProvEvent()函数获取Wi-Fi凭据,并将ESP32连接到路由器,用于系统发放事件。
write_callback()函数检查发送数据的设备并调整其参数。它是专门为器件LED设计的,根据LED引脚的状态来确定LED是否应该打开或关闭。如果设备为“LED”,参数为“Power”,则如果电源为高,则打开LED,如果电源为低,则关闭LED。
在setup()函数中,我们在115200波特打开串行通信,并使用pinMode()函数配置复位和LED引脚,GPIO引脚作为第一个参数,模式作为第二个参数。复位引脚设为输入引脚,LED引脚设为输出引脚。LED引脚初始设置为LOW状态。
然后我们将声明一个名为“ESP RainMaker node”的节点。后来我们宣布了开关装置。我们还声明了交换设备的回调功能,并启用了时区服务。后来我们用Rmaker组建了RainMaker乐队。start函数,然后调用sysProEvent函数进行配置。
环路监视GPIO 0并相应地更新switch_state参数。此外,它还将状态变化打印到串行监视器,以便调试。
ESP RainMaker项目的工作
点击Rainmaker App上的开关按钮
本文编译自iotdesignpro