DIY Sensor Wi-Fi, sem programação, sem solda necessária*
Plataformas de software no-code/low-code tornaram possível criar aplicações, escrevendo apenas algumas linhas de código e, em alguns casos, sem código algum! Isso reduz o esforço de desenvolvimento e o tempo de implantação.
Este projeto combina duas ideias: plataforma de software no-code/low-code e um sistema de prototipagem rápida e robusto que não requer soldagem. Nesse sentido, é possível passar de uma ideia para um dispositivo materializado que funcione em um ambiente real em poucas horas.
Componente chave: ESP 32 D1 MINI
Prototipagem rápida de hardware-software
A seguinte aplicação será construída como exemplo: um termômetro WiFi baseado em ESP32, sensor de temperatura DS18B20 e indicador local I2C. Tudo isso será fechado em uma caixa à prova d’água, montável na parede e alimentado por 5V. Isso será alcançado usando os seguintes projetos:
HARDWARE: Sistema de prototipagem rápida, de código aberto e robusto: MISISTEMITA
SOFTWARE: Testado TASMOTA e também ESPHome.
Lista de materiais
Peças discretas necessárias
Componente | Ligação do compra | Folha de dados |
---|---|---|
ESP32 D1 MINI | Compre aqui | esp32-d1-mini.pdf |
Display OLED 0.96 I2C | Compre aqui | 096-i2c-oled-display.pdf |
Sensor temperatura prova dágua DS18B20 | Compre aqui | ds18b20-waterproof.pdf |
Resistor 1/4W 1% TH | Compre aqui | MGR-SERIES.pdf |
Caixa plástica à prova d’água “Sonoff” 100x68x50mm | Compre aqui | SONOFF-IP66-waterproof-case.pdf |
Componentes necessários para construir os módulos necessários de misistemita
Componente | Ligação do compra | Folha de dados |
---|---|---|
Espaçador de Nylon de travamento reverso | Compre aqui | G228.pdf |
Parafuso auto-rostante tipo B M2.6 | Compre aqui | M2.6x5-6-8-12mm.pdf |
Borne de parafuso 3.5mm kf350 (2,3 pinos) para PCB. | Compre aqui | KF350.pdf |
Barra De Pinos Fêmea 2.54mm | Compre aqui | FHA3-S1XX.pdf |
Placas de circuito impressas necessárias para construir os módulos necessários do MISISTEMITA
Placas de circuito impressas (PCB) | Ligação do compra | Arquivos de origem |
---|---|---|
A06 placa de montagem removível para o caixa de 100 x 68 x 52 mm | Compre aqui | a06 backplate |
B02 3.5mm 2x7 placa borne de parafuso | Compre aqui | b02 Screw terminal |
C12 Placa Borne De Expansão para ESP32 D1 MINI | Compre aqui | c12 Breakout |
C10 Placa Borne De Expansão para display I2C | Compre aqui | c10 Breakout |
Software | repositorio |
---|---|
ESPHome | download |
TASMOTA | download |
Montagem de hardware
A soldagem não será necessária* se os módulos a serem usados já tiverem sido construídos ou adquiridos antecipadamente. O primeiro passo é localizar as placas na placa de montagem removível, como boa prática, os terminais borna com parafuso devem ser colocados em algum lugar na borda da placa de montagem removível e o mais próximo possível do ponto de entrada do cabo.
O segundo passo é conectar os diferentes módulos dependendo do projeto originalmente proposto. Tanto cabos de cobre sólido quanto cabos de cobre multifilares podem ser usados. É recomendável baixar um firmware de teste mínimo para testar a conectividade dos componentes.
O terceiro passo é remover as conexões externas, posicionar a placa de montagem removível na caixa e fixá-la com parafusos autoroscantes. Passe os cabos de alimentação pelos prensa cabos e reconecte-os à placa.
O último passo consiste em fechar a tampa, ajustar as prensa cabos e instalar na parede.
Configuração de firmware
Os seguintes pontos não têm a intenção de ser um guia de instalação ou configuração abrangente. Para obter mais informações, consulte a documentação de cada plataforma utilizada (Tasmota e ESPHome). Em resumo, algumas dicas sobre como o sensor foi criado em cada uma delas serão apresentadas.
Tasmota
A filosofia do Tasmota consiste em um firmware pré-compilado básico que é baixado no dispositivo e uma vez baixado, é personalizado usando templates. O instalador do Tasmota é baseado em um navegador da web, portanto, nenhum software adicional é necessário. Os seguintes parâmetros foram usados:
- Firmware Base: Display
- Configuração de template: Pinos da porta I2C, pino do sensor DS18B20
- Display mode: 0
- Display type: SSD1306
- Temperature visualization rule: rule 1 ON DS18B20#Temperature DO Displaytext[zs2y20] %value% C ENDON
ESPHome
A filosofia do ESPHome consiste em compilar um firmware personalizado usando um arquivo de configuração YAML. Isso significa que o Home Assistant precisa ser instalado e, uma vez em funcionamento, o ESPHome deve ser instalado como um add-on. Após essas duas etapas, já é possível criar sensores. Uma parte do arquivo de configuração é mostrada aqui nas seções mais significativas.
# GPIO setup
dallas:
- pin: 26
i2c:
sda: 21
scl: 22
# Sensor setup
sensor:
- platform: dallas
address: 0x8c01131b44162184
id: outside_temperature
name: "External temperature"
font:
# gfonts://family[@weight]
- file: "gfonts://Roboto"
id: roboto
size: 20
display:
- platform: ssd1306_i2c
model: "SSD1306 128x64"
address: 0x3c
lambda: |-
it.printf(90, 35, id(roboto), TextAlign::BASELINE_RIGHT , "%.1f °C", id(outside_temperature).state);
resultado final
hardware:
A montagem do hardware, começando a partir de módulos pré-construídos, levou cerca de uma hora.
firmware:
A configuração do firmware do sensor, usando o Tasmota, levou aproximadamente 10 minutos. Fazer uma alteração na configuração, como em um pino I/O ou em uma regra de visualização, leva cerca de 1 minuto.
A mesma tarefa, usando o ESPHome, levou aproximadamente 2 horas na primeira vez, porque o Home Assistant precisa ser instalado (em um Raspberry Pi ou outro computador). Depois que o ESPHome é instalado, fazer uma alteração na configuração leva cerca de 5 a 10 minutos, dependendo da velocidade do Rpi para a compilação do código.
Em ambas as plataformas, a primeira configuração é com fio (ESP32 conectado a um PC). Depois disso, todas as atualizações são feitas sem fio (OTA).
O único “código” digitado em ambas as plataformas foi o mínimo necessário para visualizar a temperatura no display I2C. Cada plataforma tem sua própria maneira de fazer isso. Em ambos os casos, foi apenas uma única linha.