当前位置: 首页 > article >正文

AI-on-the-edge-device - 将“旧”设备接入智能世界

人工智能无处不在,从语音到图像识别。虽然大多数 AI 系统都依赖于强大的处理器或云计算,但**边缘计算**通过利用现代处理器的功能,使 AI 更接近最终用户。
本项目演示了使用 **ESP32**(一种低成本、支持 AI 的设备)进行边缘计算,以数字化您的模拟电表,无论是水表、燃气表还是电表。通过经济实惠的硬件和简单的说明,您可以将任何标准仪表变成智能设备。

让我们探索如何让 **AI on the Edge** 成为现实!

6400 Stars 685 Forks 123 Issues 63 贡献者 MIT License C++ 语言

代码: GitHub - jomjol/AI-on-the-edge-device: Easy to use device for connecting "old" measuring units (water, power, gas, ...) to the digital world

主页: Welcome - AI on the Edge Device

更多AI开源软件:AI开源 - 小众AI

🚀 主要功能

  • 🔗 **Tensorflow Lite (TFLite) 集成** – 包括易于使用的包装器。
  • 📸 **内联图像处理**(特征检测、对齐、ROI 提取)。
  • 💡 **小巧且经济实惠**的设备(3 x 4.5 x 2 cm³,不到 10 欧元)。
  • 📷 集成摄像头和照明。
  • 🌐 用于管理和控制的 Web 界面。
  • 🔄 OTA 界面,用于直接通过 Web 界面进行更新。
  • 🏠 与 Home Assistant 完全集成。
  • 📊 支持 **Influx DB 1** 和 **2**。
  • 📡 **MQTT 协议**支持。
  • 📥 **REST API** 可用于数据访问。

工作流 🔧

该设备会以设定的时间间隔拍摄您的仪表照片。然后,它从图像中提取感兴趣区域 (ROI) 并通过人工智能运行它们。因此,您将获得仪表的数字化值。

对于如何处理该值,有几种选择:

  • 📤 将其发送到 **MQTT 代理**。
  • 📝 写入 **InfluxDb**。
  • 🔗 通过 **REST API** 提供访问权限。

安装和使用 🛠️

有越来越多的文档为您提供了大量信息。前往那里开始,设置和配置它。

德国 Heise 杂志“make:”上也有关于设置和技术背景的文章(在付费专区后面):DIY - 设置 📰

很多人都制作了有用的 YouTube 视频,可能会帮助您入门:

  • 🎥 youtube.com/watch?v=HKBofb1cnNc
  • 🎥 youtube.com/watch?v=yyf0ORNLCk4
  • 🎥 youtube.com/watch?v=XxmTubGek6M
  • 🎥 youtube.com/watch?v=mDIJEyElkAU
  • 🎥 youtube.com/watch?v=SssiPkyKVVs
  • 🎥 youtube.com/watch?v=MAHE_QyHZFQ
  • 🎥 youtube.com/watch?v=Uap_6bwtILQ

有关更多背景信息,请前往:

  • 神经网络
  • 训练神经网络
  • 在 ESP32 上编程

下载 🔽

最新的可用版本可以在 Releases 页面上找到。


刷写 ESP32 💾

最初,您必须通过 USB 连接刷新 ESP32。以后的更新可以直接通过无线方式进行(使用 Wi-Fi 的 OTA)。

烧录 ESP32 的方法有多种:

  • 首选方法是 Web 安装程序和控制台,这是一种基于浏览器的工具,用于烧录 ESP32 并通过 USB 提取日志:
  • Espressif 的 Flash Tool
  • ESPtool (命令行工具)

有关更多信息,请参阅文档。


刷写 SD 卡 💾

安装固件后,可以自动设置 SD 卡。有关详细信息,请参阅文档。为此,SD 卡必须采用 FAT 格式(这是新 SD 卡的默认设置)。

或者,仍然可以手动设置 SD 卡。有关详细信息,请参阅文档。

相关文章:

AI-on-the-edge-device - 将“旧”设备接入智能世界

人工智能无处不在,从语音到图像识别。虽然大多数 AI 系统都依赖于强大的处理器或云计算,但**边缘计算**通过利用现代处理器的功能,使 AI 更接近最终用户。 本项目演示了使用 **ESP32**(一种低成本、支持 AI 的设备)进行…...

Openfga 授权模型搭建

1.根据项目去启动 配置一个 openfga 服务器 先创建一个 config.yaml文件 cd /opt/openFGA/conf touch ./config.yaml 怎么配置? 根据官网来看 openfga/.config-schema.json at main openfga/openfga GitHub 这里讲述详细的每一个配置每一个类型 这些配置有…...

C++模板编程——可变参函数模板之折叠表达式

目录 1. 什么是折叠表达式 2. 一元左折 3. 一元右折 4. 二元左折 5. 二元右折 6. 后记 上一节主要讲解了可变参函数模板和参数包展开,这一节主要讲一下折叠表达式。 1. 什么是折叠表达式 折叠表达式是C17中引入的概念,引入折叠表达式的目的是为了…...

