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

Солнечный трекер на основе Интернета вещей (IoT)

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

Arduino Mega 2560
× 1
Ethernet Shield (Wiznet W5100) для Arduino
× 1
Микро-серводвигатель SG90
× 2
LDR, 5 МОм
× 4
Датчик температуры DHT22
× 1
Мини-солнечная панель
× 1
Резистор 330 Ом
× 4
Резистор в сквозное отверстие, 10 Ом
× 2
Резистор 220 Ом
× 1
5 мм светодиод:красный
× 1

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

myDevices Cayenne
IDE Arduino

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

В этом проекте представлено простое и недорогое IoT-решение для мониторинга и управления интеллектуальной двухосевой системой солнечного слежения для оценки производительности.

Предлагаемая система солнечного трекера на основе IoT изображена на рис. 1. Это двухосевой солнечный трекер, который может автоматически вращаться для отслеживания положения солнца с помощью датчиков LDR или вручную пользователем через приборную панель приложения IoT. Система начинает с определения положения солнца (интенсивности света) датчиками LDR и отправляет данные контроллеру (плата Arduino Mega). Последний затем обрабатывает эти данные для управления серводвигателями (SM1 и SM2), которые удерживают фотоэлектрическую панель для вращения к солнцу. Значения сгенерированного PV напряжения и тока, температуры и влажности также отправляются в Arduino через связанные датчики. Затем экран Ethernet, который установлен с Arduino и позволяет ему подключаться к Интернету, будет отправлять данные, которые были получены и / или обработаны Arduino, в облако (веб-сервер). Наконец, данные солнечного трекера, включая датчики LDR, фотоэлектрическую мощность, температуру и влажность, отображаются в реальном времени в приложении для мониторинга IoT с помощью предварительно созданных виджетов. Приложение для мониторинга Интернета вещей разработано с использованием платформы Cayenne myDevicesplatform. Как только пользователь подключен к Интернету со своего компьютера или смартфона, он может визуализировать на панели управления приложения IoT все данные солнечного трекера в связанных с ним виджетах. Таким образом, у пользователя есть необходимые данные, связанные с окружающей средой и производительностью фотоэлектрической панели. Кроме того, в ручном режиме серводвигатели будут принимать угловые направления от связанных с ними виджетов на приборной панели. Следовательно, пользователь может управлять своей системой для поиска наилучших условий окружающей среды и извлечения максимальной энергии из фотоэлектрической панели. Приложение IoT также запрограммировано на отправку уведомлений (SMS или по электронной почте), когда отправитель достигает предварительно определенного порогового значения.

Аппаратное обеспечение

Как показано на рис. 2, система солнечного трекера IoT состоит из фотоэлектрической панели, двух серводвигателей, четырех датчиков LDR, цепи делителя напряжения, датчика температуры и влажности, светодиода и платы Arduino Mega.

Используемая фотоэлектрическая панель имеет размер 115 мм на 85 мм, выходную мощность 1,6 Вт и может генерировать напряжение до 6 В. Два 180-градусных серводвигателя используются для моторизации солнечного трекера, и они управляются платой Arduino через контакты 5 и PWM. 6. Серводвигатель влево-вправо (LR) (MG996R) вращает солнечный трекер по вертикальной оси (восток / запад), в то время как серводвигатель вверх-вниз (UD) (SG90) вращает солнечный трекер по горизонтальной оси ( Юг / Север).

Четыре LDR (Cds GL5528) используются для определения положения солнца и закреплены в четырех углах панели. Датчики LDR подключаются к Arduino через аналоговые контакты от A0 до A3. LDR представляет собой резистор, значение которого уменьшается с увеличением интенсивности света, падающего на его поверхность. Датчик LDR выполнен в виде схемы делителя напряжения, как показано на рис. 2. Выходное напряжение делителя преобразуется микроконтроллером Arduino Mega из аналогового значения в цифровое значение от 0 до 1023. Поскольку аналоговое значение в цифровое Преобразователь (АЦП) микроконтроллера закодирован 10 битами. Сопротивление последовательного резистора в цепи датчика LDR составляет 330 Ом.

Температура и влажность измеряются датчиком DHT22. DHT22 имеет встроенный термистор и емкостной датчик влажности для измерения температуры и относительной влажности. Диапазон температур составляет от -40 до 80 ° C с точностью <± 0,5 ° C, а диапазон влажности - от 0 до 100% с точностью ± 2% (макс. ± 5%). Этот датчик использует один сигнальный провод для передачи данных на Arduino (цифровой контакт 2) и два провода для источника питания.

