Nesse repositório estará a documentação implementada para realizar o projeto 2.

Material utilizado:

NodeMCU; LED RGB (WS2812b); Sensor de luminosidade (LM393 ou KY-018).

A descrição do projeto:

O sensor monitora a luminosidade em tempo real e envia para a nuvem. O status de brilho do LED é enviado para a nuvem. Estas duas informações são plotadas num gráfico. Quando o sensor de luminosidade detectar que está "escuro", o brilho do LED aumenta. Quando o sensor de luminosidade detectar que está "claro", o brilho do LED diminui.

Implementação

Para realizar este projeto não precisamos utilizar nenhuma biblioteca adicional ou complementar além das usadas em sala. Usamos as seguintes bibliotecas <ESP8266WiFi.h>, <ArduinoJson.h>, <PubSubClient.h> e <Adafruit_NeoPixel.h>.

A leitura do sensor é de forma analógica e então usamos o único PIN analógico disponível na placa ESP8266, A0. Definimos também o PIN do LED, D4, os dados de conexão com wifi e Watson IoT.

Para a implementação do código achamos melhor colocar loops de debug para conexão wifi e MQTT, desta forma caso haja problemas, poderemos analisar com a resposta no Serial Monitor. Determinamos também a cor do LED como branca.

Relacionamos a leitura feita pelo sensor de luminosidade, um sinal analógico de 0 a 1023 para o microcontrolador - do mais luminoso ao escuro respectivamente, com o brilho do LED. Utilizamos a função 'setBrightness()' que ajusta a luminosidade do LED, cuja escala lida é de 0 a 255 - sendo 255 o máximo de brilho.

O algoritmo consiste em fazermos uma leitura pelo sensor; em seguida, dividimos este número por 4 para que seja utilizado na função de intensidade da luminosidade. Esses dados são impressos no serial monitor e enviados pra nuvem.

No NodeRed criamos uma chave de código para a página do projeto. Esta chave recebe a informação da nuvem e usamos em dois switchs para lermos a informação dada pelo leitor de luminosidade e a informação mandada para ser usada no LED. Separadas as informações, passamos estas por uma função de normalização para que os gráficos sejam mais aprazíveis para o entendimento daquele que está analisando. De forma que maior luminosidade é indicada de uma escala percentual e o led também o é, porém de forma complementar.

Endereço para visualização: https://renan-iot.mybluemix.net/ui/#!/0