Оглавление:

Канализационный путь: 3 шага
Канализационный путь: 3 шага

Видео: Канализационный путь: 3 шага

Видео: Канализационный путь: 3 шага
Видео: Где найти все точки ВХОДА и ВАЖНЫЕ объекты при разведке острова Cayo Perico в GTA Online 2024, Ноябрь
Anonim
Sewer'Sway
Sewer'Sway

Текущий процесс очистки канализационной линии носит скорее реактивный, чем упреждающий характер. Телефонные звонки регистрируются в случае засорения канализации на участке. Кроме того, ручным сборщикам мусора сложно определить точку ошибки. Они используют пробный метод, чтобы провести процесс очистки нескольких люков в пораженной зоне, тратя много времени. Кроме того, высокая концентрация токсичных газов приводит к раздражительности, головным болям, усталости, инфекциям носовых пазух, бронхиту, пневмонии, потере аппетита, плохой памяти и головокружению.

Решение состоит в разработке прототипа, который представляет собой небольшое устройство с форм-фактором ручки, встроенное в крышку люка. Нижняя часть устройства, открытая внутрь люка при закрытой крышке, состоит из датчиков, которые определяют уровень воды в канализации и концентрацию газов, в том числе метана, монооксида углерода, диоксида углерода и оксидов азота.. Данные собираются на главную станцию, которая обменивается данными с этими устройствами, установленными в каждом люке через LoRaWAN, и отправляет данные на облачный сервер, на котором размещается приборная панель для целей мониторинга. Кроме того, это устраняет разрыв между муниципальными властями, ответственными за обслуживание канализации и вывоз мусора. Установка этих устройств по всему городу позволит превентивно выявить и точно определить местоположение забитой канализационной линии до того, как сточные воды достигнут поверхности.

Запасы

1. Ультразвуковой датчик - HC-SR04

2. Датчик газа - MQ-4

3. Шлюз LoRa - Raspberry pi 3

4. Модуль LoRa - Semtech SX1272.

5. NodeMCU

6. Модуль зуммера

7. Литий-ионный аккумулятор емкостью 500 мАч, 3,7 В

Шаг 1:

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение

Для первого прототипа я использовал крестики-нолики (коробку свежих мятных конфет) в качестве ограждения. Крепление ультразвуковых датчиков было выполнено таким образом, чтобы направлять Tx и Rx в сторону канализационного потока. Подключения к ультразвуковому датчику и датчику газа очень просты. Просто нужно запитать отдельные датчики и использовать любой из 8 цифровых контактов, доступных в NodeMCU, для чтения данных. Я нарисовал связи для лучшего понимания.

Шаг 2: Знакомство с SEMTECH SX1272

Нашим следующим шагом будет установка библиотек на наш NodeMCU.

Вы можете найти библиотеки для модуля Semtech LoRa по этой ссылке:

