Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tomaz-arlindo/raspberry-pico-pet
Projeto de coleta de dados para freezer IoT
https://github.com/tomaz-arlindo/raspberry-pico-pet
gpio micropython raspbery-pi-pico
Last synced: about 1 month ago
JSON representation
Projeto de coleta de dados para freezer IoT
- Host: GitHub
- URL: https://github.com/tomaz-arlindo/raspberry-pico-pet
- Owner: Tomaz-Arlindo
- Created: 2022-08-17T23:56:05.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-01-16T22:04:29.000Z (almost 2 years ago)
- Last Synced: 2024-05-14T02:26:00.076Z (8 months ago)
- Topics: gpio, micropython, raspbery-pi-pico
- Language: Python
- Homepage:
- Size: 1.83 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Projeto PET Freezer IoT
README incompleto !!!
### Sumário:
* [Componentes](#componentes)
* [Protocolos](#protocolos)
* [Montagem](#montagem)
* [Códigos](#códigos)
* [DS18B20](#ds18b20-code)
* [MPU6050](#mpu6050-code)
* [ACS712](#acs712-code)
* [ESP-01](#esp-01-code)
## Componentes:
* **[Raspberry Pi Pico](https://hackspace.raspberrypi.com/books/micropython-pico)** *(RP2040 Micro Controlador):* Um poderoso micro controlador que conta com diversas portas programaveis e compatíveis com diversos protocolos típicos de aplicações em automação e IoT (internet das coisas), geralmente programado em MicroPython uma versão do Python3 otimizada para microcontroladores deste porte, contando também com documentações e projetos afins na internet.
* **[DS18B20](https://randomnerdtutorials.com/micropython-ds18b20-esp32-esp8266/)** *(Sensor de Temperatura):* Um sensor de temperatura digital que opera em ambientes secos, umidos e até submerso (no modelo tipo sonda), tem uma faixa de -55°C a 125°C e uma precisão de 0.5°C, cada sensor carrega um ID 64bits possibilitando associar multiplos sensores no mesmo barramento e fazendo a separação das coletas através do código do micro controlador.
* **[MPU6050](https://microdigisoft.com/mpu6050-with-raspberry-pi-pico-using-micropython/)** *(Módulo Acelerômetro 3 Eixos):* Um MEMS (Micro-Electro-Mechanical Systems) que conta com um sensor de temperatura, um giroscópio de 3 eixos e um acelerômetro de 3 eixos (o foco deste projeto), entrega com grande precisão e velocidade seus dados de forma digital através do protocolo I2c.
* **[ACS712](https://how2electronics.com/how-to-use-adc-in-raspberry-pi-pico-adc-example-code/)** *(Sensor de Corrente 20A max):* Realiza a leitura de corrente alternada (AC) e contínua (DC). Este sensor utiliza efeito hall para fazer a detecção do campo magnético que é gerado pela passagem da corrente e no pino de saída é gerada uma tensão analógica proporcional à entrada.
* **[ESP-01](https://www.filipeflop.com/blog/como-conectar-a-raspberry-pi-pico-ao-wifi-com-esp8266/)** *(ESP-8266 Conexão Wi-Fi):* Um módulo *Wireless*, compacto e de baixo custo que possibilita que um microcontrolador mais poderoso possa de conectar a uma rede WiFi podendo também hospedar aplicação própria respeitando suas limitações.
## Protocolos:
protocolos de conexão utilizados
[GPIO](https://www.oficinadanet.com.br/hardware/40552-o-que-e-gpio) *(General Purpose Input/Output)* - Portas programáveis de entrada e saída de dados que são utilizadas para prover uma interface entre os periféricos e os microcontroladores/microprocessadores.
[I2C](https://how2electronics.com/how-to-use-i2c-pins-in-raspberry-pi-pico-i2c-scanner/) *(Inter-Integrated Circuit)* - Um barramento serial multimestre que é usado para conectar periféricos de baixa velocidade ao sistema embarcado num mesmo barramento (desde que estes tenham endereços diferentes).
[ADC](https://www.circuitschools.com/how-to-use-adc-on-raspberry-pi-pico-in-detail-with-micropython-example/) *(Analog to Digital Converter)* - Gera uma codificação digital a partir de um nível de tensão ou intensidade de corrente analogica de um sensor.
[UART](https://www.rohde-schwarz.com/br/produtos/teste-e-medicao/osciloscopios/educational-content/compreender-uart_254524.html) *(Universal Asynchronous Receiver/Transmitter)* - Como o próprio nome diz, é um protocolo assíncrono que possibilita a comunicação serial entre dois dispositivos de forma full-duplex.
## Montagem:
pinagem Raspberry Pi Pico
![pico-pinout](https://github.com/Tomaz-Arlindo/Raspberry-Pico-PET/blob/main/images/pico-pinout.png)
(Pinagem da placa Raspberry Pi Pico)
ds18b20
![pico-ds18b20](https://github.com/Tomaz-Arlindo/Raspberry-Pico-PET/blob/main/images/pico-ds18b20.png)
(montagem do ds18b20)
mpu6050
![pico-mpu6050](https://github.com/Tomaz-Arlindo/Raspberry-Pico-PET/blob/main/images/pico-mpu6050.png)
(montagem do mpu6050)
acs712
![pico-acs712](https://github.com/Tomaz-Arlindo/Raspberry-Pico-PET/blob/main/images/pico-acs712.png)
(montagem do acs712)
esp-01
![pico-esp01](https://github.com/Tomaz-Arlindo/Raspberry-Pico-PET/blob/main/images/pico-esp01.png)
(montagem do esp-01)
## Códigos:
##### DS18B20-CODE
~~~Python
#importação das bibliotecas
import machine, oneWire, ds18x20, timepinoTemp = machine.Pin(6) #define o pino utilizado na montagem (GPIO6 - pino 9)
sensTemp = ds18x20.DS18X20(oneWire.OneWire(pinoTemp)) #define protocolo
idTemp = sensTemp.scan() #identifica endereço dos sensores conectados
print("Sensores encontrados:",idTemp)while True:
sensTemp.convert_temp() #realiza conversão de temperatura (min 750ms)
time.sleep_ms(750)
for i in idTemp:
print(sensTemp.read_temp(i), "oC") #realiza leitura de cada sensor
time.sleep(1)
~~~
##### MPU6050-CODE
~~~Python
#importação das bibliotecas
import machine, time, mpu6050#define pinos i2c utilizados na montagem (GPIO21 - pino 27) (GPIO20 - pino 26)
i2c = machine.I2C(0, scl= machine.Pin(21), sda= machine.Pin(20), freq=400000)
mpu6050.mpu6050_init(i2c) #inicia configurações do mpu6050 na porta i2c escolhida#loop de leitura de dados
while True:
print("Temperature:\t", mpu6050.mpu6050_get_temp(i2c), "°C") #temperatura
print("Accelerometer:\t", mpu6050.mpu6050_get_accel(i2c), "g") #aceleração 3 eixos
print("Gyroscope:\t", mpu6050.mpu6050_get_gyro(i2c), "°/s") #giroscópio 3 eixos
time.sleep_ms(500)~~~
##### ACS712-CODE
~~~python
print("Hello World !!!")
~~~
##### ESP-01-CODE
~~~python
print("Hello World !!!")
~~~
> test!!!
README incompleto !!!