当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]现代物联网应用需要可靠的实时图像流功能,用于从安全监控到远程监控的应用。虽然基于wifi的解决方案很常见,但它们往往存在信号不稳定和范围有限的问题。该项目演示了如何使用内置以太网功能的W6300-EVB-PICO2微控制器构建强大的以太网供电摄像机系统,使用HTTP和MQTT协议将实时图像流式传输到Adafruit IO,以实现最大的灵活性和可靠性。

现代物联网应用需要可靠的实时图像流功能,用于从安全监控到远程监控的应用。虽然基于wifi的解决方案很常见,但它们往往存在信号不稳定和范围有限的问题。该项目演示了如何使用内置以太网功能的W6300-EVB-PICO2微控制器构建强大的以太网供电摄像机系统,使用HTTP和MQTT协议将实时图像流式传输到Adafruit IO,以实现最大的灵活性和可靠性。

步骤1:收集组件

对于这个项目,您将需要:

•W6300-EVB-PICO2单片机

•OV2640摄像头模块

•电阻2K欧姆

•面包板和跳线

步骤2:硬件设置

evb - pico2 -先进的物联网基础

W6300-EVB-PICO2为该项目提供了良好的基础:

•RP2350双Cortex-M33 (150MHz) + 520KB SRAM用于处理图像

•16MB闪存+ 64KB网络缓冲数据处理

•用于HTTP/MQTT通信的8个并发套接字

•IPv4/IPv6双栈支持面向未来的网络

•增强安全性与TrustZone +安全启动

连接sov2640相机→W6300-EVB-PICO2

•Vsync→gp12

•Href→gp11

•PCLK→gp10

•D0-D7→GP0-GP7(数据总线)

•SCL→GP9 (I2C时钟)→WITH上拉电阻3.3V

•SDA→GP8 (I2C数据)→WITH上拉电阻3.3V

•RESET→GP13(可选)

重要提示:在给电路板上电之前,要仔细检查所有连接的安全性和准确性。

为什么上拉电阻是必不可少的?

•I2C协议要求:I2C是一个开路漏极/开路采集器总线,需要上拉

•信号完整性:没有上拉,SDA和SCL线路将浮动,导致通信错误

•适当的逻辑电平:上拉确保信号达到适当的高(3.3V)和低(0V)电平

•摄像机检测:如果没有上拉,摄像机的I2C地址(0x30)将无法检测到

电阻规格

•取值范围:标准值为4.7kΩ(4700欧姆),也可选择2kΩ-10kΩ

•功率:1/4瓦(0.25W)标准电阻

•数量:2个电阻(一个用于SDA,一个用于SCL)

•连接:3.3V到每条I2C线之间

步骤3:设置Adafruit IO

设置Adafruit IO

创建提要:

•相机饲料

设计仪表板:

•转到Dashboard部分设计界面,添加图像块

步骤4:代码解释

导入所需库

核心系统库

•time -为图像捕获之间的延迟和间隔提供计时功能

•board -访问微控制器特定的引脚定义和硬件功能

•busio -处理串行通信协议,包括摄像头控制的I2C和以太网通信的SPI

•digitalio -管理相机控制信号和以太网复位功能的GPIO引脚

相机控制

•adafruit_ov2640 - OV2640相机模块控制的专用库,提供图像捕获,分辨率设置和JPEG压缩配置的功能

以太网连接(W6300专用)

•wiznet - wiznet芯片组驱动程序在W6300-EVB-PICO2上实现以太网连接

•adafruit_wiznet5k -高级以太网接口库,带有WIZNET5K类,用于网络初始化和管理

•socketpool——为HTTP和MQTT通信创建和管理网络套接字

数据处理与编码

•binascii -将二进制图像数据转换为适合网络传输的ASCII格式

•ssl——为加密通信提供安全套接字层支持(尽管通常出于性能考虑而禁用)

•gc -用于内存管理的垃圾收集模块,在处理大型图像缓冲区时至关重要

云通信协议

•adafruit_requests -简化的HTTP客户端,用于对Adafruit IO进行REST API调用

•adafruit_minimqtt -轻量级MQTT客户端,用于使用Adafruit IO发布/订阅消息

•adafruit_io - Adafruit IO集成库与IO_HTTP类,用于基于http的数据传输

管理的秘密

此字典存储您的Adafruit IO凭据。您应该创建一个单独的secrets.py文件来保证敏感信息的安全。

网络配置

定义网络连接的MAC地址、静态IP地址、子网掩码、网关和DNS服务器地址。

硬件初始化

•以太网配置:为以太网连接配置引脚并重置WIZnet模块。

•初始化以太网:WIZnet模块使用SPI初始化,启用DHCP以自动获取IP地址。

相机的设置

为摄像机控制初始化I2C通信,并配置具有并行数据传输引脚的OV2640摄像机模块。

细节:

•I2C引脚(GP8, GP9)用于摄像头配置和设置

•并行数据引脚(GP0-GP7)使用8位并行接口处理高速图像数据传输

•控制信号(时钟,vsync, href, reset)管理图像捕获的定时和同步:

•时钟(GP10):用于数据同步的像素时钟

•VSYNC (GP12):表示帧启动的垂直同步信号

•HREF (GP11):行数据的水平参考信号

•Reset (GP13):摄像头模块的硬件复位控制

通信协议选择

允许用户选择HTTP或MQTT协议之间的数据传输到Adafruit IO。

过程:

•用户输入提示选择通信协议

•根据选择初始化适当的客户端(HTTP或MQTT)

•设置Adafruit IO平台的连接参数

•提供连接就绪状态反馈

HTTP模式:

•使用ssl安全的HTTP会话进行数据传输

•为Adafruit IO通信创建HTTP IO客户端

•适用于简单的请求/响应数据传输

MQTT模式:

•为发布/订阅通信建立持久的MQTT连接

•连接到Adafruit IO的MQTT代理

•使用未加密连接(为提高内存效率禁用SSL)

•为图像提要发布创建主题路径

主捕获回路

连续图像捕获和传输循环与动态内存管理和错误处理。

工艺流程:

•对于内存受限的环境,初始化时使用较小的缓冲区大小(15KB)

•从相机连续捕获图像

•通过选定的协议(HTTP或MQTT)传输图像

•实现基于内存可用性的自适应缓冲区大小

•包括全面的错误恢复机制

主要业务:

图像获取:

•为图像存储分配字节数组缓冲区

•从OV2640相机捕获JPEG图像

•验证捕获的图像是否有足够的数据(>100字节)

数据处理:

•将图像数据编码为Base64格式,用于基于文本的传输

•Base64编码确保通过基于文本的协议安全传输数据

数据传输:

•MQTT模式:将编码的图像发布到Adafruit IO feed

•HTTP模式:通过HTTP POST请求发送编码后的图像

基于用户选择的特定模式传输

动态内存管理:

•缓冲区扩展:当图像接近当前限制时增加缓冲区大小

•Buffer Reduction:减少内存错误时的缓冲区大小

•内存限制:缓冲区范围从10KB到25KB

•垃圾收集:每个周期后显式内存清理

步骤5:功能和好处

•双重协议支持(HTTP/MQTT)

•自适应内存管理

•实时图像传输

•鲁棒错误恢复

•硬件摄像头/以太网集成

结论

该物联网图像捕获系统成功演示了:

•在W6300-EVB-PICO2上可靠的摄像头到云传输

•约束环境的有效内存管理

•灵活的协议支持不同的部署需求

•嵌入式视觉应用的实践基础

该解决方案平衡了性能和资源限制,为各种物联网视觉用例提供了一个通用的平台。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