Напряжение и ток фотоэлектрических модулей измеряются с помощью схемы делителя напряжения, которая также действует как нагрузка и состоит из двух последовательных резисторов по 10 Ом. Выход схемы делителя подключен к аналоговому выводу A4 Arduino. Кроме того, светодиод, подключенный к цифровому выводу 3, отображает в системной схеме состояние режима солнечного трекера (ручной или автоматический).

В качестве встроенного контроллера используется Arduino Mega с микроконтроллером ATmega2560, который взаимодействует с экраном Arduino Ethernet вместе с платформой мониторинга. Экран Ethernet, который устанавливается над платой Arduino, должен быть подключен к маршрутизатору Wi-Fi (или ПК) через кабель RJ45, как показано на рис. 3. Экран Ethernet основан на микросхеме Ethernet Wiznet W5100, которая обеспечивает сетевой (IP) стек для протоколов TCP и UDP.

Разработка программного обеспечения

а. IDE Arduino

Arduino - это платформа для создания прототипов электроники с открытым исходным кодом, с простым в использовании аппаратным и программным обеспечением. Платформа Arduino предоставляет интегрированную среду разработки (IDE), которая включает поддержку языков программирования C и C ++. Используемая в этой работе плата Arduino запрограммирована IDE, которая служит редактором кода и из которой программный код может быть загружен в микроконтроллер через USB-кабель, как показано на рис. 3. Используется плата Arduino Mega. реализовать все программные требования солнечного трекера на базе Интернета вещей.

б. myDevices Cayenne

MyDevices - компания, предлагающая решения для Интернета вещей. Он предлагает комплексную платформу для Интернета вещей. В нашем проекте мы сосредоточимся на Cayenne, одном из решений от myDevices. Этот инструмент позволяет разработчикам, дизайнерам и инженерам создавать прототипы Интернета вещей. Cayenne использует протокол Message QueuingTelemetry Transport (MQTT) для подключения любого устройства к Cayennecloud. После подключения пользователь может отправлять и получать данные с устройства на панель управления Cayenne через созданные виджеты. MQTT - это протокол обмена сообщениями "публикация-подписка", основанный на протоколе TCP / IP. Методология публикации-подписки использует агент сообщений, который отвечает за доставку сообщений клиенту. MQTT - это API для отправки информации в облако Cayenne или устройства, контролируемые Cayenne. Агент сообщений в этом соединении является облаком, он управляет различными клиентами (датчиками и исполнительными механизмами), которые отправляют и получают данные.

Чтобы использовать MQTT с Cayenne, нам нужно использовать библиотеки Cayenne. Для Arduino библиотеку CayenneMQTT можно установить из диспетчера библиотек среды IDE. Чтобы запрограммировать наше IoT-приложение на платформе Cayenne IoT, мы воспользуемся преимуществами предопределенных функций. Например, чтобы установить соединение между облаком Cayenne и Arduino Mega, оснащенным модулем Ethernet, мы вызываем библиотеку CayenneMQTTEthernet, в которой объявляем нашу аутентификационную информацию (имя пользователя, пароль и идентификатор клиента), которые должны быть получены из Cayenne Dashboard. Затем в части настройки программы мы вызываем Cayenne.begin () функция для установления связи с приборной панелью Cayenne. Для каждого привода мы создаем функцию с целочисленным параметром от 0 до 31, которая обязательно называется CAYENNE IN (VIRTUAL CHANNEL) . . Для каждого датчика мы создаем функцию с целочисленным параметром от 0 до 31, с императивным названием CAYENNE_OUT (VIRTUAL_CHANNEL) . В циклической части программы мы вызываем предопределенную функцию Cayenne.loop () . , эта функция сама вызывает функции CAYENNE_OUT и CAYENNE_IN. Виртуальный канал, как следует из его названия, представляет собой канал, который физически не существует, он характеризует визуализацию или командные виджеты. Это позволяет связать их с соответствующим датчиком или исполнительным механизмом.

в. встроенный дизайн программного обеспечения

Встроенное программное обеспечение - это часть, которая будет встроена в Arduino Mega для взаимодействия между модулем Ethernet и облаком Cayenne (см. Приложение). Он разработан следующим образом:

(i) Солнечный трекер на основе Интернета вещей имеет два функциональных режима:ручной и автоматический. Кнопка, созданная на приборной панели Cayenne, предназначена для переключения между двумя режимами. Когда он неактивен, выбирается ручной режим, в противном случае автоматический режим. Кроме того, в коде Arduino предусмотрена функция, позволяющая восстанавливать состояние кнопки. Светодиод в системной цепи отражает состояние этого переключателя.

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

