Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sistema de iluminação pública inteligente baseado em IoT

Componentes e suprimentos

Arduino UNO Wifi Rev.2
× 1
LED (genérico)
× 1
LDR, 1 Mohm
× 1
Sensor de proximidade IV Digilent
× 1
Espressif ESP8266 ESP-12E
× 1
Resistor 1k ohm
× 1

Ferramentas e máquinas necessárias

Breadboard, 170 Pin

Aplicativos e serviços online

Arduino IDE
API ThingSpeak

Sobre este projeto





Definição do problema


Como já foi dito, é visto em várias cidades que a iluminação pública é um dos grandes gastos de uma cidade. O custo gasto é enorme que todas as lâmpadas de vapor de sódio consomem mais energia. A despesa com a luz da rua pode ser usada para outro desenvolvimento da nação. Atualmente um sistema manual é usado onde a luz será ligada / desligada, ou seja, a luz será ligada à noite e desligada no a manhã. Portanto, há muito desperdício de energia entre ON / OFF. Esta é uma das principais causas da mudança para o sistema automático, visto que há menos desperdício de energia e, portanto, uma grande economia de despesas monetárias. Além disso, as outras desvantagens do sistema existente são descritas a seguir.





Desvantagens do sistema existente

  • Desligar / ligar as luzes da rua manualmente
  • Mais consumo de energia
  • Despesa elevada
  • Mais mão de obra

Passando agora para o sistema proposto automatizado com o uso de sensores de luz, não apenas para economia de energia e garantia de segurança, também podemos ver mais algumas vantagens a seguir.





Vantagens do sistema proposto

  • Troca automática das luzes da rua
  • Redução do custo de manutenção
  • Redução da emissão de CO₂
  • Redução da poluição luminosa
  • Comunicação sem fio
  • Economia de energia
  • Redução de mão de obra

Entrada A.LDR

Um resistor dependente de luz (LDR) também denominado como um fotorresistor é um dispositivo cujo fator de resistividade é função da radiação eletromagnética. Portanto, são dispositivos sensíveis à luz semelhantes aos olhos humanos. Eles também são chamados de fotocondutores, células condutoras ou simplesmente fotocélulas. Eles são feitos de materiais semicondutores com alta resistência. Um LDR funciona com base no princípio da fotocondutividade. A fotocondutividade é um fenômeno óptico no qual a condutividade do material é reduzida quando a luz é realmente absorvida pelo material. No entanto, quando a luz incide sobre o LDR, sua resistência cai e a corrente flui para a base do primeiro transistor e, em seguida, para o segundo transistor. O resistor predefinido pode ser aumentado ou diminuído para aumentar ou diminuir a resistência, desta forma pode tornar o circuito mais ou menos sensível. LDR envia resposta ao Arduino.









Sensor B.IR

Um sensor infravermelho é um instrumento eletrônico usado para detectar certas características do ambiente ao emitir e / ou detectar radiação infravermelha. Também é capaz de medir o calor de um objeto e detectar movimento. As ondas infravermelhas não são visíveis ao olho humano. No espectro eletromagnético, a radiação infravermelha é a região com comprimentos de onda mais longos que os comprimentos de onda da luz visível, mas mais curtos que as microondas. A região do infravermelho é demarcada aproximadamente de 0,75 a 1000µm. Sensores IR (infravermelho) detectam luz infravermelha. A luz infravermelha é transformada em corrente elétrica e é detectada por um detector de tensão ou amperagem. IR Sensors envia a resposta ao Arduino.

C. LED

O diodo emissor de luz (LED) é um diodo de junção, que emite luz quando ativado. Quando aplicamos tensão em seus terminais, os elétrons podem se combinar com orifícios dentro do LED, liberando energia na forma de fótons que fornecem a luz. Portanto, é uma fonte de luz semicondutora de dois condutores.

Os diodos emissores de luz representam nosso sistema de iluminação e a quantidade de luz emitida por ele está diretamente relacionada à quantidade de luz no ambiente que ocorre quando a luz externa é menor do que a luz fornecida pelos LEDS em sua intensidade total e vice-versa.

