Medidor Sigfox kWh
Componentes e suprimentos
| | × | 1 | |
| | × | 1 | |
| Fios de jumpers (genérico) | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| Potenciômetro rotativo (genérico) | | × | 1 | |
| SparkFun Botão de pressão 12 mm | | × | 1 | |
| | × | 1 | |
Aplicativos e serviços online
Sobre este projeto
1) Em poucas palavras
Este tutorial o ajudará a criar um dispositivo que conectará seu antigo medidor de energia indutiva à Internet. E que tipo de medidor exatamente é? É o tipo de medidor de energia mais antigo, mas ainda usado. Tem o disco rotativo, que tem tinta reflexiva em toda a volta com uma listra preta. Cada vez que você vê aquela parte preta passando, significa que uma rotação foi concluída. Neste projeto 120 voltas equivalem a um consumo de 1 kWh.
2) Microcontrolador, rede IoT e outras coisas usadas
Então, vamos precisar do Arduino MKRFOX1200 , que tem o Sigfox (e essa é a rede) conectividade. Sigfox é uma rede LPWAN, que permite conectar qualquer coisa à Internet. A rede funciona na banda ISM 868 MHz e nos permite enviar 140 mensagens (12 bytes de carga útil cada) por uplink diário. Mas não se trata apenas de rede. Sigfox nos dá a oportunidade de personalizar a maneira como queremos trabalhar com mensagens. Na verdade, todas as mensagens são armazenadas na nuvem Sigfox, de onde podemos recuperá-las definindo seu destino - retornos de chamada, etc.
ThingSpeak:
ThingSpeak é uma plataforma IoT para a exibição de dados amigável. Neste projeto, é o destino de retorno de chamada Sigfox que exibe o consumo recebido usando gráficos assim que a transferência ocorreu.
Um mais tempo - qual elétrico energia poder consumo medidor irá nós usar?
Este:
3) Coisas práticas
- 1. Conectar tudo listado partes como mostrado em a fiação diagrama. Não vou explicar a teoria por trás da conexão, se algo não estiver claro, fique à vontade para perguntar. Não se esqueça de dar um pouco de energia :) (banco de potência USB ou saída USB do seu laptop, etc.).
- 2. Escreva a código. Você encontrará o Código anexado na parte inferior desta página. Novamente, se algo no código não estiver claro para você, fique à vontade para perguntar.
- 3. Criar ThingSpeak Canais com Análise . Registre-se em https://thingspeak.com/ e crie o canal no. 1 fornecendo nome, descrição e Campo 1 - Consumo. Criar canal nº 2 com base no canal no. 1, mas com nome diferente. Em seguida, selecione a opção Matlab Analysis no canal no. 2 e escreva o seguinte código:
readChannelID =TYPE_CHANNEL1_ID_HERE; readAPIKey ='TYPE_CHANNEL1_READ_API_KEY_HERE'; writeChannelID =TYPE_CHANNEL2_ID_HERE; writeAPIKey ='TYPE_CHANNEL2_API_KEY_HERE'; data =thingSpeakRead (readChannelID, 'ReadKey', readAPIKey, 'OutputFormat', 'tabela'); AnalyisedData =data; analogData. ('Consumption') =(data. ('Consumption') + YOUR_CURRENT_CONSUMPTION_STATUS_IN_WH) / 1000; thingSpeakWrite (writeChannelID, AnalyseData, 'WriteKey', writeAPIKey);
- 4. Criar Sigfox Retorno de chamada. Espero que você já tenha registrado o seu MKRFOX1200 no backend, então vou pular o tutorial de como fazer isso. Depois de fazer login em https://backend.sigfox.com/, vá para a seção de retornos de chamada e crie um da seguinte forma:
- CONFIGURAÇÃO DE CARGA PERSONALIZADA:status ::uint:32:little-endian
- PADRÃO DE URL:
https://api.thingspeak.com/update?api_key=
EXPLAINED1
&field1 ={customData # status}
* EXPLICADO1 - substitua-o pelo Canal 1 ThingSpeak WriteApiKey
4) Instalação do dispositivo e lógica por trás
Então, você já realizou as partes mais difíceis deste projeto. Agora prenda o sensor CNY70 ao vidro do seu medidor de energia com fita dupla-face - tome cuidado para colocá-lo no centro do disco rotativo (fig. Instalação ) Em seguida, pressione o botão do dispositivo duas vezes e faça a calibração - se o sensor ler a parte reflexiva do disco, o diodo deve acender. Se o sensor ler tarja preta, o diodo deve disparar. Após a calibração bem-sucedida, pressione o botão do dispositivo mais uma vez. Agora o dispositivo começa a ler o consumo de energia e envia esse valor a cada 30 minutos para a Internet usando o Sigfox. A precisão da leitura é configurada para 25 Wh (em nosso caso, a cada 3 voltas do disco).
5) Produto final
Após todas essas etapas, você poderá ver o seu consumo real de energia elétrica em um belo gráfico ThingSpeak conforme abaixo.
Código
- Medidor de energia elétrica Sigfox kWh
Medidor de energia elétrica Sigfox kWh Arduino
Este é o código .ino para tornar seu medidor de energia inteligente. #include int DIODE =13; int BTN =12; int BTN_state =0; int BTN_prev =0; int BTN_NR_OF_PRESS =0; int CALC =0; sem sinal longo i =0; uint32_t CONSUMO =0; booleano SHINE =falso; booleano KARDAN =falso; void setup () {pinMode (DIODO, SAÍDA); pinMode (BTN, INPUT); Serial.begin (9600); if (! SigFox.begin ()) {Serial.println ("Módulo Sigfox indisponível."); }} void loop () {int senzor =analogRead (A3); BTN_state =digitalRead (BTN); if (BTN_state! =BTN_prev) {if (BTN_state ==HIGH) {BTN_NR_OF_PRESS ++; }} BTN_prev =BTN_state; if (BTN_NR_OF_PRESS% 3 ==0) {if (senzor> 300 &&senzor <950) {digitalWrite (DIODO, ALTO); } else {digitalWrite (DIODO, BAIXO); }} if (senzor <1020 &&SHINE ==false) {SHINE =true; } if (senzor> 1020 &&SHINE ==true &&BTN_NR_OF_PRESS ==4) {CALC ++; BRILHO =falso; } if (CALC% 3 ==0 &&CALC! =0 &&KARDAN ==false) {KARDAN =true; CONSUMO + =25; } if (CALC% 3! =0) {KARDAN =false; } if (BTN_NR_OF_PRESS% 4 ==0) {digitalWrite (DIODO, BAIXO); if (BRILHO ==falso) {para (milis (); (milis () - i)> 1800000;) {i =milis (); SigFox.debug (); SigFox.beginPacket (); SigFox.write (CONSUMO); SigFox.endPacket (); }}}}
Esquemas
Esquema para conexão de MKRFOX1200 com CNY70 e outras coisas.