Vamos programar com o Arduino – Projeto: Sensor de Temperatura
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?
Download
Download: Bibliotecas
Este artigo tem mais de um ano
Falta o link para download da biblioteca
Já lá mora 🙂 Thanks
Pedro, desculpa mas não estou a ver onde está.
boa tarde Drº pedro, tenho um projeto IoT da BOSCH para criar 1 ideia de negocia para o sensor XDK, a titulo academico no ISP, será que me poderia ajudar?
eu já tenho a ideia.
Por acaso estava a pensar fazer um projecto de jardinagem caseiro em que a temperatura da estufa é central. 🙂 obrigado pela dica
Por acaso fiz com o sensor ds18b20 e com resistencia 4,7K. Tanto no Arduino como na Raspberry Pi. Falta conseguir uma ligação decente ao Display
Estas a referir a um pequeno LCD?
Exato, mas acabei por comprar o de 4 Linhas (que por sua vez tem que ter 2 potenciometros, para backlight e brightness) e há mais documentação para o de 2…
Tens também a opção de um I2c para o LCD. Já tem todos os componentes necessários como o potenciómetro incluído no modulo. Além disso nao se tem que andar com tantos fios para se ligar ao Arduino, basta uns 4. Alguns dos LCD«s já trazem esse modulo incorporado .
usar é fácil! Divertido é construir e sobretudo aprender/entender!
Além das plataformas IoT serem um mercado do futuro, poderás sempre fazer sempre projectos para solucionares um problema que tenhas em casa ou algo que gostarias que estivesse automatizado.
Mas além disso tudo, todo o conhecimento é bom para o futuro 🙂
LOOOL. No comments
“o saber não ocupa lugar”
Bom dia ! Sou ainda aprendiz com arduino, contudo estou precisamente a trabalhar na questão do sensor da temperatura com o DHT22. Penso que tratando-se de temperatura é necessário fazer o registo, ou seja é importante saber qual a temperatura e humidade a determinada hora e data. Neste caso, parece-me que é importante juntar o RTC para poder registar a data e hora, assim como um Sdcard para o Logfile.
Ainda estou numa fase muito inicial, até porque ainda não me chegou o material todo que encomendei, mas a ideia será registar as temperaturas em Sdcard, ou via placa wifi fazer uma ligação SQL a servidor WEB e ter registos on-line. Se alguém estiver a desenvolver um projecto deste tipo e quiser partilhar agradeço. Obrigado ao PPLWARE por mais esta boa iniciativa.
Boas Vitor… Podes fazer com o esp2866 para enviar os dados para a Internet. É um pequeno modulo WIFI que tem um micro controlador e é possível efectuar a programação como o arduino. É ideal para um pequeno projecto que só tenha como objectivo ler a temperatura e enviar para a Internet.
Se tiveres raspberry Pi podes usar modulos rf e fazer um servidor um servidor SQL no raspberry
Sim… é uma opção. Eu como so tenho um esp2866. Aqui numa divisão de casa tenho o Arduino ligado ao Pi via Serial, e o Pi trata de comunicar com a BD.
Como o Cláudio Catarina disse, a melhor maneira de gravares a informação de um DHT22 é sem duvida com o ESP8266. Actualmente nem precisas de uma base de dados fisica para receberes os dados. Podes por exemplo usar um serviço Cloud como o da IBM (bluemix) ou o da Microsoft (Azure) que por enquanto ainda são grátis. Eu estou a desenvolver um projecto para o Instructables, para integrar o DHT com o serviço de voz da Amazon, a Alexa, e também enviar os dados para diferentes dashboards. Assim que tiver pronto posso postar o link.
Bom dia,
Também ando nestas aventuras de iniciação à programação em Arduino e gostaria de saber se é possivel fazerem um tutorial de um projecto com um modulo gsm sim900D.
Parabéns pelo vosso trabalho.
Cumprimentos
É algo a pensar Hugo 🙂
Isto tem alguma coisa a ver com o que pediste?
http://electronicsforu.com/videos-slideshows/arduino-project-sending-sms-using-gsm-module
Apesar de já ter visto esse video, agradeço a ajuda. Tem mais ou menos a ver com isso, sim.
Bom dia, onde posso comprar um arduino a um bom preço? Vi tambem que existem varias revisoes (versoes).
Obrigado
Aliexpress! 😉
Geralmente as versões que se encontram à venda são as revisões de hardware mais recentes. No caso do Arduino UNO é a R3. Os preços mais baixos que tenho visto são de versões não originais mas totalmente compatíveis com o Arduino, uma vez que usam exatamente o mesmo microcontrolador. Tipo Funduino ou UNO R3. Existem uns starter kits destas plaquinhas com vários componentes eletrónicos – leds, botões de pressão, breadboard, fios de ligação, etc… – a preços muito interessantes. Podem ser adquiridos p.ex. no Ebay e Aliexpress. O Funduino também se encontra à venda na PTRobotics (loja portuguesa).
Sempre podes deixar o teu smartphone numa estufa para controlar a temperatura e humidade. se quiseres controlar em vários pontos diferentes da estufa, compras vários smartphones 😉
Eh Eh Eh!! Boa resposta.
Para quem pergunta a utilidade. Podem criar um interface dmx para controlar luzes na passagem de Ano. Eu constumo usar o soft da Atmel no 8085 e na atmega8 como o processador do arduino èum atmega…
Boas malta.
Ando aqui a tentar um projecto vai pra 3 anos… e nele eu queria ter acesso a um sensor de brilho, ou seja saber se um determinada sal aestiver exposta ao sol, qual é a lumonosidade dela, isto para depois ajustar o brilho duma TV.
E como isto é para ser implementado no Algarve, aqui o Sol… Alguém me diz como posso, por ex. usando este projecto, adicionar um sensor deste tipo?
Ops; luminosidade
Nobres, não parem com os tutoriais 😀
Boa noite,
Segui o exemplo, mas quando ligo o arduino ao pc não é atribuída a porta? alguém sabe dizer o porque? no entanto se ligar apenas o arduino sem o sensor a porta é atribuída automaticamente