Skip to content

Tomaz-Arlindo/Raspberry-Pico-PET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 

Repository files navigation

Projeto PET Freezer IoT

README incompleto !!!

Sumário:

Componentes:

  • Raspberry Pi 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 (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 (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 (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 (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 (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 (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 (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 (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

(Pinagem da placa Raspberry Pi Pico)

ds18b20 pico-ds18b20

(montagem do ds18b20)

mpu6050 pico-mpu6050

(montagem do mpu6050)

acs712 pico-acs712

(montagem do acs712)

esp-01 pico-esp01

(montagem do esp-01)

Códigos:

DS18B20-CODE
#importação das bibliotecas
import machine, oneWire, ds18x20, time

pinoTemp = 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
#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
print("Hello World !!!")
ESP-01-CODE
print("Hello World !!!")

test!!!

README incompleto !!!

About

Projeto de coleta de dados para freezer IoT

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages