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

Система умного уличного освещения на основе Интернета вещей

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

Arduino UNO Wifi Rev.2
× 1
LED (общий)
× 1
LDR, 1 МОм
× 1
ИК-датчик приближения Digilent
× 1
Espressif ESP8266 ESP-12E
× 1
Резистор 1 кОм
× 1

Необходимые инструменты и машины

Макет, 170 выводов

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

IDE Arduino
ThingSpeak API

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

Определение проблемы

Как указывалось ранее, в ряде городов считается, что уличный фонарь - одна из огромных расходов в городе. Затраты огромны, так как все натриевые лампы потребляют больше энергии. Расходы, потраченные на уличный фонарь, могут быть использованы для других целей развития страны. В настоящее время используется ручная система, при которой свет будет включаться / выключаться, то есть свет будет включаться вечером и выключаться в утро. Следовательно, между включением и выключением происходит много потерь энергии. Это одна из основных причин перехода на автоматическую систему, так как меньше потерь энергии и, таким образом, экономится много денежных затрат. Помимо этого, ниже описаны другие недостатки существующей системы.

Недостатки существующей системы

  • Ручное выключение / включение уличных фонарей.
  • Повышенное потребление энергии.
  • Высокие расходы
  • Больше кадров

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

Преимущества предлагаемой системы

  • Автоматическое переключение уличных фонарей.
  • Снижение затрат на обслуживание
  • Снижение выбросов CO₂.
  • Снижение светового загрязнения
  • Беспроводная связь
  • Энергосбережение
  • Сокращение трудовых ресурсов

Вход A.LDR

Светозависимый резистор (LDR), также называемый фоторезистором . - это устройство, коэффициент удельного сопротивления которого является функцией электромагнитного излучения. Следовательно, они являются светочувствительными устройствами, аналогичными человеческим глазам. Их также называют фотопроводниками, проводящими ячейками или просто фотоэлементами. Они сделаны из полупроводниковых материалов с высоким сопротивлением. LDR работает по принципу фотопроводимости. Фотопроводимость - это оптическое явление, при котором проводимость материалов снижается, когда материал фактически поглощает свет. Однако, когда свет падает на LDR, его сопротивление падает, и ток течет в базу первого транзистора, а затем во второй транзистор. Предустановленный резистор можно поворачивать вверх или вниз для увеличения или уменьшения сопротивления, таким образом он может сделать схему более или менее чувствительной. LDR отправляет ответ на Arduino.

Датчик B.IR

Инфракрасный датчик - это электронный прибор, который используется для определения определенных характеристик окружающей среды путем испускания и / или обнаружения инфракрасного излучения. Он также способен измерять температуру объекта и обнаруживать движение. Инфракрасные волны не видны человеческому глазу. В электромагнитном спектре инфракрасное излучение - это область, имеющая длины волн длиннее, чем длины волн видимого света, но короче, чем микроволны. Инфракрасная область составляет приблизительно от 0,75 до 1000 мкм. Инфракрасные (инфракрасные) датчики обнаруживают инфракрасный свет. Инфракрасный свет преобразуется в электрический ток, который обнаруживается детектором напряжения или силы тока. ИК-датчик отправляет ответ на Arduino.

В. светодиод

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

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

Д. ESP8266

ESP8266 - это модуль системы на кристалле (SoC) с поддержкой Wi-Fi, разработанный Espressif system. В основном он используется для разработки встроенных приложений IoT (Интернет вещей).

ESP8266 имеет возможности

  • 2,4 ГГц Wi-Fi (802.11 b / g / n, поддержка WPA / WPA2)
  • Ввод / вывод общего назначения (16 GPIO)
  • Протокол последовательной связи между итерациями (I²C)
  • Аналого-цифровое преобразование (10-битный АЦП)
  • Протокол последовательной связи с последовательным периферийным интерфейсом (SPI)
  • I²S (звук между микросхемами) взаимодействует с DMA (прямой доступ к памяти) (совместное использование контактов с GPIO)
  • UART (на выделенных контактах, плюс UART только для передачи может быть включен на GPIO2)
  • Широтно-импульсная модуляция (ШИМ)

