Мониторинг работы компрессора по принципу удаленного доступа - Своими руками
Своими руками

Мониторинг работы компрессора по принципу удаленного доступа

>

Мониторинг работы компрессора по принципу удаленного доступаВ пользовании у мастера есть два компрессора расположенные в разных местах. Для контроля ежедневно ему приходилось измерять вибрацию и температуру компрессоров. Естественно это отнимает время. Для решения проблемы мастер решил сделать удаленный контроль за их состоянием. В принципе, вместо компрессора может быть любое другое устройство.

Так же в статье мы познакомимся с приложением Blynk, узнаем какой модуль ESP выбрать, для чего нужна плата MPU6050 и многое другое.
Инструменты и материалы:-Модуль GY-521 MPU6050;
–Микроконтроллер ESP8266;-Макетная плата;
-Соединительные провода;
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаШаг первый: модуль GY-521 MPU6050
Плата MPU-6050 объединяет 3 оси гироскопа и 3 оси акселерометра и может быть применена для контроля работы за компрессором.

Принцип работы модуля:
Гироскоп
Гироскопические датчики могут контролировать ориентацию, направление, угловое перемещение и вращение. На смартфоне гироскопический сенсор обычно выполняет функции распознавания жестов. Кроме того, гироскопы смартфонов помогают определить положение и ориентацию устройства.

Акселерометр
Акселерометр – это датчик, который измеряет ускорение, а также наклон, угол наклона, вращение, вибрацию, столкновение и силу тяжести. При использовании на смартфоне акселерометр может автоматически изменять отображение телефона по вертикали или горизонтали, поскольку этот датчик может проверять, на какую ось действует вектор ускорения свободного падения.
Этот датчик использует протокол связи I2C.

I2C может работать в двух режимах, Master и Slave.

Распиновка:
VCC — положительный контакт питания;
GND — земля;
SDA — линия данных I2C;
SCL — линия синхроимпульсов I2C;
INT — настраиваемое прерывание;
AD0 — I2C адрес; по-умолчанию AD0 подтянут к земле, поэтому адрес устройства — 0x68; если соединить AD0 к контакту питания, то адрес изменится на 0x69;
XCL, XDA — дополнительный I2C интерфейс для подключения внешнего магнитометра
Мониторинг работы компрессора по принципу удаленного доступаШаг второй: приложение BLYNK
Мониторинг работы компрессора по принципу удаленного доступаПоявление новых устройств, которые также можно программировать в Arduino, а также использование плат расширения (плат, которые добавляют функции к устройствам Arduino) добавили возможности проектов, которые можно разрабатывать на Arduino.

В то же время появление сервисов, подключенных к Интернету, и концепция IoT (Интернет вещей) увеличили спрос на устройства, которые имеют возможность подключения и, таким образом, обеспечивают удаленное управление этими устройствами через Интернет.
BLYNK – это именно один из таких сервисов.

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

Приложение Blynk – это программа, доступная для Android и iOS, которое позволяет пользователю создавать приложения, взаимодействующие с оборудованием. Для каждого проекта пользователь может вставлять виджеты, которые реализуют функции управления (такие как кнопки, ползунки и клавиши), уведомления и чтение данных оборудования (отображение на дисплеях, графиках и картах).

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

К данным, хранящимся на сервере Blynk, можно получить доступ извне через HTTP API, что открывает возможность использования Blynk для хранения периодически генерируемых данных, например, данных датчика температуры.

Что касается аппаратного обеспечения, у нас есть библиотеки Blynk для нескольких платформ разработки. Эта библиотека отвечает за управление всем аппаратным подключением к серверу Blynk и управление запросами ввода и вывода для данных и команд.

Приложение Blynk доступно для бесплатной загрузки. Доступ к серверу Blynk не ограничен (и по-прежнему позволяет реализовать его локально через предоставленный открытый исходный код), Библиотеки Blynk также бесплатны.

Однако каждый виджет «стоит» определенное количество энергии – своего рода виртуальную валюту. При регистрации каждому пользователю выдается 2000 единиц энергии. Если нужно больше энергии, то ее можно приобрести дополнительно.
Если “разобрать” проект, то энергия возвращается обратно в рюкзак пользователя.
Мониторинг работы компрессора по принципу удаленного доступаШаг третий: установка приложения
Чтобы установить приложение Blynk на свой смартфон, необходимо проверить, совместима ли операционная система с приложением. Предварительные условия для установки следующие:
ОС Android версии 4.2+.
IOS версии 9+.
Также можно запустить Blynk на эмуляторах.
Загрузить приложение можно из магазинов Google Play или App Store.
Мониторинг работы компрессора по принципу удаленного доступаПосле установки приложения пользователь должен создать учетную запись на сервере Blynk.
Необходимо использовать действующий адрес электронной почты, так как он будет часто использоваться позже.
Мониторинг работы компрессора по принципу удаленного доступаШаг четвертый: создание нового проекта
После регистрации появится главный экран приложения. Дальше нужно выбрать опцию New Project (новый проект), и откроется новая страница.