D. ESP8266

ESP8266 é um módulo de sistema em chip habilitado para Wi-Fi (SoC) desenvolvido pelo sistema Espressif. É usado principalmente para o desenvolvimento de aplicativos embarcados de IoT (Internet of Things).

ESP8266 vem com recursos de
  • Wi-Fi de 2,4 GHz (802.11 b / g / n, compatível com WPA / WPA2)
  • Entrada / saída de uso geral (16 GPIO)
  • Protocolo de comunicação serial de circuito integrado (I²C)
  • Conversão analógico para digital (ADC de 10 bits)
  • Protocolo de comunicação serial de interface periférica serial (SPI)
  • Interfaces I²S (som inter-IC) com DMA (acesso direto à memória) (compartilhando pinos com GPIO)
  • UART (em pinos dedicados, mais um UART somente de transmissão pode ser habilitado no GPIO2)
  • Modulação por largura de pulso (PWM)

Ele emprega uma CPU RISC de 32 bits baseada no Tensilica Xtensa L106 rodando a 80 MHz (oroverclocked para 160 MHz). Ele tem uma ROM de boot de 64 KB, 64 KB de instruçãoRAM e 96 KB de RAM de dados. A memória flash externa pode ser acessada por meio do SPI.

O módulo ESP8266 é um transceptor sem fio autônomo de baixo custo que pode ser usado para desenvolvimentos de IoT de ponto final.

Para se comunicar com o módulo ESP8266, o microcontrolador precisa usar um conjunto de comandos AT. O microcontrolador se comunica com o módulo ESP8266-01 usando UART com a taxa Baud especificada.

Existem muitos fabricantes terceirizados que produzem diferentes módulos com base neste chip. Portanto, o módulo vem com diferentes opções de disponibilidade de pinos, como:
  • ESP-01 vem com 8 pinos (2 pinos GPIO) - antena de rastreamento de PCB. (mostrado na figura acima)
  • ESP-02 vem com 8 pinos, (3 pinos GPIO) - conector de antena U-FL.
  • ESP-03 vem com 14 pinos, (7 pinos GPIO) - antena de cerâmica.
  • ESP-04 vem com 14 pinos, (7 pinos GPIO) - sem formiga.

etc.

Por exemplo, a figura abaixo mostra os pinos do módulo ESP-01.





Descrição do pino do módulo ESP8266-01




3V3 :- Pino de alimentação de 3,3 V.

GND :- Pino de aterramento.

RST :- Pino de reset baixo ativo.

EN :- Pino de habilitação alto ativo.

TX :- Pino de transmissão serial do UART.

RX :- Pino de recepção serial da UART.




Código

  • IOT smart light
  • Parte 2 do código
