Este projeto foi desenvolvido para arduino e desktop, seguindo o esquema abaixo (com exceção da utilização dos leds) :
Módulo chip comparador (LM393)
Cada mudança do estado de umidade da terra detectada faz com que o arduino escreva na porta serial o estado atual de umidade recebido. Para isso, é necessário iniciar a comunicação serial e habilitar a entrada analógica A0
, como podemos ver no arquivo planta_iot.ino
:
#define pino_sinal_analogico A0
void setup() {
//Inicia a comunicação serial
Serial.begin(9600);
//Habilita entrada analógica A0
pinMode(pino_sinal_analogico, INPUT);
}
O processo de monitoração é continuo, tendo uma curta interrupção de 100 milissegundos:
void loop() {
//Le o valor do pino A0 do sensor
valor_analogico = analogRead(pino_sinal_analogico);
//Solo com umidade alta
if (valor_analogico > 0 && valor_analogico < 400) {
estado_atual = UMIDO;
}
//Solo com umidade moderada
if (valor_analogico > 400 && valor_analogico < 800) {
estado_atual = MODERADO;
}
//Solo com umidade baixa
if (valor_analogico > 800 && valor_analogico < 1024) {
estado_atual = SECO;
}
if(ultimo_estado != estado_atual) {
ultimo_estado = estado_atual;
Serial.print(estado_atual);
}
delay(100);
}
Os bytes escritos, pelo arduino, na porta serial são lidos na outra ponta dessa comunicação, no desktop, pelo arduino_tweet.py
. Cada byte lido é interpretado para um estado de umidade e cada estado de umidade possui uma mensagem apropriada para servir de conteúdo para um tweet. É necessário realizar o procedimento de obter as credenciais para a utilização da api do twitter. Após realizado, substituir os respectivos valores das seguintes variáveis no arquivo arduino_tweet.py
:
#twitter application credentials
consumer_key="CONSUMER_KEY"
consumer_secret="CONSUMER_SECRET"
#twitter user credentials
access_token="ACCESS_TOKEN"
access_token_secret="ACCESS_TOKEN_SECRET"