Manual
do
Maker
.
com
No artigo anterior relacionado a geração de energia, mostrei o mini painel solar da UsinaInfo. E vejam, só; nos dias atuais temos opções de sobra para aproveitar ou reaproveitar energia livre. No caso de reaproveitar, me refiro ao fluxo de água que você perde em casa em suas torneiras, na máquina de lavar roupas ou até na bica da sua chácara, sitio ou fazenda. E como fazer esse aproveitamento? - O título do artigo já diz tudo, basta ter em mãos um ou mais desse mini gerador de energia hidrelétrico, também da UsinaInfo.
Ele é bastante pequeno, menor que qualquer filtro de água desses que vão conectados entre a torneira e o encanamento na parede. De ambos os lados ele é roscado no diâmetro de 1/2 polegada, justamente para permitir a interconexão com a estrutura doméstica, tornando-o simples e fácil de instalar.
O que mais me impressionou nele foi a capacidade de gerar entre 8V8 e 15V de corrente contínua, permitindo sua utilização em uma vasta gama de aplicações. Sua corrente de saída varia entre 128mA à 260mA. Com isso, colocando-o a uma fonte step down fica fácil alimentar um ESP8266, ESP32, Arduino etc.
Também é importante notar que ele suporta temperaturas na faixa de 5 à 85 graus, o que me permite utilizá-lo da melhor forma possível, explicado mais adiante.
Aí entra uma questão; se não for conectado a uma bica para gerar energia continuamente, abrir uma torneira 24x7 não seria uma ideia nada inteligente, então, de que modo tirar proveito dessemini gerador de energia hidrelétrico? Bem, é isso que vamos ver antes de mostrá-lo em ação.
Mostrei como medir o fluxo de água nesse outro artigo. Claro que o consumo de uma MCU é bastante baixa e utilizando-se do recurso de interrupção descrito no artigo, é possível manter a MCU/CPU dormindo. Mas para melhorar ainda mais a economia, tendo um mini gerador de energia hidrelétrico conectado a uma torneira pode garantir uma economia ainda maior a curto prazo, pois a MCU/CPU só seria ligada e alimentada pela energia gerada através do fluxo de água. Assim sendo, pense em uma torneira de restaurante, lanchonete ou qualquer outro ambiente onde o consumo de água é diferenciado. Essa seria a melhor opção para aferir o consumo de água mensal, utilizando uma MCU, o medidor de fluxo de água e para alimentar essa solução, o mini gerador de energia hidrelétrico, que alimentaria por exemplo um ESP8266, que iniciaria a medição e tão logo estivesse conectado, mandaria os dados para um ponto remoto. Pensando em torneiras de curto uso, pode não ser possível conectar a tempo em uma rede wireless, mas ligar a CPU é rápido o suficiente para gerar um arquivo de log no sistema de arquivos do ESP8266 ou ESP32.
Sabe aquele banheiro chique que você procura o tapete para limpar os pés antes de entrar? Bem, uma vez entrei em um banheiro tão chique que cogitei urinar em uma garrafa descartável e levar embora para não macular o ambiente. E você pode fazer alguns efeitos interessantes para o banheiro, utilizando-se de um mini gerador de energia hidrelétrico escondido dentro do gabinete, alimentando uma iluminação de LEDs que se acendem ao abrir a torneira. Pode colocar um Arduino junto e tocar musica no buzzer enquanto o feliz usuário do toilet higieniza suas mãos, iluminadas por LEDs RGB trocando de cor suavemente.
Ele pode ser utilizado também para carregar baterias, mas aí você pode questionar se é uma ideia lúcida manter um fluxo de água corrente para fazer a recarga de uma bateria. Eu digo que sim, mas em um caso muito específico.
Normalmente na produção de cerveja artesanal, algumas pessoas utilizam uma bomba de recirculação para manter o mosto circulando durante a mostura, e assim ganhar em eficiência na extração dos açucares ferementecíveis. Essa fase normalmente dura mais de uma hora e durante todo esse tempo o mosto fica recirculando com a bomba ligada. Já que não tem como escapar do gasto energético, pelo menos pode-se aproveitar o fluxo para fazer o reaproveitamento de energia e então carregar baterias de celulares ou ainda, alimentar um Arduino com temporizador para avisar sobre cada uma das rampas de temperatura, indo de 42 graus à 70 graus e assim estando dentro da temperatura de operação permitida para esse mini gerador de energia. Já pensou? Todo o sistema de controle de rampas e controle de temperatura sendo feitos por um Arduino auto-suficiente (que se dane esse acordo ortográfico ridículo)?
Se você mora em casa, ainda pode optar por colocá-lo na saída da caixa d'água (desde que não seja uma caixa d'água de fluxo torrencial) e assim fazer melhor utilização de apenas 1 mini gerador de energia hidrelétrico.
Em minha opinião de 2 centavos, em ambientes comerciais já deveria ser algo próximo de obrigatório ou padrão, uma vez que vasos sanitários e torneiras são utilizados de forma indiscriminada, ainda mais sendo de acesso público. Desse modo, seria possível estar armazenando para luzes de emergência diferenciadas ou simplesmente packs de bateria para utlilização em recarga de celulares.
Agora vou mostrar uma proposta de utilização com um Arduino Leonardo. Eu preferiria utilizar um Arduino Nano, mas os meus acabaram, mas a configuração é exatamente a mesma; um buzzer ou um falante no pino D8 e o outro no GND. Para conectar ao Arduino, utilizei um cabo usb que cortei e coloquei jumpers nas pontas. Ao mini gerador de energia hidrelétrico liguei uma fonte step down com a saída configurada para 5V e subi um pequeno programa para tocar uma música na função setup() apenas para mostrar a execução de um programa após iniciar a alimentação da MCU através do mini gerador de energia hidrelétrico.
O sketch utilizado é o mesmo desse artigo, caso queira entender os detalhes para tocar música no buzzer.
//Notas musicais
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_B6 1976
#define NOTE_C7 2093
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_A7 3520
#define NOTE_AS7 3729
#define NOTE_B7 3951
#define NOTE_C8 4186
#define NOTE_CS8 4435
#define NOTE_D8 4699
#define NOTE_DS8 4978
#define WHOLE 1
#define HALF 0.5
#define QUARTER 0.25
#define EIGHTH 0.125
#define SIXTEENTH 0.0625
float sinVal;
int toneVal;
// notes in the melody:
int melody[] = { NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};
int noteDurations[] = {4,8,8,4,4,4,4,4 };
void setup(){
for (int thisNote = 0; thisNote < 8; thisNote++) {
// para calcular a duracao da nota, pegue um segundo e divida-o pelo tipo dela.
// 1000 milésimos eh igual a 1 segundo
//ex.: um quarto de nota = 1000 / 4, um oitavo de nota = 1000/8, etc.
int noteDuration = 1000/noteDurations[thisNote];
tone(8, melody[thisNote]*4,noteDuration);
// para distinguir as notas, ajuste um tempo minimo entre elas.
// a duracao da nota + 30% funcionara bem:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// para de tocar o tom:
noTone(8);
}
}
void loop(){
}
Pra terminar, o video do teste.
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.