不少人家里应该都还有这种老式水表,但你能看懂它的读数吗?
恐怕不少人都会感到一脸懵逼。机械式水表可能是最反人类的设计之一了,安装在阴暗的角落,又是指针又是数字,读起来费劲。
现在你可以把查水表交给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”。
如果你也想改造自家的水表,不妨去试试吧。
本节我们在迭代二的基础上使用四位数码管和OLED显示屏显示相关交互信息。
本节我们在迭代一的基础上增加采集土壤湿度数据,并根据湿度数据来决定是否自动进行浇水动作。
本节我们实现一个基本能工作的手动浇水装置,即通过按下按键来闭合继发器让小水泵进行浇水。
本小节通过点亮LED和串口输出两个程序,来初步掌握ArduinoIDE、了解GPIO和串口使用、同时把开发环境与开发板的连接,上传程序的各环节跑通,
本程序是小鹏物联网智能浇花套件的单机版程序(不连接物联网),供同学们参考。
本文介绍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管脚。
专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。