亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警

元件与供应

Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警Arduino UNO×1
Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警1602 LCD (白字蓝屏)×1
Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警HC-SR04 超声波传感器×1
Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警DS18B20 防水温度传感器×1
4.75kΩ 电阻(DS18B20 上拉)×1
Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警12mm 轻触开关×1
Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警10kΩ 单圈电位器(LCD 对比度)×1
Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警蜂鸣器(8mA)×1
LED(绿/黄/红各 1)×3
Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警221Ω 电阻(LED 限流)×3
Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警面包板×1
Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警跳线×1

软件工具

项目简介

Arduino 超声波水位/温度监测系统:LCD 显示 + 多级声光报警

监测水箱液位与温度:超声波测距换算水位,DS18B20 测温,LCD 同屏显示。三级报警逻辑:

属于大型系统第一阶段,后续将加入 6 灯循环指示水泵工作、磁性液位开关控制水泵启停。

接线说明

完整代码

#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 6
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

LiquidCrystal LCD(12, 11, 5, 4, 3, 2);
int trigPin = 9, echoPin = 7;
float pingTime, targetDistance;
float speedOfSound = 776.5; // mph

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);
  LCD.begin(16, 2);
  LCD.setCursor(0, 0); LCD.print("Distance:");
  sensors.begin();
  pinMode(8, OUTPUT); pinMode(10, OUTPUT); pinMode(13, OUTPUT);
}

void loop() {
  // 触发测距
  digitalWrite(trigPin, LOW); delayMicroseconds(2000);
  digitalWrite(trigPin, HIGH); delayMicroseconds(15);
  digitalWrite(trigPin, LOW); delayMicroseconds(10);
  pingTime = pulseIn(echoPin, HIGH);
  pingTime = pingTime / 1000000.0 / 3600.0; // 小时
  targetDistance = speedOfSound * pingTime / 2 * 160934.4; // cm

  sensors.requestTemperatures();
  LCD.setCursor(10, 0); LCD.print("    "); // 清除
  LCD.setCursor(10, 0); LCD.print((int)(targetDistance + 0.5)); LCD.print("cm ");

  LCD.setCursor(0, 1); LCD.print("                "); // 清行
  LCD.setCursor(0, 1);
  if (targetDistance > 40) {
    LCD.print("LEV LOW "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print("C");
  } else if (targetDistance > 20) {
    LCD.print("LEV MED "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print("C");
  } else {
    LCD.print("LEV HIGH "); LCD.print(sensors.getTempCByIndex(0)); LCD.print((char)223); LCD.print("C");
  }
  delay(2000);

  // 报警输出
  digitalWrite(13, targetDistance > 40 ? HIGH : LOW);       // 绿灯
  digitalWrite(8, (targetDistance < 40 && targetDistance > 20) ? HIGH : LOW); // 黄灯
  if (targetDistance < 20) { digitalWrite(10, HIGH); delay(2000); digitalWrite(10, LOW); }
  else digitalWrite(10, LOW);
}

原理图

lcd_pot_led_buzz_pb_distsens_temp_EHVdF6S1L7.fzz (Fritzing 文件)

制造工艺

  1. 集成二维码、RFID与体温验证的门禁控制系统
  2. 树莓派多路DS18B20 1-Wire温度监测:接线与编程全指南
  3. 树莓派与 Python 构建远程温度传感器:分步实战指南
  4. 树莓派多传感器温度光照监测系统:DS18B20 实战构建
  5. 树莓派自动化气雾栽培系统:湿度传感器智能控制
  6. 树莓派 + MCP9808 + InfluxDB + Grafana:家庭温度监测系统
  7. Portenta H7 对接 MAX6675 热电偶温度传感器教程
  8. DHT11 温湿度传感器项目:LED 指示与压电蜂鸣器报警
  9. 多位置温度传感器系统,助力智能家居集成
  10. TM1637 数码管时钟:Arduino Nano 实现时间设定与闹钟
  11. 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟
  12. NASA戈达德实验室芯片实验室传感器:实时流量与温度监测