(ii) Если выбран ручной режим, пользователь может напрямую управлять положением серводвигателей, чтобы ориентировать фотоэлектрическую панель с востока на запад с помощью серводвигателя L-R или с юга на север с помощью серводвигателя U-D. Управление осуществляется с помощью связанных виджетов серводвигателей на панели управления приложения IoT.

В этом режиме контроллер вызывает Cayenne.loop () функция, которая сама вызывает все функции CAYENNE_IN , в том числе относящиеся к серводвигателям, к исполнению. Cayenne.loop () Функция также вызовет все функции CAYENNE_OUT, связанные с датчиками, для выполнения. Если данные, относящиеся к датчикам LDR, току PV, напряжению и мощности, температуре и влажности, будут отправляться на сервер, чтобы их можно было визуализировать в связанных с ними виджетах в приложении IoT.

(iii) Если выбран автоматический режим, будет выполняться алгоритм, показанный на рис. 4. Алгоритм начинается со считывания аналоговых значений, возвращаемых датчиками LDR. Затем он обрабатывает эти данные для управления серводвигателями, которые перемещают фотоэлектрическую панель в сторону солнца. Учитывая движение солнечного трекера на основе вертикальной оси, сравниваются средние значения двух LDR слева и двух LDR справа, и если на левую сторону попадает больше света, фотоэлектрическая панель будет двигаться в этом направлении (по часовой стрелке). через серводвигатель LR. Последний остановится, когда разница будет между -10 и 10. Этот диапазон используется для стабилизации контроллера и снижения энергопотребления серводвигателей. В противном случае, если правый набор LDR получит больше света, фотоэлектрическая панель будет двигаться в этом направлении (против часовой стрелки) через серводвигатель L-R и будет продолжать вращаться, пока результат разницы не будет в диапазоне [-10, 10]. Тот же подход используется для движения солнечного трекера на основе горизонтальной оси, где сравниваются средние значения двух LDR наверху и двух LDR внизу.

Как и в автоматическом режиме, контроллер также вызовет Cayenne.loop () функция для отправки данных солнечного трекера в приложение IoT.

г. Разработка приложения для мониторинга Интернета вещей

(i) Аппаратное взаимодействие с платформой Cayenne IoT

Чтобы связать оборудование, включая датчики и исполнительные механизмы, с платформой IoT, нам необходимо выполнить следующие шаги:

+ Войдите на сайт Cayenne myDevice после создания учетной записи (рис. 5 (a)).

+ Затем нажмите «Принесите свои вещи» из Cayenne API (рис. 5 (b)).

+ Скопируйте учетные данные MQTT (имя пользователя, пароль и идентификатор клиента) из приложения Crete (рис. 6) и вставьте их в исходный код Arduino, как описано ранее. После успешной компиляции и загрузки всего кода в Arduino Mega откройте Serial Monitor в Arduino IDE, чтобы получить распечатки журнала Cayenne (рис. 7). Как только наше устройство подключится к сети и подключится к Cayenne, предыдущая страница (рис. 6) автоматически обновится, и мы увидим наше устройство на онлайн-панели инструментов, как показано на рис. 8.

+ Затем, чтобы связать датчики и исполнительные механизмы, т.е. создать их виджеты, нажмите «Добавить новый…», выберите «Устройство / виджет» и нажмите «Пользовательские виджеты» (рис. 9). Затем выберите виджет и заполните все связанные с ним настройки (номер канала должен быть таким же, как в коде), и, наконец, нажмите «Добавить виджет», чтобы добавить его на панель управления вашего устройства. Для нас мы выбрали виджет «значение» для всех датчиков, виджет «Кнопка» для переключателя режимов и виджет «Ползунок» для серводвигателя.

Наконец, на рис. 10 показано разработанное IoT-приложение для мониторинга данных солнечного трекера. Как только соединение с системой солнечного слежения установлено, данные датчиков могут быть визуализированы на связанных с ними виджетах, режим слежения (автоматический или ручной) можно выбрать с помощью кнопки переключателя, а также управлять углами серводвигателей с помощью их виджетов. Данные датчиков также можно получить в графической форме, изменив тип представления в их настройках или просто щелкнув значок в виде графика над виджетом.

(ii) Создание предупреждений

Одним из наиболее важных критериев в системе мониторинга является ее способность отправлять уведомления, чтобы информировать пользователей, когда происходит событие, связанное с их контролируемыми устройствами. С этой целью мы используем одну из функций Cayenne для добавления предупреждений в наше приложение IoT, где мы можем предварительно запрограммировать наше приложение для отправки уведомления (SMS, электронная почта или оба) или для выполнения определенного действия. Например, предупреждение о температуре создается для отправки уведомления по электронной почте пользователю (или получателям), когда контролируемая температура достигает порогового значения, как показано на рис. 11. Чтобы создать предупреждение, нажмите «Добавить». .. »и выберите« Триггер », затем установите событие и его действие и, наконец, нажмите« Сохранить », чтобы добавить его на панель управления.

