登录社区云,与社区用户共同成长
邀请您加入社区
在实际的农业物联网项目中,多个分布式的STM32节点各自做本地异常检测,只有检测到异常时才通过4G上报数据到云端。在STM32上部署的AI模型,通常是小型的分类模型或检测模型,参数量在几万到几百万级别,远不是云端那种动辄几十亿参数的大模型。我的建议是:如果项目用的是STM32全系芯片,且模型不复杂,优先用STM32CubeAI,开发效率更高。假设我们要检测温室环境中的温度异常(突然升高或降低),输
在工业物联网(IIoT)边缘网关与远程数据采集系统中,是使用最广泛的轻量级发布/订阅消息总线。MQTT 协议通过设计三种不同的PUBACKPUBLISHPUBRECPUBRELPUBCOMP很多缺乏现场网络排障经验的开发者在设计协议时,常常为了所谓的“绝对安全”,盲目将全网所有的传感器高频遥测报文(每秒数百条)统一配置为。然而,当工业网关被部署到野外 4G/NB-IoT 蜂窝网络中(遭遇)时,Qo
在云计算的各项账单中,对象存储(AWS S3、阿里云 OSS、腾讯云 COS)通常以“便宜大碗”著称,每 GB 每月仅需几分钱。许多初创团队因此放松了警惕,将日志、构建产物、用户头像、AI 训练切片统统往 Bucket 里灌。经过排查,绝大部分费用根本不是“存储容量费”,而是隐藏在暗处的**“API 请求次数费”与“公网流出带宽费”“账单刺客”**。本文将深入剖析对象存储的计费黑洞,并给出生命周期
本文详解基于ESP32的工业边缘采集网关设计,聚焦多协议接入与云边协同。通过四级分层架构实现设备接入、协议转换、边缘计算与断网续传,解决异构设备数据汇聚难题。结合Modbus轮询管理、数据标准化及MQTT云端同步,提供可运行代码与工程实践,助力零基础构建高可靠性工业级网关,实现高效、稳定、安全的物联网数据链路。
本文系统讲解ESP32在工业物联网场景下的低功耗设计方法,涵盖四级功耗模式选型、续航计算模型、多级休眠与唤醒源管理、本地数据缓存及批量上传策略。通过RTC定时+GPIO事件双唤醒机制,结合深度睡眠与电源管控,实现微安级平均功耗,单节电池续航可达数年。配套可落地代码与优化实践,零基础掌握超长待机终端设计。
本文系统梳理了嵌入式开发从零基础到项目实战的五阶段学习路径:第一阶段夯实C语言、数据结构与计算机基础;第二阶段掌握Linux应用开发核心技能;第三阶段实现系统移植与构建;第四阶段深入驱动开发;第五阶段完成物联网网关、视频监控等综合项目。全程强调理论结合实践,涵盖开发工具链、网络编程、设备驱动、系统优化及产品化能力,助力开发者成长为具备全栈能力的嵌入式工程师。
本文详解ESP32在工业级低功耗物联网中实现标准Modbus协议的完整方案。聚焦Modbus RTU(RS485)与TCP通信,解析帧格式、CRC16校验、主从架构及寄存器映射,提供FreeModbus库与ESP-IDF原生组件对比选型建议。通过实战代码演示从机实现、轮询策略与硬件可靠性设计,涵盖从零基础开发到量产落地的最佳实践,助力开发者高效完成工业设备互联互通与系统集成。
在智能物联网(IoT)与边缘计算设备的规模化落地中,随着业务场景的持续演进与工业缺陷数据的回流,深度学习模型算法需要以极高的频率进行在线迭代。然而,在野外光伏电站、远洋船舶或地下管廊等工业场景中,设备通常通过 4G/NB-IoT 等窄带无线蜂窝网络连接云端,网络信号微弱且流量资费昂贵。如果每次模型升级都通过 OTA(Over-The-Air)下发一个数十兆乃至几百兆的全量模型权重文件,不仅耗费巨额
在深度学习模型压缩的研究文献中,模型剪枝(Pruning)常年占据核心地位。学术界经常出现“将 ResNet-50 权重稀疏度压缩 80%,理论 FLOPs 降低 5 倍且精度近乎无损”的引人注目的结论。很多算法工程师兴冲冲地在 PyTorch 中使用将权重中绝对值较小的元素直接置零,导出一个看似极其“稀疏”的模型。
容器是一种轻量级的虚拟化技术,它允许在单个主机上运行多个隔离的应用程序环境。
为此,请将忽略文件放在与 Dockerfile 本身相同的文件夹中,并且其名称以 Dockerfile 名称开头。在本文中,我将介绍一些 Docker 功能,这些功能通常不会在教程或官方指南中涉及,但它们可以简化开发人员的工作,并帮助他们更好地理解 Docker。如今,它是一个完整的生态系统,拥有丰富的功能,而许多开发人员甚至 DevOps 专家都对其只是略知皮毛。如果您要在构建中使用的凭据是套接
本文深入剖析移远EC20模块的TCP透传技术,涵盖工作原理、关键AT指令配置、连接管理、断线重连策略及硬件设计要点。重点揭示透传模式下MCU如何实现低功耗、高可靠联网,并提供实际问题解决方案,适用于工业物联网等嵌入式应用场景。
它的设计初衷是为开发者打造一个平台,让他们可以在自己的机器上完成所有操作:构建镜像、运行容器、查看日志、配置网络——只需一条 Docker 命令,世界尽在掌握。过去您使用的是单体式 Docker 系统,而现在您拥有一套独立的工具(Docker、containerd、runc、CRI-O),它们通过清晰定义的 API(CRI、OCI)进行通信。它是一个精妙而极简的适配器,它汲取了容器生态系统的精华,
诸如从零开始、为什么选择 Python 而不是 Alpine、为什么显示的是版本而不是最新版本、以及什么是最新版本等问题,都被省略了,但我相信,只要你保持好奇心,就能找到这些问题的答案。正如您可能已经注意到的,我们已经得出了其中一个操作原则的结论:“容器主要是应用程序交付的产物,只有这样它才能起到隔离作用”,并且我们已经朝着大型 K8S 编排器迈出了重要一步。最重要的是,不要害怕 Dockerfi
如果容器被授予对 Docker 套接字(例如 /var/run/docker.sock)的访问权限,攻击者可以利用它来控制其他容器,甚至在主机上启动新容器。例如,如果攻击者获得了容器的 root 权限,他们就有可能利用驱动程序或内核中的漏洞逃离容器。获得 /var/run/docker.sock 访问权限的容器可以在主机上执行 Docker 命令,从而允许攻击者以主机权限运行自己的容器或控制现有容
将密钥以未加密的形式存储在容器中是常见的安全错误,会使容器变得非常脆弱。即使攻击者设法获得了对容器的访问权限,他们的主要目标通常也不是容器本身,而是容器内的重要数据,例如密码、访问令牌、API密钥以及其他可用于访问其他系统的密钥。Wireshark 等工具可用于详细的流量分析,Cilium 等工具可用于监控 Kubernetes 中的网络活动,这些工具允许您创建规则来分析容器之间的流量并监控不必要
在 ARP 欺骗攻击中,攻击者会使用伪造的 MAC 地址来响应该请求,从而将受害者的流量重定向到自己的容器。在 Kubernetes 和 Docker 中,如果容器共享一个网络命名空间(例如,在 Kubernetes 中使用 `hostNetwork: true`),它们可以直接在主机网络层进行通信。ARP 欺骗允许攻击者伪造 ARP 响应,将容器之间的流量重定向到自己的容器,从而拦截或篡改数据。
摘要: 本文介绍了使用ESP32S3(N16R8) CAMERA模块将图像显示到ST7789驱动的SPI 8pin LCD屏(240x320)的实现方法。硬件环境包括ESP32-IDF5.4开发框架、ESP32S3-CAM模组和LCD屏,通过面包板连接。代码基于ESP-IDF的Helloworld模板,添加了esp32-camera组件依赖,并配置了摄像头引脚(RGB565格式,QVGA分辨率)及
之前成功烧录一次,不知道为什么之后死活进不去了,一直打点,怀疑按键坏了,怀疑是盗版开发板,怀疑驱动有问题,怀疑线有问题,按boot引脚再上电也都不行,最后问淘宝客服,第二天白天才回复我,说可能是摄像头烧了,叫我把摄像头拆了就可以成功烧录!结语:希望这篇文章可以帮到你,不用做无用功,浪费时间。
本文介绍了DS3231实时时钟模块的驱动实现,主要完成三个功能:1)通过I2C接口读取实时时间并显示到串口屏;2)设置闹钟功能,包括时间匹配条件设置和中断触发;3)读取内置温度传感器数据。文章详细说明了各功能的寄存器配置要点,包括BCD码转换、12/24小时制切换、闹钟屏蔽位设置等关键点,并提供了核心代码实现。测试部分展示了时间显示和温度读取功能,以及通过外部中断实现的闹钟提醒功能。代码虽简化了部
本文深入探讨在ESP32-S3上使用cJSON处理JSON数据的关键技术与常见陷阱,涵盖内存管理、中文编码、解析优化及安全释放等核心问题,并提供针对嵌入式场景的性能提升策略和工程最佳实践。
本文详细介绍在ESP32-S3平台上构建高效日志系统的设计思路与实战方法,涵盖多级过滤、异步输出、多后端支持、中断安全、时间戳同步及远程运维等核心功能,提升嵌入式系统的可观测性与可维护性。
但隔离的成本仍然很高:需要完整的操作系统副本、数GB的磁盘空间,以及几分钟的启动时间。限制了容器内部可见的资源和进程。当容器进程的父进程(runc)终止时,该容器进程会发生什么?它创建新的命名空间,配置 cgroups,最后在这个隔离环境中启动我们的目标进程(例如 nginx)。它是一组不可变的、只读的文件、指令和依赖项,用于定义你的应用程序。它描述了要运行的进程(CMD)、要设置的环境变量、要打
问题的根源在于:容器内的进程以特定用户身份运行(通常默认是 root 用户,但最佳实践建议使用非特权用户,例如 UID 1000)。这是最安全有效的常规使用命令。它可以加快重复构建的速度,但体积可能会变得非常庞大,尤其是在 Dockerfile 中的初始层频繁更改的情况下。现在,挂载卷时,主机上用户(UID=1000)的文件和容器中用户(UID=1000)的文件将“看到”彼此的文件,权限问题将消失
本文探讨了在边缘计算场景下,如何通过优化Linux内核模块来提升AI推理性能。针对嵌入式设备的资源限制,详细介绍了内存架构设计、硬件加速器集成、功耗管理和实时性保障等实战策略,为嵌入式工程师提供了一套完整的高性能驱动解决方案。
本文探讨了STM32在AIoT与边缘计算中的嵌入式跨界创新应用。通过分析STM32在AIoT系统中的核心架构设计、边缘智能实现、多协议通信及低功耗策略,为开发者提供了从概念到产品的完整实战指南,特别适合嵌入式毕设和项目开发参考。
联合文件系统(Union File System,简称UnionFS)允许您将一个或多个文件系统的内容合并在一起,同时保持它们在物理上的独立性。由于这是最顶层,所以当你创建一个容器时,你应该会在容器内看到 hello.txt 文件的内容。在上图中,您已经了解了如何从单个镜像创建多个容器,以及每个容器如何拥有自己的读/写层。但是,如果删除位于下层的文件,则会在顶层创建一个同名的特殊字符设备。我们继续
如果我升级到更新的 bash 版本,比如 5.0,那么 tr 和 cut 命令都可以移除。是的,是的,我知道。这个脚本目前有五百多行 Bash 代码,所以除非被威胁要杀了我,否则我不会用其他语言重写它。在本文中,我将分享如何为ugit(一个 shell 脚本)编写官方 Dockerfile,并按照分步说明将镜像大小减少了近40%(从 31.4 MB 减少到 17.6 MB )。可惜的是,我没能在合
在这个例子中,镜像大小的差异并不显著,但随着你向镜像添加更多依赖项,镜像体积会迅速增大。应用程序构建完成后,会创建第二个镜像,即“发布”镜像,并将依赖项从“构建”镜像复制到其中。其次,虽然重要性稍逊,但同样重要的是将构建镜像和发布镜像分成两个阶段,分别包含在各自的 Dockerfile 中。最后,在构建过程的某个阶段,Docker 会丢弃“构建”镜像,因为只保留 Dockerfile 中定义的最终
本教程基于立创实战派ESP32-S3开发板,详细介绍如何使用ESP-IDF框架操作SD卡的FATFS文件系统。通过本教程,您将学习到SD卡的挂载、文件读写、目录操作、磁盘管理等完整的文件系统操作。474821128代码说明标准C库头文件stdio.h(标准输入输出)、string.h(字符串操作)POSIX文件系统头文件(文件删除)、sys/stat.h(文件状态)、dirent.h(目录操作)E
例如,在物理设备的上下文中,这种方法的妙处在于,我们只需通过两个系统调用 `read()` 和 `write()`(就像操作存储在硬盘上的普通文件一样)即可从代码中与所有设备通信。在这个人们更看重对工具及其使用场景的基本理解,而非了解其所有选项和在开发过程中可能出现的各种场景下的行为的世界里,那种如同孩童拆开圣诞树下礼物般真挚而浓厚的兴趣,充其量会被遗忘,最坏的情况则是彻底消失。底层技术,它的真正
飞牛FnNAS是一款基于开源生态构建的现代NAS操作系统,它拥有强大的硬件兼容性,完美支持主流 x86 及 Arm64 设备,其设计理念是“简单、高效、可扩展” ,旨在让每个用户都能轻松搭建功能强大且稳定的私有云存储环境。■ 简洁直观的Web管理界面■ 完整的文件共享、远程下载、媒体服务功能■ 原生支持Docker容器,扩展无限可能■ 针对ARM架构深度优化,运行更高效然而,再优秀的软件也需要强大
I2S(Inter-IC Sound)是飞利浦公司专门为数字音频设备之间的音频数据传输而设计的一种总线标准,专门用于音频设备之间的通信。需要注意的是,虽然I2S与I2C的名字极为相似,但二者之间并无关系。I2S是比较简单的数字接口协议,没有地址或设备选择机制。在I2S总线上,只能同时存在一个主设备和发送设备,支持全双工和半双工。I2S 是一种同步串行通信,标准的I2S总线是有三根串行导线组成的:一
本文探讨了RISC-V架构在边缘计算和AIoT领域的崛起,重点分析了其开源灵活性、能效优势及在AI推理中的差异化竞争力。通过模块化设计和向量扩展指令集(RVV),RISC-V为智能摄像头、工业传感器等边缘设备提供了高效低功耗解决方案,助力实现去中心化智能网络的生态协同。