ArkTS渲染控制

文章目录 if/else:条件渲染ArkUI通过自定义组件的build()函数和@Builder装饰器中的声明式UI描述语句构建相应的UI。在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数据快…...

在Scene里面绘制编辑工具

功能要求 策划要在scene模式下编辑棋子摆放。用handle.GUI绘制来解决了。 问题 在scene模式下编辑产生的数据,进入游戏模式后就全不见了。改为executeAlways也没用。我的解决办法是把编辑数据序列化保存到本地。在OnEnable的时候再读取。但是我忽然想到&#xff…...

UbuntuWindows双系统安装

做系统盘: Ubuntu20.04双系统安装详解(内容详细,一文通关!)_ubuntu 20.04-CSDN博客 ubuntu系统调整大小: 调整指南: 虚拟机中的Ubuntu扩容及重新分区方法_ubuntu重新分配磁盘空间-CSDN博客 …...

[Linux]如何將腳本(shell script)轉換到系統管理服務器(systemd service)來運行?

[InfluxDB]Monitor Tem. and Volt of RaspberryPi and Send Message by Line Notify 在Linux中,shell腳本(shell script)常用於運行各種自動化的流程,包含API串接,設置和啟動應用服務等等,腳本語法也相對易學易讀,因此…...

【leetcode详解】T598 区间加法

598. 区间加法 II - 力扣(LeetCode) 思路分析 核心在于将问题转化, 题目不是要求最大整数本身,而是要求解最大整数的个数 结合矩阵元素的增加原理,我们将抽象问题转为可操作的方法,其实就是再找每组ops中…...

分层多维度应急管理系统的设计

一、系统总体架构设计 1. 六层体系架构 #mermaid-svg-QOXtM1MnbrwUopPb {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-QOXtM1MnbrwUopPb .error-icon{fill:#552222;}#mermaid-svg-QOXtM1MnbrwUopPb .error-text{f…...

稀疏进化训练:机器学习优化算法中的高效解决方案

稀疏进化训练:机器学习优化算法中的高效解决方案 稀疏进化训练:机器学习优化算法中的高效解决方案引言第一部分:背景与动机1.1 传统优化算法的局限性1.2 进化策略的优势1.3 稀疏性的重要性 第二部分:稀疏进化训练的核心思想2.1 稀…...

实战:如何利用网站日志诊断并解决收录问题?

本文转自:百万收录网 原文链接:https://www.baiwanshoulu.com/50.html 利用网站日志诊断并解决收录问题是一种非常有效的方法。以下是一个实战指南,帮助你如何利用网站日志来诊断并解决网站的收录问题: 一、获取并分析网站日志 …...

群晖搭建Gitea教程(使用系统自带的postgresql)

基于群晖7.2.2,使用套件中心的gitea,和系统自带的postgresql postgresql: 切换到postgres用户 sudo -I -u postgres 在想要保存数据库的磁盘路径下创建PostgreSql文件夹 初始化数据库文件夹配置 initdb -D ./PostgreSql 备份./PostgreSql路径下的post…...

备考蓝桥杯嵌入式2:使用LCD完成显示

LCD LCD(液晶显示器,Liquid Crystal Display)是一种常见的平面显示技术,广泛应用于电视、电脑显示器、手机屏幕等设备。蓝桥杯中,也有涉及到使用LCD来完成字符串显示的要求和操作。 考场上会给予LCD的驱动包&#xf…...

网络爬虫学习:应用selenium获取Edge浏览器版本号,自动下载对应版本msedgedriver,确保Edge浏览器顺利打开。

