Utilizando sensor de temperatura
Como prometido, irei postar o funcionamento de todas os sensores que eu comprei no site do FilipeFlop
Irei começar pelo sensor de Temperatura.
Existem 2 sensores populares no mercado, o DHT11 e o DHT22
DHT22 |
DHT11 aberto |
A diferença entre o DHT11 e o DHT22 está somente em quanto ele é sensível para a captura de informações, sendo o DHT22 muito mais preciso que o DHT11.
Ambos os sensores vem com 4 pinos
- Entrada de energia de 3 à 5v (qualquer entrada ativa do Raspberry com essas voltagens)
- Pino de controle ou o pino GPIO que vai fazer a leitura
- — Pino não utilizado
- Conexão com o terra ou o Gruond
Deve-se colocar um resistor fazendo a junção do pino 1 e 2. Testei com todos os resistores que eu tinha em casa e todos eles funcionaram corretamente, porém na especificação pede um resistor de 4.7K – 10K
Aqui temos o sensor DHT22
Na conexão com a protoboard ele deve sempre estar virado para sua frente, para o pino de alimentação sempre ser a sua esquerda (primeiro pino)
Aqui a conexão é bem simples.
Coloquei o terra no negativo da protoboard para poder usar a linha toda, também poderia ter feito a conexão de energia no positivo e também utilizar, mas fiz direto.
Então:
- pino1 conecta o pino de energia ativa de 3.3v
- pino2 conecta o GPIO (escolhi o pino7 (GPIO4))
- SEM CONEXÃO
- Terra (Ground)
Tudo conectado, vamos fazer a compilação da biblioteca do adafruit para utilizarmos o sensor. Daria para fazer integralmente a conexão sem nenhuma biblioteca, mas faremos por ela por ser bem simples.
Primeira coisa a se fazer.
sudo apt-get upgrade && sudo apt-get update
isso vai fazer com que o seu Raspberry seja atualizado com as ultimas bibliotecas e melhorias.
Após isso iremos entrar na nossa pasta home e pegar o repositório git da lib
cd /home/pi/ git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_DHT
Depois iremos fazer a atualização das libs
sudo apt-get install build-essential python-dev sudo python setup.py install
Se tudo deu certo é esperado o seguinte resultado:
running install running bdist_egg running egg_info writing Adafruit_DHT.egg-info/PKG-INFO writing top-level names to Adafruit_DHT.egg-info/top_level.txt writing dependency_links to Adafruit_DHT.egg-info/dependency_links.txt writing Adafruit_DHT.egg-info/PKG-INFO writing top-level names to Adafruit_DHT.egg-info/top_level.txt writing dependency_links to Adafruit_DHT.egg-info/dependency_links.txt reading manifest file 'Adafruit_DHT.egg-info/SOURCES.txt' writing manifest file 'Adafruit_DHT.egg-info/SOURCES.txt' installing library code to build/bdist.linux-armv6l/egg running install_lib running build_py running build_ext creating build/bdist.linux-armv6l/egg creating build/bdist.linux-armv6l/egg/Adafruit_DHT copying build/lib.linux-armv6l-2.7/Adafruit_DHT/platform_detect.py -> build/bdist.linux-armv6l/egg/Adafruit_DHT copying build/lib.linux-armv6l-2.7/Adafruit_DHT/Raspberry_Pi.py -> build/bdist.linux-armv6l/egg/Adafruit_DHT copying build/lib.linux-armv6l-2.7/Adafruit_DHT/Raspberry_Pi_Driver.so -> build/bdist.linux-armv6l/egg/Adafruit_DHT copying build/lib.linux-armv6l-2.7/Adafruit_DHT/common.py -> build/bdist.linux-armv6l/egg/Adafruit_DHT copying build/lib.linux-armv6l-2.7/Adafruit_DHT/Beaglebone_Black.py -> build/bdist.linux-armv6l/egg/Adafruit_DHT copying build/lib.linux-armv6l-2.7/Adafruit_DHT/__init__.py -> build/bdist.linux-armv6l/egg/Adafruit_DHT copying build/lib.linux-armv6l-2.7/Adafruit_DHT/Test.py -> build/bdist.linux-armv6l/egg/Adafruit_DHT byte-compiling build/bdist.linux-armv6l/egg/Adafruit_DHT/platform_detect.py to platform_detect.pyc byte-compiling build/bdist.linux-armv6l/egg/Adafruit_DHT/Raspberry_Pi.py to Raspberry_Pi.pyc byte-compiling build/bdist.linux-armv6l/egg/Adafruit_DHT/common.py to common.pyc byte-compiling build/bdist.linux-armv6l/egg/Adafruit_DHT/Beaglebone_Black.py to Beaglebone_Black.pyc byte-compiling build/bdist.linux-armv6l/egg/Adafruit_DHT/__init__.py to __init__.pyc byte-compiling build/bdist.linux-armv6l/egg/Adafruit_DHT/Test.py to Test.pyc creating stub loader for Adafruit_DHT/Raspberry_Pi_Driver.so byte-compiling build/bdist.linux-armv6l/egg/Adafruit_DHT/Raspberry_Pi_Driver.py to Raspberry_Pi_Driver.pyc creating build/bdist.linux-armv6l/egg/EGG-INFO copying Adafruit_DHT.egg-info/PKG-INFO -> build/bdist.linux-armv6l/egg/EGG-INFO copying Adafruit_DHT.egg-info/SOURCES.txt -> build/bdist.linux-armv6l/egg/EGG-INFO copying Adafruit_DHT.egg-info/dependency_links.txt -> build/bdist.linux-armv6l/egg/EGG-INFO copying Adafruit_DHT.egg-info/top_level.txt -> build/bdist.linux-armv6l/egg/EGG-INFO writing build/bdist.linux-armv6l/egg/EGG-INFO/native_libs.txt zip_safe flag not set; analyzing archive contents... creating 'dist/Adafruit_DHT-1.0.0-py2.7-linux-armv6l.egg' and adding 'build/bdist.linux-armv6l/egg' to it removing 'build/bdist.linux-armv6l/egg' (and everything under it) Processing Adafruit_DHT-1.0.0-py2.7-linux-armv6l.egg Removing /usr/local/lib/python2.7/dist-packages/Adafruit_DHT-1.0.0-py2.7-linux-armv6l.egg Copying Adafruit_DHT-1.0.0-py2.7-linux-armv6l.egg to /usr/local/lib/python2.7/dist-packages Adafruit-DHT 1.0.0 is already the active version in easy-install.pth Installed /usr/local/lib/python2.7/dist-packages/Adafruit_DHT-1.0.0-py2.7-linux-armv6l.egg Processing dependencies for Adafruit-DHT==1.0.0
Caso dê erro de compilação GCC, refaça o processo de apt-get upgrade , update e o de instalar o python-dev e etc
Feito isso você pode ir lá no
cd /home/pi/Adafruit_Python_DHT/examples sudo python AdafruitDHT.py 22 4
Onde 22 é o modelo do sensor (pode ser 11 se for o outro sensor) e o 4 é em qual GPIO que está conectado.
Ao executar o comando abaixo deve-se retornar:
Temp=XX.X*C Humidity=XX.X%
Bem simples e funcional.
No próximo post irei ensinar a instalar o mysql,php,apache e gravar as saídas dos sensores em um banco de dados.