Дальше в графе Project Name введите имя проекта. Выберите тип устройства, которое вы будете использовать, на вкладке Choose Device.
В данном проекте использовалось название Project IOT с выбранной опцией ESP8266.

После нажатия кнопки «Create» у пользователя будет доступ к холсту проекта, то есть к пространству, в котором можно создавать собственное приложение.

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

Есть 5 типов виджетов:
Контроллеры – используются для отправки команд, управляющих оборудованием.
Дисплеи – используются для просмотра данных с датчиков и других источников;
Уведомления – отправка сообщений и уведомлений;
Интерфейс – виджеты для выполнения определенных функций графического интерфейса;
Другое – виджеты, не относящиеся ни к одной категории;
У каждого виджета свои настройки.

В данном проекте был выбран виджет SuperChart. Виджет SuperChart «стоит» 900 единиц энергии, которые будут вычтены из начальной суммы (2000), показанной в верхней части экрана. Затем этот виджет будет добавлен в макет проекта. Так как компрессора два, то и виджета нужно два.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаПоскольку этот виджет является средством просмотра данных, то есть данных о температуре и вибрации, которые будут отправлены в Blynk, для их правильного отображения необходимы некоторые настройки:
При нажатии на этот виджет, отображаются параметры конфигурации.
На этом новом экране щелкните DataStream, назовите его и щелкните значок конфигурации, где можно найти следующие данные:
Цифровые контакты – представляют собой физические цифровые контакты на вашем оборудовании. Контакты с поддержкой ШИМ отмечены символом ~.
Аналоговые выводы – представляют собой физические аналоговые выводы ввода-вывода на вашем оборудовании.
Виртуальные пины – используются для передачи любых данных между приложением Blynk и вашим оборудованием.
В данном проекте используются VIRTUAL V4 для температуры и VIRTUAL V1 для вибрации.
После выполнения команды приложение попытается подключиться к оборудованию через сервер Blynk. Однако у нас все еще нет оборудования, настроенного для его использования.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаШаг шестой: установка библиотеки и код
Теперь нужно установим библиотеку Blynk для Arduino IDE.
Загружаем файл Blynk_Release_vXX.zip. Затем разархивируем содержимое файла в папке альбомов Arduino IDE. Местоположение этой папки можно узнать непосредственно из среды разработки Arduino. Для этого откройте IDE Arduino и в File → Preferences посмотрите месторасположения Sketchbook.
После этого содержимое распакованного файла должно выглядеть следующим образом:
seu_diretorio_/libraries/Blynkseu_diretorio/libraries/BlynkESP8266_Lib

seu_diretorio/tools/BlynkUpdaterseu_diretorio/tools/BlynkUsbScript
После перезапуска IDE Arduino новые образцы кода, относящиеся к библиотеке Blynk, можно найти в разделе File → Examples → Blynk. Для данного примера аппаратного обеспечения, ESP8266, мастер выбирает пример File → Examples → Blynk → Boards_WiFi → ESP8266_Standalone.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаФото ниже определяет токен авторизации для управления оборудованием.
Мониторинг работы компрессора по принципу удаленного доступаЭтот токен представляет собой уникальный номер, который был сгенерирован при создании проекта в приложении и должен быть заполнен в соответствии с кодом, отправленным по электронной почте.
Строки внизу должны соответствовать имени и паролю сети Wi-Fi, к которой будет подключаться ESP8266.
Мониторинг работы компрессора по принципу удаленного доступаПосле того, как строки кода будут скорректированы, загрузите программное обеспечение на плату разработки.
Код можно посмотреть ниже.
Мониторинг работы компрессора по принципу удаленного доступа Показать / Скрыть текст#define BLYNK_PRINT Serial

#include

#include

#include

char auth[] = "Código do autor do projeto";

// Your WiFi credentials.

// Set password to "" for open networks.

char ssid[] = "Nome da rede WIFI";

char pass[] = "SSID rede WIFi";

// MPU6050 Slave Device Address

const uint8_t MPU6050SlaveAddress = 0x68;

// Select SDA and SCL pins for I2C communication

const uint8_t scl = D1;

const uint8_t sda = D2;

// sensitivity scale factor respective to full scale setting provided in

datasheet

const uint16_t AccelScaleFactor = 16384;

const uint16_t GyroScaleFactor = 131;

// MPU6050 few configuration register addresses

