不少人家里应该都还有这种老式水表,但你能看懂它的读数吗?
恐怕不少人都会感到一脸懵逼。机械式水表可能是最反人类的设计之一了,安装在阴暗的角落,又是指针又是数字,读起来费劲。
现在你可以把查水表交给AI啦!一位德国小哥开发的“AI水表读取器”,只需几十元的成本,在水表上加个“罩子”,就能把机械式水表改装成“智能水表”,
这款设备基于TensorFlow Lite,让AI自动读取当前刻度,实时记录你的用水量。
AI水表读取器主要由3部分组成:3D打印外壳,ESP32-CAM开发板、相机与照明装置。
ESP32-CAM自带LED照明,摄像头型号为OV2640,外壳部分可以使用作者提供的3D打印文件。
据作者介绍,整部装置的费用不超过10欧元(也就是不超过人民币80元)。
AI水表读取器可以直接通过网络管理。将固件烧录到设备并连上Wi-Fi后,只需在浏览器中输入设备的局域网IP即可进入管理界面。
你可以在网页中设置读取框的坐标、图像质量等参数。
甚至你还可以进行OTA升级,将固件文件传输至/firmware文件夹下,再输入http://IP-ESP32/ota?file=firmware.bin对设备进行无线更新。
这款智能水表的原理并不复杂,其数据处理流程如下:
相机线拍下照片,用OpenCV库对图像进行自动对齐、ROI识别,提取中图像中的需要识别的部分。
不过,处理机械水表表盘图像并不容易,不是简单用OCR就能搞定的,因为表盘的数字是连续变化的,你可以会遇到正好处在两个数字之间,比如最右边那种情形。
这时候就需要用CNN训练它,让它知道这张图片是介于数字2和3之间。
表盘上部的数字读数用OCR软件获取,下半部分的模拟表盘交给CNN处理。
对于模拟表盘的部分,要让CNN能识别指针从0到9不同情况,一个“笨”方法是标记10个分类。
但是,如果希望系统估读小数点后一位(0.0、0.1,…,9.8、9.9),那么将会有100个分类,每个分类都要有大量的训练图像。
因此,最终作者使用了另一种方法:在CNN网络的最后一层中仅使用一个可以输出连续值的神经元。
最初开发的版本需要设置外部服务器对这些图像进行处理,经过数次迭代后,图像处理和转换已完全集成在ESP32CAM固件中,真正成了“边缘AI”。
如果你也想改造自家的水表,不妨去试试吧。
本文介绍ESP32中的中断机制,以及如何通过GPIO中断实现按钮控制。重点讲解了如何设置中断服务例程、处理中断抖动问题,并提供了消除中断抖动的示例代码。
本文主要介绍在未联网(AP热点)情况下实现WEB交互界面的CSS和javascript库。
本文介绍如何使用Arduino-ESP32库中的API函数获取ESP32的芯片、RAM信息等,并提供了一个示例程序代码。
ESP32系列(包括ESP32-S3)搭载Xtensa双核处理器,默认情况下Arduino框架仅使用单核运行用户代码,通过多核编程,可以充分利用硬件资源来提升系统响应和性能。
ESP32 芯片有34个物理GPIO管脚。每个GPIO管脚都可用作一个通用IO,或连接一个内部的外设信号。IO_MUX ¹、RTC IO MUX 和GPIO交换矩阵用于将信号从外设传输至GPIO管脚。
ESP32Encoder库是一个利用ESP32脉冲计数器硬件外设实现高效旋转编码器读取的软件库。
本文对比了几款适合物联网开发的盒子硬件参数,供大家参考。
乐动掌控采用掌控板作为主控,塑胶一体式外壳,侧面和底面开具多个乐高扩展孔位,兼容乐高积木,可完成多种创意应用。
在MicroPython的ESP32库中,NVS类用于管理非易失性存储,支持 32 位有符号整数和 二进制blob。
Arduino-ESP32项目提供的Preferences库是一个专为ESP32设计的非易失性存储解决方案,它替代了传统的Arduino EEPROM库,提供了更强大、更可靠的数据存储功能。
专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。