一、前言 我从24年11月份开始学习网络爬虫应用开发,经过2个来月的努力,于1月下旬完成了开发一款网络爬虫软件的学习目标。这里对本次学习及应用开发进行一下回顾总结。 前几天我已经发了一篇日志(网络爬虫学习:应用selenium从搜…...

Elasticsearch的索引生命周期管理

目录 说明零、参考一、ILM的基本概念二、ILM的实践步骤Elasticsearch ILM策略中的“最小年龄”是如何计算的?如何监控和调整Elasticsearch ILM策略的性能? 1. **监控性能**使用/_cat/thread_pool API基本请求格式请求特定线程池的信息响应内容 2. **调整…...

Observability:实现 OpenTelemetry 原生可观察性的商业价值

作者:来自 Elastic David Hope 利用开放标准和简化的数据收集转变组织的可观察性策略。 现代组织面临着前所未有的可观察性挑战。随着系统变得越来越复杂和分散,传统的监控方法难以跟上步伐。由于数据量每两年翻一番,系统跨越多个云和技术&am…...

C语言中的线程本地变量

这处线程本地变量可不是简单的函数中的本地变量。线程除了可以共享存在于进程内的全局变量外,还可以有属于自己的线程本地变量。线程本地变量的值只能够在某个具体线程的生存期内可用。变量的实际存储空间会在线程开始时分配,线程结束时回收。线程不会对…...

Zabbix 推送告警 消息模板 美化(钉钉Webhook机器人、邮件)

目前网络上已经有很多关于Zabbix如何推送告警信息到钉钉机器人、到邮件等文章。 但是在搜索下来,发现缺少了对告警信息的美化的文章。 本文不赘述如何对Zabbix对接钉钉、对接邮件,仅介绍我采用的美化消息模板的内容。 活用AI工具可以减轻很多学习、脑力负…...

罗格斯大学:通过输入嵌入对齐选择agent

📖标题:AgentRec: Agent Recommendation Using Sentence Embeddings Aligned to Human Feedback 🌐来源:arXiv, 2501.13333 🌟摘要 🔸多代理系统必须决定哪个代理最适合给定的任务。我们提出了一种新的架…...

机器学习7-全连接神经网络3-过拟合与超参数

机器学习6-全连接神经网络3-过拟合欠拟合 过拟合应对过拟合-最优方案:获取更多的训练数据应对过拟合-次优方案:正则化应对过拟合-次优方案2:随机失活综合考量 超参数超参数优化方法 过拟合 机器学习的根本问题是优化和泛化的问题。优化——是…...

【PyTorch】7.自动微分模块:开启神经网络 “进化之门” 的魔法钥匙

目录 1. 梯度基本计算 2. 控制梯度计算 3. 梯度计算注意 4. 小节 个人主页:Icomi 专栏地址:PyTorch入门 在深度学习蓬勃发展的当下,PyTorch 是不可或缺的工具。它作为强大的深度学习框架,为构建和训练神经网络提供了高效且灵活…...

11 3D变换模块(transform3d.rs)

transform3d.rs代码定义了一个名为 Transform3D 的 Rust 结构体,它用于表示一个3D变换矩阵。这个结构体是泛型的,包含三个类型参数:T、Src 和 Dst。其中,T 用于矩阵元素的数据类型,Src 和 Dst 用于表示变换的源和目标类…...

MATLAB基础应用精讲-【数模应用】梯度直方图(HOG)(附C++和python代码实现)(二)

目录 前言 几个高频面试题目 HOG与SIFT区别 边缘特征与梯度方向直方图的关系 算法原理 什么是HOG 图像中像素点的梯度计算 为每个cell构造梯度方向直方图HOG 数学模型 方向梯度直方图计算步骤 第一步:预处理 第二步:计算梯度图像 第三步:在8*8的网格中计算梯度…...

pytorch生成对抗网络

人工智能例子汇总:AI常见的算法和例子-CSDN博客 生成对抗网络(GAN,Generative Adversarial Network)是一种深度学习模型,由两个神经网络组成:生成器(Generator)和判别器&#xff0…...

Baklib在企业知识管理领域的领先地位与三款竞品的深度剖析

内容概要 在现代企业中,知识管理已成为提高工作效率和推动创新的重要手段。Baklib作为一款领先的知识中台,以其集成化和智能化的特性,帮助企业在这一领域取得了显著成就。该平台具备强大的知识收集、整理、存储和共享功能,通过构…...

2 MapReduce

2 MapReduce 1. MapReduce 介绍1.1 MapReduce 设计构思 2. MapReduce 编程规范3. Mapper以及Reducer抽象类介绍1.Mapper抽象类的基本介绍2.Reducer抽象类基本介绍 4. WordCount示例编写5. MapReduce程序运行模式6. MapReduce的运行机制详解6.1 MapTask 工作机制6.2 ReduceTask …...

人工智能学习(四)之机器学习基本概念

机器学习基本概念详细解析:从生活实例轻松入门 在当今数字化时代,机器学习作为人工智能领域的核心技术之一,正深刻地改变着我们的生活和工作方式。从智能语音助手到图像识别系统,从个性化推荐引擎到自动驾驶汽车,机器…...

大模型openai范式接口调用方法

本文将介绍如下内容: 一、为什么选择 OpenAI 范式接口?二、调用 Openai 接口官方调用 Demo 示例三、自定义调用 Openai 接口 一、为什么选择 OpenAI 范式接口? OpenAI 范式接口因其简洁、统一和高效的设计,成为了与大型语言模型…...

DeepSeek API接口中的openAI是什么意思?

老六哥的小提示:我们可能不会被AI轻易淘汰,但是会被“会使用AI的人”淘汰。 DeepSeek是一款基于先进推理技术的大型语言模型,能够根据用户提供的简洁提示词生成高质 曾经有外媒评价说:DeepSeek盗用了openAI的技术,或者…...

重构字符串(767)

767. 重构字符串 - 力扣&#xff08;LeetCode&#xff09; 解法&#xff1a; class Solution { public:string reorganizeString(string s){string res;//因为1 < s.length < 500 &#xff0c; uint64_t 类型足够uint16_t n s.size();if (n 0) {return res;}unordere…...