Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Raspbian OSLearn como eu fiz este termômetro digital LED, com um Raspberry Pi Zero W, faixa de LED, um display OLED e um PCB personalizado.
Ele faz um ciclo automaticamente através de uma lista de cidades e exibe a temperatura no display OLED e nos LEDs. Mas você também pode selecionar manualmente uma cidade para exibir, com os botões ao lado. Além disso, desligará os LEDs e o OLED, se ficarem inativos por alguns minutos, e ligará novamente, se detectar uma alteração significativa da luz (Controlado por um LDR).
Suprimentos
- Um Raspberry Pi Zero W e um cartão SD com Raspbian OS
- Um Módulo OLED de 1,5 da Waveshare
- Uma fonte de alimentação 5V 2.4A para Raspberry Pi
- Uma tira de LED WS2812B de 5m, 30 LEDs / m
- Parafusos, arruelas, parafusos e espaçadores.
- Um PCB personalizado, com botões, um switch, um ldr, pin-headers e muito mais
- Ferro de soldar e solda
- Cola quente
- Cola de madeira
- Contraplacado de 4 mm e 6 mm
- acrílico branco de 3 mm
Etapa 1: dados meteorológicos
Agradecemos a StuffWithKirby por seu código na leitura de dados meteorológicos JSON em python.
Eu coleto os dados meteorológicos gratuitamente no OpenWeatherMap.org, onde eles fornecem dados meteorológicos de muitas das grandes cidades, em muitos países.
1. Comece criando uma conta GRATUITA no OpenWeatherMap.org.
2. Em seguida, copie sua chave de API para usar mais tarde.
3. Agora baixe, descompacte e abra o arquivo city.list.json.gz e pesquise as cidades que deseja exibir e copie o id da cidade para mais tarde.
Etapa 2: Configurando o RPi e Escrevendo o Código
Primeiro conectei o OLED ao Pi e instalei as bibliotecas necessárias para o OLED, conforme descrito pelo fabricante, aqui.
Certifique-se de que o RPi está conectado à internet
1. Habilite a função I2C e SPI em raspi-config em Opções de interface. Saia e reinicie.
2. Execute para atualizar:
sudo apt-get update
3. Execute os seguintes comandos para instalar as bibliotecas necessárias:
sudo apt-get install python-dev
sudo apt-get install python-smbus sudo apt-get install python-serial sudo apt-get install python-imaging
4. Execute o seguinte comando para abrir o arquivo de configuração:
sudo nano / etc / modules
Certifique-se de que as duas linhas a seguir estejam no arquivo de configuração, saia e reinicie:
i2c-bcm2708
i2c-dev
5. Agora execute isso para clonar meu repositório GitHub:
clone git https: / /github.com/Anders644PI/1.5inch-OLED-with-RPi.git
6. Vá para a nova pasta e descompacte RPi_GPIO-0_6_5.zip:
descompacte RPi_GPIO-0_6_5.zip
Execute para instalar a biblioteca:
cd RPi_GPIO-0_6_5
sudo python setup.py install
7. Volte para a pasta principal, digitando digitando:
cd /home/pi/1.5inch-OLED-with-RPi/
Ou
CD..
Em seguida, faça alguns com spidev-3_2.zip.
8. Em seguida, descompacte wiringPi.zip:
descompacte wiringPi
cd wiringPi
E execute estes comandos:
chmod 777 build
./construir
Verifique a instalação com:
gpio –v
9. Volte para a pasta principal e descompacte bcm2835-1_45.zip
descompacte bcm2835-1_45.zip
cd bcm2835-1_45
10. Em seguida, execute isso para instalar a biblioteca:
./configure
make sudo make check sudo make install
11. Volte novamente para /home/pi/1.5inch-OLED-with-RPi/ e execute isso para testar o OLED:
cd / Demo_Code / Python /
sudo python main.py
Em seguida, também tive que instalar as bibliotecas para a faixa de LED WS2812B, seguindo este guia.
Depois disso, foi apenas uma questão de escrever o código, o que levou cerca de alguns meses do início ao fim, trabalhando nele intermitentemente. Meu código pode ser encontrado no meu GitHub aqui.
Etapa 3: Configurando a API Weather
1. Cd em LED_Thermometer_Code_and_OLED_driver:
cd LED_Thermometer_Code_and_OLED_driver
2. Em seguida, abra Official_Digital_LED_Thermometer_v1-0.py:
nano Official_Digital_LED_Thermometer_v1-0.py
E então role para baixo e edite a chave api, para sua chave api, de openweathermap.org, conforme mostrado na imagem acima. Altere também os ids das cidades e os nomes das cidades para os locais desejados.
Etapa 4: o PCB personalizado
Segundo prêmio no Raspberry Pi Contest 2020