const uint8_t MPU6050_REGISTER_SMPLRT_DIV = 0x19;

const uint8_t MPU6050_REGISTER_USER_CTRL = 0x6A;

const uint8_t MPU6050_REGISTER_PWR_MGMT_1 = 0x6B;

const uint8_t MPU6050_REGISTER_PWR_MGMT_2 = 0x6C;

const uint8_t MPU6050_REGISTER_CONFIG = 0x1A;

const uint8_t MPU6050_REGISTER_GYRO_CONFIG = 0x1B;

const uint8_t MPU6050_REGISTER_ACCEL_CONFIG = 0x1C;

const uint8_t MPU6050_REGISTER_FIFO_EN = 0x23;

const uint8_t MPU6050_REGISTER_INT_ENABLE = 0x38;

const uint8_t MPU6050_REGISTER_ACCEL_XOUT_H = 0x3B;

const uint8_t MPU6050_REGISTER_SIGNAL_PATH_RESET = 0x68;

int16_t AccelX, AccelY, AccelZ, Temperature, GyroX, GyroY, GyroZ;

void setup() {

Serial.begin(9600);

Wire.begin(sda, scl);

MPU6050_Init();

Blynk.begin(auth, ssid, pass);

}

void loop() {

double Ax, Ay, Az, T, Gx, Gy, Gz;

Read_RawValue(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_XOUT_H);

//divide each with their sensitivity scale factor

Ax = (double)AccelX/AccelScaleFactor;

Ay = (double)AccelY/AccelScaleFactor;

Az = (double)AccelZ/AccelScaleFactor;

T = (double)Temperature/340+36.53; //temperature formula

Gx = (double)GyroX/GyroScaleFactor;

Gy = (double)GyroY/GyroScaleFactor;

Gz = (double)GyroZ/GyroScaleFactor;

Serial.print("Ax: "); Serial.print(Ax);

Serial.print(" Ay: "); Serial.print(Ay);

Serial.print(" Az: "); Serial.print(Az);

Serial.print(" T: "); Serial.println(T);

delay(1000);

Blynk.run();

Blynk.virtualWrite(V1, Ax);

Blynk.virtualWrite(V2, Ay);

Blynk.virtualWrite(V3, Az);

Blynk.virtualWrite(V4, T);

}

void I2C_Write(uint8_t deviceAddress, uint8_t regAddress, uint8_t data) { Wire.beginTransmission(deviceAddress);

Wire.write(regAddress); Wire.write(data);

Wire.endTransmission();

}

// read all 14 register

void Read_RawValue(uint8_t deviceAddress, uint8_t regAddress) {

Wire.beginTransmission(deviceAddress);

Wire.write(regAddress); Wire.endTransmission();

Wire.requestFrom(deviceAddress, (uint8_t)14);

AccelX = (((int16_t)Wire.read()<<8) | Wire.read());

AccelY = (((int16_t)Wire.read()<<8) | Wire.read());

AccelZ = (((int16_t)Wire.read()<<8) | Wire.read());

Temperature = (((int16_t)Wire.read()<<8) | Wire.read());

GyroX = (((int16_t)Wire.read()<<8) | Wire.read());

GyroY = (((int16_t)Wire.read()<<8) | Wire.read());

GyroZ = (((int16_t)Wire.read()<<8) | Wire.read());

}

//configure MPU6050

void MPU6050_Init() {

delay(150); I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_SMPLRT_DIV, 0x07); I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_1, 0x01); I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_PWR_MGMT_2, 0x00); I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_CONFIG, 0x00);

I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_GYRO_CONFIG, 0x00);//set +/-250 degree/second full scale

I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_ACCEL_CONFIG, 0x00);// set +/- 2g full scale I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_FIFO_EN, 0x00);

I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_INT_ENABLE, 0x01); I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_SIGNAL_PATH_RESET, 0x00); I2C_Write(MPU6050SlaveAddress, MPU6050_REGISTER_USER_CTRL, 0x00);

}Код (3) .pdf

Шаг седьмой: модуль ESP
ESP6050 – это микросхема, которая произвела революцию благодаря своей низкой стоимости и быстрому распространению.
Что привлекает наибольшее внимание, так это наличие Wi-Fi, позволяющего подключать к Интернету (или локальной сети) несколько устройств, таких как датчики, исполнительные механизмы и т. д.

Чтобы облегчить использование этого чипа, несколько производителей создали модули и отладочные платы.
Эти модули различаются по размеру, количеству контактов или типу подключения.
Мониторинг работы компрессора по принципу удаленного доступаВ модулях используется один и тот же контроллер ESP8266, а количество портов GPIO зависит от модели модуля. В зависимости от модели могут быть интерфейсы I2C, SPI и PWM (помимо последовательного).

