O Sensor LDR é capaz de capturar a luminosidade presente do ambiente.
- Raspberry Pi com o sistema operacional Raspbian instalado
- Protoboard
- Jumpers tipo macho/fêmea
Neste projeto há três camadas. Uma camada para interagir com o GPIO do Raspberry Pi, uma camada de integração e uma camada com uma página web para exibir o estado capturado pelo Sensor LDR.
Foi feito um código em Python que é responsável em interagir com o GPIO do Raspberry Pi, onde o código Python recupera o retorno do Sensor LDR e envia para a Segunda Camada.
Para realizar a integração entre o Script em Python e a página web o projeto está usando um Broker MQTT. O protocolo MQTT é o padrão de Broker para o mundo IoT.
Para este projeto está sendo utilizado a ferramenta Mosquitto
com a responsabilidade de realizar a integração entre a Primeira e Terceira Camada.
Página Web desenvolvida em NodeJS
é responsavel em recuperar as informação que foram enviadas para o Broker MQTT e exibí-las na página HTML infomando o estado obtido do Sensor LDR se a luz do ambiente está acessa ou apagada.
Siga os passos abaixos para executar o projeto.
A figura abaixo mostra deve ser configurado o GPIO do Raspberry.
Antes de mais nada altere a variável IP_MQTT do script Python que está localizado dentro da pasta python
com o IP do servidor que estará o Broker MQTT. Segue o exemplo abaixo:
IP_MQTT='127.0.0.1'
Agora basta levar o script para para o Raspberry Pi.
Antes de executar o script é necessário instalar a biblioteca paho-mqtt
com o comando:
pip3 install paho-mqtt
Após a instalação execute o script com o seguinte comando:
python3 sensor-ldr.py
Obs.: A execução do script é feita a cada 10 segundos. Portanto a cada 10 segundos teremos o estado de luminosidade do ambiente.
Para executar o Mosquitto optei por utilizar o Docker, porém a imagem do Mosquitto disponível no Docker Hub ainda não tem suporte a arquitetura do RaspBerry PI, portanto é necessário executar o Mosquitto em uma máquina com arquitetura amd
.
Para executar o Mosquitto no Docker utiliza o comando abaixo:
docker run -itd -p 1883:1883 eclipse-mosquitto
O modelo utilizado pelo padrão MQTT é o de Publisher/Subscriber
. Neste projeto o Script Python recupera a informação recebido do Sensor LDR e faz uma publicação no Broker MQTT e a Página Web recuperá a informação através de uma assinatura no Broker MQTT.
Um outra opção é utilizar o Broker MQTT em um servidor público provido pelo próprio Mosquitto através do seguinte endereço: iot.eclipse.org
na porta 1883
. Para maiores informações deste servidor público acesse o endereço: IoT Eclipse
Ainda existe outra opção que é instalar o Mosquitto. Inclusive é possível realizar a instalação no próprio Raspberry Pi. Para realizar a instalação acesso o endereço: Instalação Mosquitto
Obs.: É interessante que cada camada esteja em uma máquina separada para que seja visto a integração entre as camadas do projeto.
A Página Web como dito anteriormente foi desenvolvida em NodeJS, portanto é necessário instalar o NodeJS na máquina que você pretende executar o código. Para facilitar você pode utilizar Docker.
O primeiro passo que deve ser feito para executar a Página Web é executar o comando para realizar a instalação das dependências através do comando:
npm install
Neste arquivo script.js
também devemos informar qual o endereço IP do servidor do Broker MQTT, altere a linha do código com o endereço IP.
var client = mqtt.connect('mqtt://localhost');
Depois basta executar a aplicação com o comando:
npm script.js
Acesse a página através do link: http://localhost:8080
Obs.: Faça atualização da página para visualizar as informações providas pelo Sensor LDR.