Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Монитор уровня поддона

Компоненты и расходные материалы

Arduino Nano R3
× 1
Freescale MPXV5010DP
× 1
0,96 "OLED-экран
× 1
MCP4725 DAC
× 1
Реле (универсальное)
× 1
Конденсаторы 1 мкФ, .01 мкФ, 470 пФ, все SMD
× 1
Пластиковая прозрачная коробка для проектов 110 мм * 85 мм
× 1
Tygon Tubing 3/32 "
× 1

Об этом проекте

Монитор уровня поддона был построен для работы с входной платой Ecobee RSM-01, которую я использую в доме моей дочери или в моем проекте домашнего монитора. Я добавил реле, чтобы он мог работать отдельно. Я хотел что-то более надежное и простое в установке, чем ультразвуковой датчик. С этой целью я начал изучать датчики давления и, наконец, наткнулся на Freescale MPXV5010DP. Он имеет выход 0-5 В постоянного тока для 0-10 кПа, что составляет около 1020 мм водяного столба.

Поскольку мне нужна была местная индикация, я выбрал OLED-модуль для использования в дизайне. Дешево, шустро, а у этого был двухцветный экран. Чтобы обеспечить интерфейс, я добавил реле для выхода с сухим контактом. Я добавил ЦАП (цифро-аналоговый преобразователь) для выхода 0-5 В постоянного тока с большей мощностью, чем датчик MPXV5010DP, это также защитит датчик от возможного повреждения проводки. Поскольку я использую связь I2C, все, что нужно, - это изменить программное обеспечение для передачи данных на другой Arduino.

Я спроектировал и построил специальную плату для простоты подключения. Он обеспечивает достаточную гибкость для различных конфигураций.

Датчик соединен трубкой Tygon с медной трубкой, которая спускается в отстойник. Это позволяет по своему усмотрению выбирать место для установки монитора и держать его подальше от воды.

Код

  • Монитор уровня поддона
Монитор уровня отстойника C / C ++
Разбирайте так, как вам нужно, дополнительный мусор в этой версии очищайте по своему усмотрению.
 #include  #include  #include  #include  #include  #include  #define OLED_RESET 4Adafruit_SSD1306 display (OLED_RESET); # if (SSD1306_LCDHEIGHT! =64) #error ("Неверная высота, исправьте Adafruit_SSD130_h!"; int relayPin =5; // для релейного выхода тревоги int analogPin =0; // измеряет выходное напряжение ЦАП int v1 =0; // вывод АЦП из MPXV5010int v2 =0; // масштабирование для входа ЦАП преобразует вход PS в ЦАП inputint v3 =0; // для преобразования мм из PS inputint v4 =0; // для процента глубины от PS inputint v5 =0; // вывод ЦАП в том виде, в каком он прочитан arduinoint v6 =0; // для преобразования мВ из PS inputfloat v7 =0; // преобразование из мм в дюймы int v8 =0; // для удаления десятичных знаков в дюймах, которые засоряют дисплей int offSet =40; // выход 0 кПа, измеренный arduinoint maxSet =1015; // выходная мощность 10 кПа, измеренная arduinoint maxHeight =1020; // глубина поддона от нормального уровня воды до крышки в мм в диапазоне =(maxHeight * 0.8) + offSet; int alarmHeight =12; // высота срабатывания сигнализации в дюймах // Для датчика перепада давления MPXV5010DPint analogPin2 =1; float divisor =25.4; // для преобразования дисплея в дюймыvoid setup () {Serial.begin (9600); Serial.println («Тест ЦАП с датчиком перепада давления»); // по умолчанию мы генерируем высокое напряжение из линии 3,3 В внутри! (аккуратно!) display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // инициализация с адресом I2C 0x3D (для 128x64) // инициализация завершена // Очистить буфер. display.clearDisplay (); // Для MCP4725A0 адрес 0x60 или 0x61 dac.begin (0x60); pinMode (relayPin, ВЫХОД); digitalWrite (relayPin, HIGH);} цикл void () {v1 =analogRead (analogPin2); задержка (1000); if (v1  alarmHeight) {display.invertDisplay (true); digitalWrite (relayPin, LOW);} else {display.invertDisplay (ложь); digitalWrite (relayPin, HIGH);} display.setTextSize (2); display.setTextColor (БЕЛЫЙ); display.setCursor (0,0); display.println («УРОВЕНЬ ПРИБОРА»); //display.setTextColor(ЧЕРНЫЙ, БЕЛЫЙ); // инвертированный текст display.setTextSize (4); display.setTextColor (БЕЛЫЙ); display.print (v8); display.setTextSize (2); display.println ("дюймы"); display.display (); задержка (500); } void serial () {// для отладки и калибровки Serial.print ("Аналоговый вход PS:"); Serial.print (v1); Serial.print ("Высота:"); Serial.print (v3); Serial.print («мм»); Serial.print (v4); Serial.print ("%"); Serial.print («Преобразованное напряжение:»); Serial.print (v6); Serial.println ("mV");} // конец 

Схема

Используется Eagle 6.5.0 поддон% 20level.sch

Производственный процесс

  1. Область видимости переменной C#
  2. Монитор окружающей среды и качества воздуха своими руками
  3. MATRIX VOICE GOOGLE ASSISTANT - MATRIX VOICE PROJECT
  4. Weather Monitor
  5. Удаленный монитор сердечного ритма
  6. Rover
  7. GoPiGo v2 с Windows IoT
  8. Моделирование уровня ворот
  9. JW Машина
  10. Как выровнять токарный станок