В нем используется 32-битный RISC-процессор на базе Tensilica Xtensa L106, работающий на частоте 80 МГц (или разогнанный до 160 МГц). Он имеет 64 КБ загрузочного ПЗУ, 64 КБ ОЗУ для инструкций и 96 КБ ОЗУ для данных. Доступ к внешней флеш-памяти можно получить через SPI.

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

Для связи с модулем ESP8266 микроконтроллер должен использовать набор команд AT. Микроконтроллер взаимодействует с модулем ESP8266-01 через UART с указанной скоростью передачи.

Есть много сторонних производителей, которые выпускают разные модули на основе этой микросхемы. Итак, модуль поставляется с различными вариантами доступности контактов, например:

  • ESP-01 имеет 8 контактов (2 контакта GPIO) - антенна для трассировки печатной платы. (показано на рисунке выше)
  • ESP-02 имеет 8 контактов (3 контакта GPIO) - антенный разъем U-FL.
  • ESP-03 поставляется с 14 контактами, (7 контактов GPIO) - керамической антенной.
  • ESP-04 поставляется с 14 контактами (7 контактов GPIO) - без муравьев.

и т. д.

Например, на рисунке ниже показаны контакты модуля ESP-01.

Описание контактов модуля ESP8266-01

3V3 :- Вывод питания 3,3 В.

GND :- Контакт заземления.

RST :- Активный низкий вывод сброса.

EN :- Активный высокий контакт включения.

TX :- Вывод последовательной передачи UART.

RX :- Пин последовательного приема UART.

Код

  • Интеллектуальный свет для Интернета вещей
  • Код, часть 2
Интеллектуальный свет IOT Arduino
 int smooth; int LDR; int threshold =40; // интенсивность солнца int яркость =0; int ledState =0; int sensor1 =11; int sensor2 =8; int sensor3 =9; int led1 =5; int led =6; int led2 =2; int carPresent =0; int carPresent1 =0; float beta =0.65; void setup () {// поместите здесь свой установочный код, чтобы запустить его один раз:Serial.begin (115200); pinMode (сенсор1, ВХОД); pinMode (датчик2, ВХОД); pinMode (сенсор3, ВХОД); pinMode (светодиод, ВЫХОД); pinMode (led1, ВЫХОД); pinMode (led2, OUTPUT);} void loop () {smooth =smooth - (бета * (гладкий - analogRead (A0))); задержка (1); LDR =круглый (((float) гладкий / 1023) * 100); если (LDR <=40) яркость =0; else {яркость =карта (LDR, 40, 100, 0, 255); } checkSensors (); если (carPresent ==1) {ledState =1; digitalWrite (светодиод, ВЫСОКИЙ); digitalWrite (led1, ВЫСОКИЙ); analogWrite (светодиод, яркость); analogWrite (led1, яркость); } иначе, если (carPresent ==0) {ledState =0; digitalWrite (светодиод, ВЫСОКИЙ); // digitalWrite (led1, HIGH); analogWrite (led, ledState); // analogWrite (led1, ledState); если (carPresent1 ==1) {ledState =1; если (ledState ==1) {analogWrite (led1, яркость); analogWrite (led2, яркость); }} иначе, если (carPresent1 ==0) {ledState =0; digitalWrite (led1, ВЫСОКИЙ); digitalWrite (светодиод2, ВЫСОКИЙ); analogWrite (led1, ledState); analogWrite (led2, ledState); }} Строковые данные =(Строка) ledState + "," + (Строка) яркость + ";"; Serial.print (data); // Serial.print (digitalRead (sensor1)); // Serial.print ("\ t"); // Serial.print (digitalRead (sensor2)); // Serial.print ("\ t"); // Serial.print (ledState); // Serial.print ("\ t"); // Serial.println (яркость); задержка (100);} void checkSensors () {if (digitalRead (sensor1) ==0) / / Автомобиль зафиксирован 1-м датчиком {if (digitalRead (sensor2) ==1) // Автомобиль все еще не достиг 2-го датчика carPresent =1; } else if (digitalRead (sensor2) ==0) // Автомобиль достиг 2-го датчика {// Машины не обнаружены позади первой машины if (digitalRead (sensor1) ==1) {carPresent =0; carPresent1 =1; } else if (digitalRead (sensor1) ==0) {analogWrite (светодиод, яркость); analogWrite (led1, яркость); analogWrite (led2, яркость); digitalWrite (светодиод, ВЫСОКИЙ); digitalWrite (led1, ВЫСОКИЙ); digitalWrite (светодиод2, ВЫСОКИЙ); }} else if (digitalRead (sensor3) ==0) // машина достигла 3-го датчика {// Машины позади первой машины не обнаружены if (digitalRead (sensor2) ==1) {carPresent =0; carPresent1 =0; } иначе, если (digitalRead (sensor2) ==0) {carPresent =0; carPresent1 =1; }}} 