Модули питаются от 3,3В. У них также есть 32-битный процессор, работающий на частоте 80 МГц, поддерживающий Интернет в стандартах 802.11 b / g / n и различные протоколы безопасности, такие как WEP, WPA, WPA2 и т. д.

Программирование может выполняться с помощью AT-команд или на языке LUA. Они идеально подходят для проектов Интернета вещей, поскольку в спящем режиме они потребляют очень мало энергии.
Мониторинг работы компрессора по принципу удаленного доступаТеперь об различиях модулей.
Модуль ESP8266 ESP-01.
Модуль ESP8266 ESP-01 – самый распространенный модуль в линейке ESP8266.
Он компактен (24,8 x 14,3 мм) и имеет два контакта GPIO, которыми можно управлять по расписанию. Прошивка ESP-01 может быть переписана и / или обновлена с помощью последовательного интерфейса.

Небольшим недостатком этого типа модуля является расположение контактов, которое затрудняет использование в прототипной плате, но можно использовать адаптер для модуля Wi-Fi ESP8266 ESP-01 (на фото ниже).
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМодуль ESP8266 ESP-05.
Модуль Wi-Fi ESP8266 ESP-05 немного отличается от других плат линейки ESP8266, так как у него нет портов, которые можно использовать для активации устройств или чтения данных с датчиков.

С другой стороны, это интересная альтернатива для проектов Интернета вещей, когда нужно хорошее сетевое Интернет-соединение по невысокой цене.

Его можно использовать, например, для настройки веб-сервера с Arduino или для связи на большом расстоянии между платами.
У него нет встроенной антенны, но у него есть разъем для внешней антенны что значительно увеличивает диапазон сигнала Wi-Fi.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМодуль ESP8266 ESP-07.
Модуль ESP8266 ESP-07 также представляет собой компактный модуль (20 x 16 мм), но с другой компоновкой, без соединительных контактов.
Модуль имеет встроенную керамическую антенну, а также U-Fl разъем для подключения внешней антенны. Этот модуль имеет 9 GPIOS, которые могут работать как выводы I2C, SPI и PWM.

Компоновка модуля позволяет легко интегрировать его в печатную плату, широко используемую в проектах домашней автоматизации.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМодуль ESP8266 ESP-12E.
Модуль ESP8266 ESP-12E очень похож на ESP-07, но имеет только внутреннюю антенну (PCB).
Он имеет 11 контактов GPIO и широко используется в качестве основы для других модулей ESP8266, таких как NodeMCU.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМодуль ESP8266 ESP-201.
Модуль ESP8266 ESP-201 – это немного более простой в использовании модуль с точки зрения прототипирования, так как он может быть установлен на макетной плате.

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

ESP-201 имеет 11 портов GPIO, встроенную антенну и разъем U-FL для внешней антенны. Выбор антенны осуществляется путем смены перемычки (резистор 0 (ноль) Ом) в верхней части платы, рядом с разъемом U-FL.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМодуль ESP8266 ESP-12E.
Модуль ESP8266 NodeMCU ESP-12E представляет собой законченную плату для разработки, которая в дополнение к микросхеме ESP8266 имеет преобразователь TTL-Serial и регулятор напряжения 3,3 В.

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

Он имеет 10 контактов GPIO (I2C, SPI, PWM), разъем micro-usb для программирования / питания и кнопки для сброса и прошивки модуля.
Как мы видим на изображении, NodeMCU ESP-12E поставляется со встроенной антенной, припаянной к плате.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаШаг восьмой: монтаж
Сборку мастер производит на макетной плате.
Макетная плата – это пластина с отверстиями и токопроводящими дорожками, используемая для сборки прототипов и проектов. Размер платы варьируются от 800 до 6000 отверстий, с вертикальными и горизонтальными соединениями.

На поверхности контактной матрицы имеется пластиковая основа, в которой есть отверстия для установки компонентов. В ее нижней части установлены металлические контакты. Обычно они выдерживают токи от 1 до 3 А.
Мониторинг работы компрессора по принципу удаленного доступаMPU6050 работает по протоколу I2C, поэтому нужно всего два провода. Контакты SCL и SDA MPU6050 подключаются к контактам D1 и D2 NodeMCU, а контакты VCC и GND MPU6050 подключены к 3,3 В и GND NodeMCU.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаЗатем устройство устанавливается непосредственно на компрессор.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаНиже можно увидеть графики составленные на основе переданных данных от датчиков.
Мониторинг работы компрессора по принципу удаленного доступаМониторинг работы компрессора по принципу удаленного доступаЗдесь можно скачать и посмотреть видео с примером работы устройства.

SitesReady

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

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.