Introduction: Padrão Na Rede
Este projeto tem como objetivo tornar os sistemas de Smart Grids possíveis sem a necessidade de uma estrutura de rede grande e/ou complexa.
Trata-se de um sistema onde os Readers/Gateways são móveis (e não fixos como atualmente) indo até onde os dispositivos estão instalados.
No protótipo, foi utilizado uma DragonBoard 410c como Reader/Gateway e um Beacon programável com um sensor de corrente elétrica, medindo a potência acumulada.
Step 1: Materiais
1 - DragonBoard 410c
1 - Sensor de Corrente não invasivo SCT-013
1 - Resistor 220ohm
1 - Beacon Programável ( CSR1010 or other)
1 - 96Boards Sensors Mezzanine
Step 2: Sensor De Corrente SCT-013
Para usar o sensor SCT-013 basta seguir os seguintes passos:
- Colocar um resistor de 220ohm em paralelo com a saída do sensor.
- Ligar o sensor em uma entrada analógica do microcontrolador e o outro pino no GND.
- Testar variação de tensão com um multímetro (Apenas para verificar variação)
Step 3: Leitura Da Corrente E Potência Elétrica
Para facilitar a leitura, recomenda-se o uso da lib EmomLib. Abaixo segue os passos para efetuar a leitura:
- Instalar a biblioteca EmomLib. (Para entender o funcionamento, basta visualizar os exemplos)
- Calibrar a corrente com um equipamento resistivo com corrente fixa conhecida (lâmpada, ferro de solda...).
Para calibrar basta trocar o parâmetro "cal", até que o valor lido seja igual ao valor conhecido da corrente como no exemplo abaixo:
EnergyMonitor emon1;
#define cal 3.1
emon1.current(Pino_Corrente, cal)
double Irms = emon1.calcIrms(1480);
- Transformar o valor lido da corrente para potência (W) e integrar o valor para Wh (ou kWh).
No exemplo abaixo, foi usado uma rede 220V e transformado para Wh.
double PWh = 0;
unsigned long int time1 = millis(); // millis() = tempo decorrido
while(1){
double Pinst = Irms*220;
time1 = millis() - time1;
PWh += Pinst*time1/60/60/1000; // Transformando de milis para hora
time1 = millis();
}
Step 4: Módulo Relé
Para usar o módulo relé basta seguir os passos abaixo:
- Alimentá-lo com 3.3V
- Ligá-lo em pino digital do microcontrolador
- Setar o pino como saída
- Cortar um dos fios da rede e ligar as duas pontas na entrada do módulo relé.
Segue um exemplo abaixo de como configurar e acionar o relé
pinMode(Pino_Rele,OUTPUT);
while(1){
digitalWrite(Pino_Rele,estado);
estado = !estado;
delay(2000);
}
Step 5: Envio Dos Dados De Consumo No Beacon
Para envio dos dados alteramos o Device Name do beacon, informando o consumo.
No caso, as mensagens enviadas foram:
Indicação do consumo acumulado:
"QUALCOMM:XXXXX.XXWh"
Indicação do consumo Instantâneo:
"QUALCOMM:XXXXXXW "
As mensagens poderão ser lidas pela DragonBoard ou pelo celular do usuário, utilizando um aplicativo Scanner de Beacons.
Attachments
Step 6: Leitura Do Consumo Pela DragonBoard E Envio Para Web
Para utilizar o Bluetooth LE utilizamos o módulo Bluepy.
É necessário instalar também o BlueZ na DragonBoard.
O código em anexo "FinalCode1_2" faz a leitura de Beacons e envio para Web utilizando Requests.
Attachments
Step 7: Enviar Mensagem BLE (Beacon) Para Acionamento Pela DragonBoard
A configuração de envio BLE pode ser feita de duas formas:
1 - Prompt de comando:
Basta seguir os comandos abaixo
$ sudo hciconfig hci0 up
$ sudo hciconfig hci0 no leadv
$ sudo hciconfig hci0 leadv 0
2 - Utilizando o código em anexo