使用基于树莓派Pico W的web服务器控制LED
扫描二维码
随时随地手机看文章
Raspberry Pi Pico W是一款基于RP2040微控制器的低成本开发板。它具有内置的2.4 GHZ WIFI功能,提供无线连接到该板的功能。该板采用英飞凌CYW43439 WIFI+ BLE芯片,增加了板载单频段2.4 GHZ无线接口(802.11n)。因此,它使用户能够基于所有类型的AIoT解决方案构建无线控制和远程监控设备。微控制器可以使用Micropython和C/ c++编程。
在这个项目中,我们将使用互联网上的网页来控制连接到Pico W的led。Pico - W板和智能手机都需要连接到稳定的互联网,以便顺利工作而不会滞后。这种LED可以在世界任何地方使用智能手机或任何电脑进行控制。此外,我们将了解板树莓派及其功能,规格,并使用Arduino IDE编程。我们之前构建了许多基于web服务器的物联网项目,您可以从任何地方控制设备。
大多数情况下,我们看到Micropython是用来使用Micropython ide(如thony)对Raspberry Pi Pico W进行编程的。但是,对于大多数人来说,用Python编程并不像用Arduino IDE用C/ c++编程那么舒服。因此,我们将学习如何在Arduino IDE中配置和编程Pico W。
树莓派Pico W
Raspberry Pi Pico W板提供RP2040芯片所需的外部电路,如闪存、晶片、电源、去耦、USB接口等。RP2040微控制器在板的左右边缘提供了大部分引脚作为用户I/O引脚。然而,它的四个I/O引脚专门用于内部功能,如控制LED,管理板载SMPS电源和传感系统电压。Pico W还具有使用英飞凌CYW43439的板载2.4GHz无线接口,通过SPI连接到RP2040。该板配备了ABRACON授权的机载天线。
树莓派Pico W本身能够从宽范围的输入电压(1.8v至5.5v)中使用内部降压-升压转换器产生所需的3.3伏功率。
主要特点:
•该板共有40针(21mm×51mm) 1mm厚的PCB与0.1“通孔引脚
•有26个电压水平为3.3v的I/o引脚。
•23个GPIO是数字的,另外三个是ADC能力
•I/O电压1.8 ~ 3.3 v
•3手臂SWD(串口线调试)引脚接口
•双核cortex M0处理器,频率高达133MHz
•片上锁相环允许可变核心频率
•264kB高性能SRAM
•12位500kbps模数转换器(ADC)
•有各种I/O数字外设选项
•2个UART, 2个I2C, 2个SPI, 16个PWM通道
•1个定时器,4个闹钟,1个实时时钟
•2个可编程输入输出(PIO)模块,总共8个状态机
•灵活的,用户可编程的高速I/O
Raspberry Pi Pico W Pinout
电路板两侧共有40个引脚。引脚的主要功能解释如下。
•GP0-GP28:这些是通用输入输出引脚,可以与I/O设备连接以发送和接收数据。它们可以同时用于输入和输出功能。
•GP26-GP28:这三个引脚也可以用于连接模拟传感器或设备。
•GP0:内置led灯已连接。
•GND:该引脚用于为I/O设备提供接地连接。有几个接地引脚,以方便连接。
•RUN:该引脚启用或禁用RP2040微控制器,这意味着启动或停止Pico W.短引脚使其低复位RP2040。
•AGND:该引脚用于模拟设备接地。此接地连接用于ADC_VREF引脚。
•ADC_VREF: ADC参考电压是为模拟输入设置参考电压的输入引脚。
•3V3(OUT):该引脚为RP2040和I/O引脚提供3.3v,由板载SMPS产生。因此,它可以为外部I/O设备供电3.3v,但最大输出电流取决于RP2040负载和VSYS引脚处的输入电压,建议不要超过约的电流限制。300 ma。
•3V3_EN:板载SMPS使能引脚。它通过一个100k Ω电阻被拉高。短路引脚使其低,使3.3v电源失效,导致RP 2040断电。
•VSYS:为系统提供输入电压的引脚,允许范围为1.8V ~ 5.5V,用于产生3.3v电压,通过板载电源转换器为RP2040和GPIO供电。
•VBUS:引脚完全连接到micro-USB的电源引脚1,如果USB供电,一般为5v。
Raspberry Pi Pico W所需组件
•树莓派Pico W
•Led灯泡(5v)
•电路试验板
树莓派Pico W接口电路图
现在让我们从连接Led与Pico W板开始。Led正极接GP2,另一端接单板接地。单板的电源由USB接口提供。
现实生活中的电路如下图所示。
用Arduino IDE编程树莓派Pico W
让我们看看如何使用Arduino IDE对树莓派Pico W板进行编程。为此,我们需要安装支持Raspberry Pi Pico w的Raspberry Pi RP2040板包。如果已经安装,请离开安装过程。
•打开Arduino IDE,进入File > Preferences。现在将给定的链接粘贴到Additional Boards Manager url中,并按Ok保存。
•打开Arduino IDE,导航到Boards Manager,搜索“Pico”。您将找到带有电路板名称的软件包,安装它。
•现在,选择板为Raspberry Pi Pico W,其余的保持原样。
•最后,复制并编译下面提供的示例代码。
•要上传代码,您必须将Pico W板连接到显示在任何COM端口的计算机。为此,同时按住Pico W上的BOOTSEL按钮,立即使用micro-USB电缆将Board连接到计算机。释放BOOTSEL按钮,如果RPI-RP2驱动器通知出现在您的计算机上。
•文件管理器,这意味着驱动器启动模式。因此,设备已准备好接受代码/固件。
•将编译后的代码上传到Pico W板,选择正确的端口。
•上传代码成功后,打开串口监视器,将波特率设置为115200。
Arduino代码说明
该程序在成功连接到Internet后从远程服务器读取数据。根据接收到的数据生成输出响应。
首先,我们需要知道如何将Pico W连接到WiFi网络,使用web数据,并构建web接口。为此,我们必须将Pico W作为客户端连接到WiFi网络。我们必须包括所有必要的库,以成功连接到网络。因此,库只包括Wifi.h。此外,我们还定义了进一步编程所需的变量和对象。
Arduino IDE中包含的WiFi库提供了通过WiFi网络连接和通信的所有必要功能。我们需要通过我们的登录凭据,包括SSID和密码来加入加密的网络。
接下来,我们定义所需的字符常量来存储我们想要连接的网络的SSID和密码。你必须传递你的网络参数。
定义字符串变量来存储来自浏览器的HTTP请求和板载LED的状态。这是必要的,因为通过使用字符串变量,我们可以在网页上显示LED状态。
定义变量来保持时间是至关重要的,因为它允许在我们的网页上超时。如果没有它,我们将永远无法断开连接,并最终耗尽连接。
然后,我们创建一个名为“server”的WiFiServer对象。我们传递HTTP端口号。80作为参数。
在Setup中,我们启动串行监视器。然后我们将板载LED引脚设置为输出和LOW,以使用命令pinmode()保持LED关闭。
然后我们使用WiFi。开始启动网络连接,我们在此命令中传递SSID和密码。
然后我们将监视WL_CONNECTED常量的连接状态。如果while条件为真,则没有连接,循环将继续运行。在等待期间,我们以半秒的延迟将周期作为进度指示器打印到串行监视器上。最后,成功连接后,IP地址将在串行监视器上打印。此外,我们还使用server.begin()命令启动我们创建的wiiserver对象。
在循环中,我们等待传入的客户端连接,并在连接建立时启动超时。如果客户端发送信息来控制LED,我们将分解HTTP请求以提取URL字符串中的值。根据该值,我们打开或关闭LED,并相应地设计屏幕上的按钮。如果需要的话,可以在HTML样式表设置中修改按钮形状或颜色。
最后,您将找到完整的代码。
树莓派Pico W工作流程
我们将执行的任务是使用基于web的界面来控制LED。
将显示一个简单的网页,具有单个切换按钮,并指示板载LED的当前状态。
按照上面已经讨论过的步骤上传代码并尝试一下。打开串行监视器,设置正确的波特率,等待,直到它显示一个IP地址。
在任何连接到相同WiFi网络的设备上复制IP地址并打开Google Chrome浏览器。在搜索栏中输入地址,单击“搜索”,可进入web开关控制LED的页面。
显示LED的打开状态,而下图显示LED在关闭状态,而我们通过网页进行控制。
你现在可以通过反复点击开关来控制LED的开/关。每次拨动开关时,LED状态和开关颜色都会发生变化。
本文编译自iotdesignpro