Прототип

На рис. 12 представлен прототип солнечного трекера в разобранном и собранном состоянии. Он состоит из фотоэлектрической панели, серводвигателей R и U-D и датчиков LDR. Панель прикреплена к сервомотору U-D с одной стороны и с подшипником с другой стороны для обеспечения большей гибкости при вращении солнечного трекера вокруг горизонтальной оси. Узел прикреплен к серводвигателю L-R. Датчики LDR закреплены в четырех углах панели внутри полых цилиндров. Если панель не перпендикулярна солнцу, по крайней мере один LDR будет покрыт тенью от окружающего цилиндра. Следовательно, будет разница в интенсивности света. Лучшая ориентация - это когда сила света одинакова во всех датчиках LDR. На рис. 13 показан полный прототип системы слежения за солнечными лучами на основе Интернета вещей, и ясно, что все указанные компоненты аппаратной части были использованы для ее создания.

Подробнее о полученных результатах см. В документе по этой ссылке:https://link.springer.com/chapter/10.1007%2F978-3-030-64565-6_4

Код

  • Встроенный код системы солнечного слежения на основе Интернета вещей.
Встроенный код системы солнечного слежения на основе Интернета вещей Arduino
 / ********************************************* ***************** ПРОЕКТ:Система солнечного слежения на основе Интернета вещей / встроенное программное обеспечение Aboubakr El Hammoumi / [email protected]********* ************************************************* **** / # define CAYENNE_PRINT Serial # include  // библиотека CayenneMQTT #include  // библиотека серводвигателя #include  // библиотека DHT #define DHTTYPE DHT22 # ​​define DHTPIN 2DHT dht (DHTPIN, DHTTYPE); // Учетные данные MQTT char username [] ="498d2d00-afe2-11ea-883c-638d8ce4c23d"; char password [] ="ab4a8f92d94033c01f6e18ce1d8a84d4c304; 93bf-d33a96695544 "; Серво servo_x; // серводвигатель вверх-вниз int servoh =0; int servohLimitHigh =170; int servohLimitLow =10; Servo servo_z; // сервомотор лево-правый int servov =0; int servovLimitHigh =170; int servovLimitLow =10; int topl, topr, botl, botr; int threshold_value =10; float Vout; void setup () {Serial.begin (9600); Cayenne.begin (имя пользователя, пароль, clientID); servo_x.attach (5); servo_z.attach (6); dht.begin (); pinMode (3, ВЫХОД); digitalWrite (3, LOW); } void loop () {topr =analogRead (A2); topl =analogRead (A3); botl =analogRead (A4); botr =analogRead (A5); Vout =(analogRead (A1) * 5.0) / 1023; Serial.println («Ручной режим»); Cayenne.loop (); if (digitalRead (3) ==HIGH) {Serial.println ("Автоматический режим"); servoh =servo_x.read (); servov =servo_z.read (); int avgtop =(topr + topl) / 2; int avgbot =(ботр + ботл) / 2; int avgright =(topr + botr) / 2; int avgleft =(топл + ботл) / 2; int diffhori =avgtop - avgbot; int diffverti =avgleft - средний; / * отслеживание по горизонтальной оси * / if (abs (diffhori) <=threshold_value) {servo_x.write (servoh); // останавливаем сервопривод вверх-вниз} else {if (diffhori> threshold_value) {Serial.println ("x - 2"); servo_x.write (сервох -2); // Вращение по часовой стрелке CW if (servoh> servohLimitHigh) {servoh =servohLimitHigh; } задержка (10); } еще {servo_x.write (servoh +2); // Против часовой стрелки if (servoh  threshold_value) {servo_z.write (servov -2); // CW if (servov> servovLimitHigh) {servov =servovLimitHigh; } задержка (10); } еще {servo_z.write (servov +2); // Против часовой стрелки if (servov  

Схема


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

  1. Увлекательный Интернет вещей:что движет практиками Интернета вещей?
  2. Перенос блокчейна в Интернет вещей
  3. Проблема безопасности, создаваемая Интернетом вещей:часть 2
  4. Кибербезопасность и Интернет вещей:безопасность Интернета вещей, ориентированная на будущее
  5. Инвестиции в потенциал Интернета вещей
  6. Настоящий Интернет вещей?
  7. Интернет вещей:управление потоком данных
  8. 5 проблем, с которыми все еще сталкивается Интернет вещей
  9. Раскрытие возможностей промышленного Интернета вещей
  10. Solar Tracker V2.0