IOT smart light Arduino
 int smooth; int LDR; int threshold =40; // intensidade do solint brilho =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 () {// coloque seu código de configuração aqui, para ser executado uma vez:Serial.begin (115200); pinMode (sensor1, INPUT); pinMode (sensor2, INPUT); pinMode (sensor3, INPUT); pinMode (led, OUTPUT); pinMode (led1, OUTPUT); pinMode (led2, OUTPUT);} void loop () {smooth =smooth - (beta * (smooth - analogRead (A0))); atraso (1); LDR =redondo (((flutuante) liso / 1023) * 100); se (LDR <=40) brilho =0; senão {brilho =mapa (LDR, 40, 100, 0, 255); } checkSensors (); if (carPresent ==1) {ledState =1; digitalWrite (led, HIGH); digitalWrite (led1, HIGH); analogWrite (led, brilho); analogWrite (led1, brilho); } else if (carPresent ==0) {ledState =0; digitalWrite (led, HIGH); // digitalWrite (led1, HIGH); analogWrite (led, ledState); // analogWrite (led1, ledState); if (carPresent1 ==1) {ledState =1; if (ledState ==1) {analogWrite (led1, brilho); analogWrite (led2, brilho); }} else if (carPresent1 ==0) {ledState =0; digitalWrite (led1, HIGH); digitalWrite (led2, HIGH); analogWrite (led1, ledState); analogWrite (led2, ledState); }} String data =(String) ledState + "," + (String) brilho + ";"; Serial.print (dados); // Serial.print (digitalRead (sensor1)); // Serial.print ("\ t"); // Serial.print (digitalRead (sensor2)); // Serial.print ("\ t"); // Serial.print (ledState); // Serial.print ("\ t"); // Serial.println (brilho); atraso (100);} void checkSensors () {if (digitalRead (sensor1) ==0) / / Carro capturado no 1º sensor {if (digitalRead (sensor2) ==1) // Carro ainda não atingiu o 2º sensor carPresent =1; } else if (digitalRead (sensor2) ==0) // O carro atingiu o segundo sensor {// Nenhum carro foi detectado atrás do primeiro carro if (digitalRead (sensor1) ==1) {carPresent =0; carPresent1 =1; } else if (digitalRead (sensor1) ==0) {analogWrite (led, brilho); analogWrite (led1, brilho); analogWrite (led2, brilho); digitalWrite (led, HIGH); digitalWrite (led1, HIGH); digitalWrite (led2, HIGH); }} else if (digitalRead (sensor3) ==0) // carro atingiu o 3º sensor {// Nenhum carro detectado atrás do primeiro carro if (digitalRead (sensor2) ==1) {carPresent =0; carPresent1 =0; } else if (digitalRead (sensor2) ==0) {carPresent =0; carPresent1 =1; }}} 
Código parte 2 Arduino
 #include  // Network Informationconst char * ssid ="ardent"; const char * password ="12345678"; String ledState =""; String brilho =""; char thingSpeakAddress [] ="api .thingspeak.com "; String writeAPIKey =" NUEBLW9OA58DLL4N "; // Certifique-se de mudar isso para o seu canal Write API keyWiFiClient client; void setup () {Serial.begin (115200); // Você pode precisar ajustar a velocidade dependendo do seu hardware. connectWifi ();} void loop () {filterData (); HTTPPost (); atraso (15000); // Se você remover a suspensão, certifique-se de adicionar mais atraso para não postar no ThingSpeak com muita frequência.} Int connectWifi () {WiFi.begin (ssid, senha); while (WiFi.status ()! =WL_CONNECTED) {//Serial.println ("Conectando ao WiFi"); atraso (2500); } //Serial.println ("Conectado"); // Informa o monitor serial} void HTTPPost () {// Esta função cria a string de dados para postar no ThingSpeak e fornece o formato correto para o cliente wi-fi se comunicar com o ThingSpeak. // Ele postará "numFields" de entradas de dados e obterá os dados do parâmetro fieldData transmitido a ele. // Certifique-se de aumentar numFields para o número de campos que você precisa e ative os campos em sua visualização de canal. if (client.connect (thingSpeakAddress, 80)) {// Construir a string de dados de postagem. Se você tiver vários campos, certifique-se de que o sting não exceda 1440 caracteres. String PostData ="api_key =" + writeAPIKey; PostData + ="&field1 =" + ledState; PostData + ="&field2 =" + brilho; // POST dados via HTTP client.println ("POST / update HTTP / 1.1"); client.println ("Host:api.thingspeak.com"); client.println ("Conexão:fechar"); client.println ("Content-Type:application / x-www-form-urlencoded"); client.println ("Content-Length:" + String (PostData.length ())); client.println (); client.println (PostData); client.stop (); }} void filterData () {if (Serial.available ()) {String buffer =""; buffer =Serial.readStringUntil (';'); int i1 =buffer.indexOf (','); ledState =buffer [0]; buffer.remove (0, i1 + 1); brilho =buffer; }} 

Esquemas


Processo de manufatura

  1. Semáforo inteligente
  2. Sensor de temperatura múltipla
  3. MotionSense
  4. Impressora 3D Segurança contra incêndio
  5. Sistema de irrigação de plantas caseiras
  6. Levitação eletromagnética repulsiva Arduino
  7. Controle Remoto Gripper Bot
  8. Laboratório de microcontroladores
  9. Persistência da Visão (POV) Globo
  10. CoroFence - Detector Térmico🖖