Код, часть 2 Arduino
 #include  // Сетевая информацияconst char * ssid ="ardent"; const char * password ="12345678"; String ledState =""; String Brightness =""; char thingSpeakAddress [] ="api .thingspeak.com "; Строка writeAPIKey =" NUEBLW9OA58DLL4N "; // Обязательно измените это на свой канал. Запись ключа API Wi-FiClient client; void setup () {Serial.begin (115200); // Вам может потребоваться отрегулировать скорость в зависимости от вашего оборудования. connectWifi ();} недействительный цикл () {filterData (); HTTPPost (); задержка (15000); // Если вы удалите спящий режим, не забудьте добавить дополнительную задержку, чтобы не отправлять сообщения в ThingSpeak слишком часто.} Int connectWifi () {WiFi.begin (ssid, password); while (WiFi.status ()! =WL_CONNECTED) {//Serial.println ("Подключение к Wi-Fi"); задержка (2500); } //Serial.println ("Подключено"); // Информируем последовательный монитор} void HTTPPost () {// Эта функция создает строку данных для отправки в ThingSpeak и предоставляет правильный формат для связи клиента Wi-Fi с ThingSpeak. // Он разместит количество записей данных "numFields" и возьмет данные из переданного ему параметра fieldData. // Обязательно увеличьте numFields до количества полей, которое вам нужно, и активируйте поля в представлении вашего канала. if (client.connect (thingSpeakAddress, 80)) {// Строим строку данных публикации. Если у вас несколько полей, убедитесь, что длина строки не превышает 1440 символов. Строка PostData ="api_key =" + writeAPIKey; PostData + ="&field1 =" + ledState; PostData + ="&field2 =" + яркость; // POST-данные через HTTP client.println ("POST / update HTTP / 1.1"); client.println ("Хост:api.thingspeak.com"); client.println ("Соединение:закрыть"); client.println ("Content-Type:application / x-www-form-urlencoded"); client.println ("Длина содержимого:" + строка (PostData.length ())); client.println (); client.println (PostData); client.stop (); }} void filterData () {if (Serial.available ()) {String buffer =""; буфер =Serial.readStringUntil (';'); int i1 =буфер.indexOf (','); ledState =буфер [0]; buffer.remove (0, i1 + 1); яркость =буфер; }} 

Схема


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

  1. Умный светофор
  2. Многотемпературный датчик
  3. MotionSense
  4. Пожарная безопасность 3D-принтера
  5. Система полива домашних растений
  6. Отталкивающая электромагнитная левитация Arduino
  7. Бот для захвата удаленного управления
  8. Лаборатория микроконтроллеров
  9. Глобус постоянства зрения (POV)
  10. CoroFence - Тепловой детектор🖖