산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 나노, MPXV5010DP, OLED 디스플레이로 DIY 집수정 수위 모니터 만들기

부품 및 소모품

아두이노 나노, MPXV5010DP, OLED 디스플레이로 DIY 집수정 수위 모니터 만들기Arduino Nano R3×1
Freescale MPXV5010DP×1
0.96" OLED 화면×1
MCP4725 DAC×1
릴레이 (일반)×1
커패시터 1uF, 0.01uF, 470pF 모두 SMD×1
투명 프로젝트 박스 110mm×85mm×1
Tygon 튜빙 3/32"×1

프로젝트 소개

이 집수정 수위 모니터는 딸 집의 Ecobee RSM-01 입력 보드나 내 홈 모니터 프로젝트와 연동하려고 만들었습니다. 단독으로도 쓸 수 있게 릴레이를 추가했습니다. 초음파 센서보다 더 신뢰성 있고 설치가 쉬운 방법을 찾다가 압력 센서를 알게 되었고, 최종적으로 Freescale MPXV5010DP를 선택했습니다. 0-10kPa에 대해 0-5Vdc 출력을 내며, 약 1020mm 수두에 해당합니다.

아두이노 나노, MPXV5010DP, OLED 디스플레이로 DIY 집수정 수위 모니터 만들기
아두이노 나노, MPXV5010DP, OLED 디스플레이로 DIY 집수정 수위 모니터 만들기

현장 표시를 위해 OLED 모듈을 선택했습니다. 저렴하고 밝으며 이 제품은 투컬러 화면입니다. 인터페이스로 드라이 컨택트 출력을 위한 릴레이를 추가했습니다. DAC(디지털-아날로그 컨버터)로 MPXV5010DP보다 더 강한 0-5Vdc 출력을 내고, 센서를 배선 손상으로부터 보호합니다. I2C 통신을 사용하므로 소프트웨어 변경만으로 다른 아두이노에 데이터 공급 가능합니다.

아두이노 나노, MPXV5010DP, OLED 디스플레이로 DIY 집수정 수위 모니터 만들기

연결 편의를 위해 커스텀 보드를 설계 제작했습니다. 다양한 구성에 대응할 수 있는 유연성을 제공합니다.

센서는 Tygon 튜빙으로 구리 파이프와 연결돼 집수정 안으로 들어갑니다. 이렇게 하면 모니터 장착 위치에 여유가 생기고 물로부터 거리를 둘 수 있습니다.

코드

집수정 수위 모니터
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Adafruit_MCP4725.h>
#include <math.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
Adafruit_MCP4725 dac;
int relayPin = 5;
int analogPin = 0;
int v1 = 0;
int v2 = 0;
int v3 = 0;
int v4 = 0;
int v5 = 0;
int v6 = 0;
float v7 = 0;
int v8 = 0;
int offSet = 40;
int maxSet = 1015;
int maxHeight = 1020;
int ranging = (maxHeight * 0.8) + offSet;
int alarmHeight = 12;
int analogPin2 = 1;
float divisor = 25.4;

void setup() {
  Serial.begin(9600);
  Serial.println("DAC test with DP sensor");
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  dac.begin(0x60);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, HIGH);
}

void loop() {
  v1 = analogRead(analogPin2);
  delay(1000);
  if (v1 < offSet) { v1 = offSet; }
  v2 = map(v1, offSet, maxSet, 0, 4095);
  dac.setVoltage(v2, false);
  v3 = (v1 - offSet) / 0.8;
  v7 = v3 / divisor;
  v8 = round(v7);
  v4 = map(v1, offSet, ranging, 0, 100);
  v5 = analogRead(analogPin);
  v6 = map(v5, 0, 1023, 0, 5000);
  printoled();
  serial();
}

void printoled() {
  display.clearDisplay();
  if (v8 > alarmHeight) {
    display.invertDisplay(true);
    digitalWrite(relayPin, LOW);
  } else {
    display.invertDisplay(false);
    digitalWrite(relayPin, HIGH);
  }
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.println("SUMP LEVEL");
  display.setTextSize(4);
  display.setTextColor(WHITE);
  display.print(v8);
  display.setTextSize(2);
  display.println("inches");
  display.display();
  delay(500);
}

void serial() {
  Serial.print(" PS analog input: "); Serial.print(v1);
  Serial.print(" Height: "); Serial.print(v3); Serial.print(" mm ");
  Serial.print(v4); Serial.print(" %");
  Serial.print(" Converted voltage: "); Serial.print(v6); Serial.println(" mV");
}

회로도

Eagle 6.5.0 사용

sump%20level.sch

제조공정

  1. C# 변수 범위(Scope) 이해: 클래스, 메서드, 블록 레벨
  2. 라즈베리 파이 공기질·기상 관측소 구축: InfluxDB & Grafana 연동
  3. MATRIX Voice 라즈베리 파이에 구글 어시스턴트 설치하기 – 단계별 가이드
  4. 날씨 모니터 – 라즈베리파이 DIY 기상 관측소 (드롭박스 업로드)
  5. AWS IoT 알림으로 원격 심박수 모니터링 시스템 구축
  6. 윈도우 IoT 코어 라즈베리파이 2 로버: 초보자부터 고급까지 완전 가이드
  7. 고피고(GoPiGo) v2 윈도우 10 IoT 코어 라즈베리파이 3 확장 프로젝트
  8. 게이트 레벨 모델링: 하드웨어 회로도에서 Verilog 코드로
  9. JW Machine: 정밀 CNC 계약 제조 서비스
  10. 정밀 선반 수평 조절: 전문가 가이드