Ao longo destes primeiros três tutoriais da rubrica “Vamos programar com o Arduino” foram abordados alguns conceitos básicos necessários para o leitor desenvolver pequenos projectos.
Na rúbrica de hoje iremos mostrar um pequeno projecto que abrange todo o conteúdo abordado nos tutoriais anteriores.
Parar colocarmos os nossos conhecimentos em prática iremos fazer um pequeno projecto com o objectivo de sabermos a temperatura e a humidade de uma determinada divisão da nossa casa.
Para tal, vai ser necessário o seguinte hardware:
- Um Arduino (modelo à escolha);
- 1 resistência de 10K Ω;
- Uma BreadBoard (Placa de testes);
- Fios (6 no máximo);
- Sensor DHT22;
Como podemos observar nos componentes utilizados, para o projecto de hoje iremos usar o sensor DHT22, a escolha deste sensor deve-se ao facto de ser um sensor razoavelmente barato e com uma boa precisão de medição.
Montagem do cenário
Antes de começarmos com a programação, vamos primeiro proceder à parte da montagem do hardware. Aqui ficam dois esquemas de ligação para auxiliar na montagem.
Após a montagem do hardware podemos proceder a sua programação.
Programação…
Antes de se começar a construir código, iremos precisar de uma biblioteca para podermos trabalhar com o sensor DHT22. Neste tutorial, foi utilizada uma biblioteca personalizada, que não se encontra nos repositórios do Arduino, portanto no fim deste artigo estará disponível para download a biblioteca utilizada. Há que ter a atenção se for utilizada uma biblioteca diferente o código poderá não funcionar correctamente.
#include
int Sensor = 2; //Pino onde está ligado o sensor DHT22 DHT dht(Sensor, DHT22); //Esta instrução indica qual à biblioteca qual o modelo do sensor utilizado float temperatura; // Variável que nos irá mostrar a temperatura float humidade; // Variável que nos irá mostrar a humidade
void setup() {
Serial.begin(9600);// Sincronizar a porta serial a 9600 bits por segundo pinMode(Sensor, INPUT); // Definir o nosso sensor como INPUT dht.begin();// Esta instrução é necessária, para que o nosso sensor possa estar pronto para ser utilizado }
void loop() {
temperatura = dht.readTemperature(); // Esta instrução permite que o sensor guarde a leitura da temperatura na variável humidade = dht.readHumidity(); // Esta instrução permite que o sensor guarde a leitura da humidade na variável delay(2000); // Para o programa durante 2000 milissegundos;
// Escreve para a porta serial a temperatura e a humidade: Serial.print(“Temperatura: “); Serial.print(temperatura); Serial.print(“c Humidade: “); Serial.print(humidade); Serial.println(“%”); }
Como podemos observar no programa acima representado existem dois parâmetros um pouco desconhecidos.
O primeiro paramento é Serial.begin(9600). Esta instrução é necessária sempre que temos comunicação serial, permite ajustar os bits de transmissão em segundos enviados ou recebidos pela porta serial. Mais à frente nesta rubrica iremos abordar a porta Serial e o seu modo de funcionamento onde será explicado em pormenor estas informações.
O outro parâmetro desconhecido é a função delay(). Esta função tem como objectivo parar o nosso programa por um determinado período de tempo, esse tempo é indicado como um parâmetro de entrada na função em milissegundos. Esta função por vezes não se torna a ideal a ser utilizada, pois quando queremos que o Arduino faça várias tarefas ao mesmo tempo, esta não se torna a ideal. Uma das alternativas é usar a função millis() ou mesmo até Interrupções(Interrupts), mas para este tipo de projectos ficamos pela função delay().
Após termos efectuado todas as ligações do hardware e elaborado o nosso programa, resta verificar o nosso output. Como foi indicado mais acima neste tutorial a nossa temperatura e humidade está a ser enviada para a nossa porta serial. Para tal no Arduino IDE, iremos abrir o monitor da nossa porta serial para podermos observar a nossa informação.
E assim concluímos o nosso primeiro projecto no Arduino . O que acharam deste projecto? No futuro, que tipo de projectos gostariam que fossem apresentados?