Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Neste Instructable, você aprenderá como ler um sensor de luz e temperatura com raspberry pi e ADS1115 analógico para conversor digital e representá-lo graficamente usando matplotlib. Vamos começar com os materiais necessários.
Suprimentos
- Framboesa pi (qualquer um serve, embora eu esteja usando um 4)
- Cartão MicroSD com Raspbian instalado (bom tutorial:
- Monitor HDMI e fonte de alimentação
- Cabo micro usb
- Conversor analógico para digital Adafruit ADS 1115:
- Fios de ligação
- sensor de luz (LDR)
- sensor de temperatura
- potenciômetro x2 (o valor será o ponto médio da faixa de resistência de seus sensores de temperatura e luz, que mediremos mais tarde)
- Tábua de pão
Etapa 1: Configurar seu Raspberry Pi
1. Siga este tutorial para configurar seu raspberry pi: https://www.raspberrypi.org/help/noobs-setup/2/2. Habilite I2C: clique no símbolo de framboesa pi no canto superior esquerdo. Vá para preferências> configuração do raspberry pi> interfaces> e marque a caixa "ativar" no I2C. Em seguida, clique em OK.3. Agora abra uma janela de terminal. Na linha de comando, digite:
sudo apt-get upgrade
sudo pip3 install adafruit-circuitpython-ads1x15
sudo apt-get install python-matplotlib
Etapa 2: Meça seus sensores de luz e temperatura
Agora vamos precisar medir a resistência dos sensores de luz e temperatura. Pegue um voltímetro na configuração de medição de resistência e meça através dos cabos de seu sensor de luz na luz e no escuro. Registre os valores. Agora pegue seu voltímetro nas pontas de seu sensor de temperatura no quente e no frio (usei água). Registre os valores. Nós os usaremos mais tarde em nosso circuito.
Etapa 3: Conecte seu circuito
1. Reúna os materiais listados na lista de suprimentos. Para os potenciômetros, use um valor que é a média dos altos e baixos (claro e escuro, quente e frio).
(alto-baixo) / 2
2. Siga o diagrama de circuito acima:
- Conecte o SDA no conversor analógico para digital ao SDA no pi
- Conecte SCL no conversor analógico para digital para SCL no pi
- Conecte o VDD no conversor analógico para digital a 3,3 V no pi
- Conecte o GND no conversor analógico para digital ao aterramento no pi
- Conecte o resto dos componentes de acordo com o diagrama do circuito.
Etapa 4: Código
1. Digite o terminal:
nano digital.py
2. Cole o código que tenho abaixo ou no Github no editor de texto que deve aparecer.
import matplotlib.pyplot as plt
import numpy como np import board import busio import time import adafruit_ads1x15.ads1115 as ADS de adafruit_ads1x15.analog_in import AnalogIn i2c = busio. I2C (board. SCL, board. SDA) ads = ADS. ADS1115 (i2c) x = 0 luz = AnalogIn (ads, ADS. P0) temp = AnalogIn (ads, ADS. P1) X1 = X2 = Y1 = Y2 = plt.ylim (-50, 1000) plt.plot (X1, Y1, label = "light", color = '# 0069af') plt.plot (X2, Y2, label = "Temp", color = '# ff8000') plt.xlabel ('Tempo (minutos)') plt.ylabel (' Nível ') plt.title (' Luz e temperatura ao longo do tempo ') plt.legend () enquanto Verdadeiro: x + = 5 Y1.append (light.value / 30) X1.append (x) Y2.append (temp.value / 3) X2.append (x) plt.plot (X1, Y1, label = "light", color = '# 0069af') plt.plot (X2, Y2, label = "Temp", color = '# ff8000') plt.pause (300)
3. Agora pressione CTRL + X para sair, pressione y para salvar e, em seguida, pressione enter.
Execute seu programa digitando terminal:
sudo python3 digital.py
4. Ajuste os potenciômetros para que o gráfico mostre uma ampla gama de valores. Experimente apontar uma luz para o sensor e desligar as luzes da sala para garantir que o gráfico mostre uma ampla gama de valores.
Se algum dos valores cair abaixo da parte inferior, tente diminuir o divisor correspondente (linhas 29 e 31).
Se algum dos valores ficar acima do topo, tente aumentar o divisor correspondente (linhas 29 e 31).
Etapa 5: solução de problemas
1. Verifique todas as conexões em relação ao diagrama de circuito
2. Detecção I2C - Irá mostrar a você todos os dispositivos conectados através do i2c:
Digite no terminal:
sudo apt-get install i2c-tools
sudo i2cdetect - y 1