在本文中,我们将制作一种设备,用于监测水/油或任何储罐中的液位。监测水位信息将发送至监测站。这有助于监测安装在人类无法经常到达的地方和有毒地方的一些水箱,如实验室,液体化学品储存在大型容器中。
所需组件
所需工具/所需库
Arduino IDE
Arduino图书馆–Wi-Fi管理器
技术见解
我们将使用红外测距传感器来测量容器或储罐中的液位。传感器的输出在单元中测量并存储在微控制器中;在这种情况下,Arduino UNO。然后使用ESP将传感器数据发送到thingspeak服务器进行监控。
方框图
红外传感器连接到Arduino Uno并向其发送传感器数据。ESP连接到Arduino和Wi-Fi路由器,带有ThingSpeak库,用于通信。
系统如何工作
- 首次通电时,ESP会生成一个名为“OilTank-1”的热点,显示在OLED显示屏上。
- 我们需要连接到它并打开urlhttp://192.168.4.1/设置ESP。
- 然后从配置面板,我们可以设置将连接到哪个Wi-Fi ESP。我们只需输入Wi-Fi的SSID和密码。
- 连接到Wi-Fi后,Wi-Fi的名称将显示在OLED屏幕上。
- 电池也会操作设备,因此电池百分比也会显示在屏幕上和油箱的液位上。
- 现在连接到互联网后,该设备每20秒向thingspeak服务器发送一次数据。
- 如果Wi-Fi已断开连接,您将在屏幕上看到Wi-Fi已断开连接,ESP将再次生成热点。
理解源代码
要理解代码,有两个文件;一个是ESP,另一个是Arduino。
埃斯皮诺
我们还为ESP使用了一个Wi-Fi库,以便使用其热点轻松配置ESP,而无需在代码中写入Wi-Fi信息。我们在连接互联网时与thingspeak API连接。该代码设计用于将任何串行数据发送到thingspeak API仪表板,而不是ESP的命令。
那么,让我们看看代码。
- 在设置功能中,我们使用WiFi管理器库创建热点
wifiManager.autoConnect(“油罐-1”); - 如果创建了热点,则ESP以前未连接到现在可用的Wi-Fi。热点是程序的阻塞循环,因此我们在创建热点之前发送“setup”命令。这意味着设置信息将显示在屏幕上。
- 如果热点已关闭,我们将发送“conn”命令,这意味着ESP已连接到Wi-Fi,程序将随之启动。
连续打印(“conn”); - ESP也在监听一些命令,它会根据这些命令回复Arduino
- 如果这些命令均未被识别,则该数据将是使用thingspeak库发送的油箱液位数据
ThingSpeak.writeField(myChannelNumber,1,ReceivedData,MyWriteAppikey);
阿杜伊诺
Arduino安装有OLED库,用于显示OLED数据;它还通过串行通信与ESP进行通信。
Arduino代码还从模拟引脚A2上的传感器获取模拟值,并计算电压。从那里,我们可以把它映射到坦克的高度。
函数tank_data()读取模拟针脚2上的读数,然后计算电压读数,然后在20秒内将其发送至ESP。
val=模拟读数(A2);
电压=((val*3.3000)/1024.0);
Arduino从ESP串行接收到一些OLED命令。
Board.ino源代码:
ES.ino源代码:
视频演示:
您可能还喜欢:
根据以下文件提交:应用,188金宝搏提款有问题吗,作为特色的,物联网