Чтобы установить эту библиотеку:

  • Установите его с помощью диспетчера библиотек Arduino («Скетч» -> «Включить библиотеку» -> «Управление библиотеками…») или
  • Загрузите zip-файл с github с помощью кнопки «Загрузить ZIP» и установите его с помощью IDE («Скетч» -> «Включить библиотеку» -> «Добавить библиотеку. ZIP…»
  • Клонируйте этот репозиторий git в папку скетчей / библиотек.

Чтобы эта библиотека работала, ваш Arduino (или любую другую совместимую с Arduino плату, которую вы используете) должен быть подключен к трансиверу. Точные соединения немного зависят от используемой платы трансивера и Arduino, поэтому в этом разделе мы попытаемся объяснить, для чего предназначено каждое соединение и в каких случаях оно (не) требуется.

Обратите внимание, что модуль SX1272 работает при 3,3 В и, вероятно, не любит 5 В на своих контактах (хотя в таблице ничего не говорится об этом, и мой трансивер, очевидно, не сломался после случайного использования ввода-вывода 5 В в течение нескольких часов). На всякий случай обязательно используйте переключатель уровня или Arduino с напряжением 3,3 В. Оценочная плата Semtech имеет резисторы на 100 Ом последовательно со всеми линиями передачи данных, которые могут предотвратить повреждение, но я бы не стал на это рассчитывать.

Трансиверам SX127x требуется напряжение питания от 1,8 до 3,9 В. Обычно используется источник питания 3,3 В. Некоторые модули имеют один вывод питания (например, модули HopeRF с маркировкой 3,3 В), но другие предоставляют несколько выводов питания для разных частей (например, оценочная плата Semtech с VDD_RF, VDD_ANA и VDD_FEM), которые все могут быть соединены вместе. Любые контакты GND должны быть подключены к контактам Arduino GND.

Основной способ связи с трансивером - через SPI (последовательный периферийный интерфейс). Для этого используются четыре контакта: MOSI, MISO, SCK и SS. Первые три должны быть напрямую связаны: MOSI с MOSI, MISO с MISO, SCK с SCK. Расположение этих контактов на Arduino может быть разным, см., Например, раздел «Подключения» документации Arduino SPI. Соединение SS (выбор ведомого) немного более гибкое. На стороне ведомого устройства SPI (приемопередатчика) он должен быть подключен к контакту (обычно) с маркировкой NSS. На стороне мастера SPI (Arduino) этот вывод может подключаться к любому выводу ввода / вывода. У большинства Arduino также есть контакт с надписью «SS», но это актуально только тогда, когда Arduino работает как ведомое устройство SPI, что здесь не так. Какой бы вывод вы ни выбрали, вам необходимо сообщить библиотеке, какой вывод вы использовали через сопоставление выводов (см. Ниже).

Контакты DIO (цифровой ввод / вывод) на плате приемопередатчика могут быть настроены для выполнения различных функций. Библиотека LMIC использует их для мгновенного получения информации о состоянии от трансивера. Например, когда начинается передача LoRa, вывод DIO0 настраивается как выход TxDone. Когда передача завершена, трансивер устанавливает на вывод DIO0 высокий уровень, который может быть обнаружен библиотекой LMIC. Библиотеке LMIC нужен только доступ к DIO0, DIO1 и DIO2, остальные выводы DIOx можно оставить отключенными. На стороне Arduino они могут подключаться к любому выводу ввода / вывода, поскольку текущая реализация не использует прерывания или другие специальные аппаратные функции (хотя это может быть добавлено в функцию, см. Также раздел «Время»).

В режиме LoRa контакты DIO используются следующим образом:

  • DIO0: TxDone и RxDone
  • DIO1: RxTimeoutIn

В режиме FSK они используются следующим образом:

  • DIO0: PayloadReady и PacketSent
  • DIO2: TimeOut

В обоих режимах требуется только 2 контакта, но трансивер не позволяет отображать их таким образом, чтобы все необходимые прерывания отображались на одни и те же 2 контакта. Таким образом, если используются режимы LoRa и FSK, все три контакта должны быть подключены. Контакты, используемые на стороне Arduino, должны быть настроены в сопоставлении контактов в вашем эскизе (см. Ниже). Сброс У трансивера есть штифт сброса, который можно использовать для его явного сброса. Библиотека LMIC использует это для обеспечения согласованного состояния микросхемы при запуске. На практике этот вывод можно оставить отключенным, так как трансивер уже будет в нормальном состоянии при включении, но его подключение может предотвратить проблемы в некоторых случаях. На стороне Arduino можно использовать любой вывод ввода / вывода. Используемый номер контакта должен быть настроен в назначении контактов (см. Ниже).

Трансивер имеет два отдельных антенных разъема: один для приема и один для передачи. Типичная плата приемопередатчика содержит микросхему антенного переключателя, которая позволяет переключать одну антенну между этими соединениями RX и TX. Такому антенному переключателю обычно можно указать, в каком положении он должен находиться, через входной контакт, часто обозначаемый как RXTX. Самый простой способ управлять антенным переключателем - использовать вывод RXTX на трансивере SX127x. Этот вывод автоматически устанавливается в высокий уровень во время передачи и низкий во время приема. Например, платы HopeRF, похоже, имеют это соединение, поэтому они не открывают никаких контактов RXTX, и этот контакт может быть помечен как неиспользуемый в сопоставлении контактов. На некоторых платах есть контакт антенного переключателя, а иногда и контакт SX127x RXTX. Например, оценочная плата SX1272 вызывает первый FEM_CTX, а второй RXTX. Опять же, простое соединение их вместе с помощью перемычки - самое простое решение. В качестве альтернативы, или если вывод SX127x RXTX недоступен, LMIC можно настроить для управления антенным переключателем. Подключите контакт управления антенным переключателем (например, FEM_CTX на оценочной плате Semtech) к любому контакту ввода / вывода на стороне Arduino и настройте контакт, используемый в карте контактов (см. Ниже). Однако не совсем понятно, почему бы не захотеть, чтобы трансивер напрямую управлял антенной.

Шаг 3: 3D-печать корпуса

3D-печать корпуса
3D-печать корпуса
3D-печать корпуса
3D-печать корпуса

Как только у меня все было готово и работало, я решил напечатать на 3D-принтере корпус для модуля, чтобы он выглядел лучше.

Когда готовый продукт был под рукой, установка в люк и получение результатов в реальном времени на приборной панели было несложным. Значения концентрации газа в реальном времени с указанием уровня воды позволили властям принять упреждающий подход, а также более безопасный способ решения проблемы.

Рекомендуемые: