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

Мониторинг качества воды с использованием MKR1000 и ARTIK Cloud

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

Arduino MKR1000
× 1
Перемычки (общие)
× 1
pH-метр DFRobot
× 1
Резистор 4,75 кОм
× 1
Температурный датчик
× 1

Приложения и онлайн-сервисы

Samsung ARTIK Cloud для Интернета вещей
IDE Arduino

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

I. Цель

Основная цель этого проекта - использовать Samsung ARTIK Cloud для мониторинга уровня pH и температуры в плавательных бассейнах.

II. Настройка ARTIK Cloud

Шаг 1. Создание нового устройства

Зарегистрируйтесь в ARTIK Cloud. Перейдите на сайт разработчика и создайте новый «тип устройства».

Введите желаемое отображение и уникальное имя.

Создать новый манифест

Введите название поля и другое описание

Нажмите "Сохранить", а затем перейдите на вкладку "Активировать манифест"

Нажмите кнопку АКТИВНЫЙ МАНИФЕСТ, чтобы закончить, и вы будете перенаправлены сюда

Готово, создание типа устройства!

Теперь давайте создадим ваше приложение, которое будет использовать это устройство.

Шаг 2. Создание приложения

Перейдите в ARTIK Cloud Applications.

Щелкните новое приложение

Введите желаемое имя приложения и URL-адрес перенаправления аутентификации.

Обратите внимание, что требуется URL-адрес перенаправления аутентификации. Он используется для аутентификации пользователей этого приложения, поэтому будет перенаправлять на этот URL-адрес, если потребуется вход в систему.

В качестве образца мы использовали http:// localhost / index /.

Теперь установите для вашего приложения разрешение на чтение и запись, перейдите на свое устройство и сохраните.

Поздравляем, у вас есть приложение!

Теперь давайте подключим это приложение.

Шаг 3. Подключите ваше устройство

Перейдите к моим устройствам и нажмите «Подключить другое устройство».

Щелкните новый тип устройства, созданный ранее, затем щелкните подключить устройство.

Щелкните настройки подключенного устройства.

Запишите эту информацию, так как она вам понадобится в программе.

Теперь перейдите к подключенному устройству

Готово для настройки ARTIK Cloud. Когда ваше оборудование будет подключено, на диаграмме появятся данные.

III. Настройка аппаратного датчика

Шаг 1. Подключите датчики температуры и pH к MKR1000.

Вот диаграмма:

  • Temp GND к MRK1000 GND
  • Temp OUT на цифровой контакт 1 MKR1000
  • Температура от VCC до MKR1000 5 В
  • Подключите резистор 4,7 кОм к Temp VCC и Temp OUT.
  • pH GND на MRK1000 GND
  • pH OUT на MKR1000, аналоговый вывод 1
  • pH от VCC до MKR1000 5 В

Вот мой образец проводки

Если вы заметили, мы добавили аудиоразъем для легкого отсоединения датчика температуры. Но это необязательно.

Вот подключение датчика температуры к разъему.

Шаг 2. Установите необходимое программное обеспечение

Перейдите в среду разработки Arduino и добавьте плату MKR1000.

Найдите mkr1000 и нажмите "Установить"

Добавить необходимую библиотеку

Найдите библиотеки для установки:

  • ArduinoJson - мы будем использовать его для отправки данных JSON в ARTIK Cloud.
  • ArduinoHttpClient - хост для подключения к API
  • OneWire - требуется для чтения цифрового входа с датчика температуры.
  • DallasTemperature - Требуемая библиотека датчика температуры Dallas.

Завершите добавление необходимого программного обеспечения!

Шаг 3. Загрузите программу

Теперь подключите MKR1000 к ПК / ноутбуку.

Загрузите программное обеспечение на GitHub здесь

Измените следующую информацию:

Затем загрузите программный код в MKR1000 и начните мониторинг.

Примечание. Ваш Wi-Fi должен иметь подключение к Интернету.

IV. Полевые испытания

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

Вы можете поместить MKR1000 и датчик в коробку и поставить его на бассейн вдали от загрязнения водой. Таким образом вы сможете контролировать качество воды и нормализовать его, добавляя необходимые химические вещества.

Вскоре мы загрузим руководство о том, как поместить все схемы в эту коробку, и фактические кадры тестирования.

V. Результаты

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

Счастливого строительства! :)

Код

  • Коды Arduino MKR1000
Коды Arduino MKR1000 C / C ++
Загрузите эти коды в свой Arduino MKR1000

Посетите это на GitHub> https://github.com/imjeffparedes/iot-water-quality-artik
/****************** Здесь мой код для Устройство мониторинга качества воды опубликовано в https://www.hackster.io/animo/water-quality-moniroting-840fea*******************/#include  #include  #include  #include  #include  #include  #include  / ** Датчик температуры Инициализация ** / # define ONE_WIRE_BUS 1 // Провод данных подключен к цифровому порту 1 ArduinoOneWire oneWire (ONE_WIRE_BUS); // Настройка экземпляра oneWire для связи с любыми // устройствами OneWire (не только с ИС Maxim / Dallas). Датчики температуры Dallas (&oneWire); // Передаем нашу ссылку oneWire в Dallas Temperature. / ** Инициализация ARTIK Cloud REST ** / char server [] ="api.artik.cloud"; // Порт хоста Samsung ARTIK Cloud API =443; // 443 для HTTPS char buf [200]; // основные данные для хранения JSON для отправки в облако ARTIK String deviceID ="artik cloud device id"; // поместите сюда идентификатор вашего устройства, созданный из учебника String deviceToken ="artik cloud device token"; // поместите сюда токен устройства, созданный из учебника / ** инициализация pH-метра ** / # define SensorPin A1 // pH-метр Аналоговый выход на аналоговый вход Arduino 1 # define Offset 0.00 // компенсация отклонения # define samplingInterval 20 # define ArrayLenth 40 // время сбора в pHArray [ArrayLenth]; // Сохраняем среднее значение обратной связи датчика int pHArrayIndex =0; int status =-1; int millis_start; / ** Настройка Wi-Fi ** / # определить WIFI_AP "ваш SSID Wi-Fi" #define WIFI_PWD "пароль Wi-Fi" WiFiSSLClient wifi; HttpClient client =HttpClient (Wi-Fi, сервер, порт); установка void (void) {millis_start =millis (); Serial.begin (9600); startWifi (); // начинаем подключаться к Wi-Fi} void loop (void) {/ * Получение текущей температуры * / float celsius =0; sensor.requestTemperatures (); // Отправляем команду для получения температуры celsius =sizes.getTempCByIndex (0); sensor.requestTemperatures (); // Отправляем команду для получения температуры celsius =sizes.getTempCByIndex (0); / * Получение текущего значения pH * / static unsigned long samplingTime =millis (); статический беззнаковый длинный printTime =millis (); статический поплавок pHValue, напряжение; if (millis () - samplingTime> samplingInterval) {pHArray [pHArrayIndex ++] =analogRead (SensorPin); если (pHArrayIndex ==ArrayLenth) pHArrayIndex =0; напряжение =avergearray (pHArray, ArrayLenth) * 5,0 / 1024; pHValue =3,5 * напряжение + смещение; samplingTime =миллис (); } Serial.println ("===========================================" ); Serial.println («Мы отправим эти данные json»); // печать в формате json Serial.println ("data:{"); Serial.print ("ph:"); Serial.print (pHValue); Serial.print (", темп:"); Serial.print (по Цельсию); Serial.println ("}"); Serial.println (""); Serial.println («Начать отправку данных»); String contentType ="application / json"; String AuthorizationData ="носитель" + deviceToken; // Токен устройства int len ​​=loadBuffer (celsius, pHValue); Serial.println ("Temp отправки:" + String (celsius) + "и ph:" + String (pHValue)); Serial.println («Отправить POST в ARTIK Cloud API»); client.beginRequest (); client.post ("/ v1.1 / сообщения"); //, contentType, buf client.sendHeader ("Авторизация", AuthorizationData); client.sendHeader ("Content-Type", "application / json"); client.sendHeader ("Длина содержимого", len); client.endRequest (); client.print (buf); // выводим ответ из api int statusCode =client.responseStatusCode (); Строковый ответ =client.responseBody (); Serial.println (""); Serial.print («Код состояния:»); Serial.println (statusCode); Serial.print ("Ответ:"); Serial.println (ответ); задержка (1000); // задержка обновления} / * Инициализация подключения к Wi-Fi * / void startWifi () {Serial.println ("Подключение MKR1000 к сети ..."); // WiFi.begin (); // пытаемся подключиться к сети Wi-Fi:while (status! =WL_CONNECTED) {Serial.print ("Попытка подключиться к WPA SSID:"); Serial.println (WIFI_AP); WiFi.begin (WIFI_AP, WIFI_PWD); // ждем 10 секунд подключения:delay (10000); статус =WiFi.status (); }} / * Источник pH-метра DfRobot * / double avergearray (int * arr, int number) {int i; int max, min; двойное средн .; длинная сумма =0; if (number <=0) {Serial.println ("Номер ошибки для массива для усреднения! / n"); возврат 0; } if (number <5) {// меньше 5, статистика вычисляется напрямую для (i =0; i  макс) {количество + =макс; // arr> max max =arr [i]; } еще {сумма + =arr [я]; // min <=arr <=max}} // if} // для avg =(double) amount / (number-2); } // if return avg;} / * Буфер для отправки в REST * / int loadBuffer (float temp, float ph) {StaticJsonBuffer <200> jsonBuffer; // резервируем место в памяти JsonObject &root =jsonBuffer.createObject (); // создаем корневые объекты root ["sdid"] =deviceID; корень ["тип"] ="сообщение"; JsonObject &dataPair =root.createNestedObject («данные»); // создаем вложенные объекты dataPair ["temp"] =temp; dataPair ["ph"] =ph; root.printTo (buf, sizeof (buf)); // JSON-печать в буфер return (root.measureLength ()); // также возвращаем длину} 

Схема

Макетное подключение МКР1000 и датчиков

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

  1. Использование SaaS и облака требует осторожного обращения с данными
  2. В облако бесконечности и дальше
  3. Мониторинг облачных приложений и вы
  4. Безопасность и важные преимущества использования Cloud Linux
  5. Датчик температуры Python и Raspberry Pi
  6. Мониторинг комнатной температуры с помощью Moteino’s и Raspberry Pi
  7. Сделай сам:мониторинг и регулирование температуры для домашнего пивоварения
  8. Удаленный мониторинг погоды с помощью Raspberry Pi
  9. Система мониторинга качества воздуха и мусора в помещении
  10. Области применения и преимущества использования решения для мониторинга газа