DIY - AI Smart PI Doorbell

mqtt

(Marco Reis) #1

Boas Pessoal,

Crie este projeto devido não encontrar nenhuma campainha que fosse ao encontro do que eu pretendia (tanto comercial como DIY).

O código foi criado de forma a não ser muito pesado para terminal e deste modo todo tipo notificação é via mqtt (desde tenha mqtt esta bom hahah), desta forma podem notificar o que quiserem como quiserem (com photo,vídeo ou mesmo só texto), vossa imaginação é o limite (alexa,telegrama,mediaplayer…)

Link do projeto:

Hardware:

Equipamanto Preço medio Link
Camera infrared 160 Degree 13€ Fisheyes Raspberry Pi 3 Model B+ Plus Camera 130 160 Degree 5MP Night Vision Camera + Infrared Light Wide Angle RPI Camera -in Demo Board Accessories from Computer & Office on Aliexpress.com | Alibaba Group
Touch Capacitance Button 1€ HTTM 2.7V 6V HTDS SCR Capacitive Anti interference Touch Capacitance Sensor Switch Button Module K9-in Sensors from Electronic Components & Supplies on Aliexpress.com | Alibaba Group
microphone 1€ Portable mini short microphone singing mini phone microphone recording small microphone K song phone microphone-in Microphones from Consumer Electronics on Aliexpress.com | Alibaba Group
Conversor 12v para 2x 5v 2.5€ Micro USB 12V to 5V 3A 15W DC DC Car Power Converter Module Step Down Power Output Adapter Low Heat Auto Protection-in Integrated Circuits from Electronic Components & Supplies on Aliexpress.com | Alibaba Group
Coluna 7€ https://www.jumbo.pt/Frontoffice/box_-_imagem_e_som/som_portatil/colunas_portateis/coluna_portatilseleclinemp-024s_azul897805/2736765/Auchan_Tecnologico?sid=724c515e-22ae-4fc5-9c02-d2677b90a76e_2
Raspberry pi zero 12€
Usbsound 7.1 1,20€ 7.1 External USB Sound Card USB to Jack 3.5mm Headphone Audio Adapter Micphone Sound Card For Mac Win Compter Android Linux-in Sound Cards from Computer & Office on Aliexpress.com | Alibaba Group
Usb hub 7€ / 1€ 4 Ports USB HUB HAT for Raspberry Pi 3 / 2 / Zero W Extension Board USB to UART for Serial Debugging compatible with USB2.0/1.1-in Demo Board Accessories from Computer & Office on Aliexpress.com | Alibaba Group

Overview do código:

Existem dois mains scripts: 1º Autohealing.py e 2ª Doorbell_pi_start.py

autohealing.py
Este script apenas garante que doorbell_pi_start.py se encontra em cima, e em adicional envia o estado RSSI e temperatura do raspberry via mqtt

doorbell_pi_start.py
Existem 3 Threats neste script:

  • Sequencia de açoes apos touch button

    • Tira foto
    • Guarda na folder http local
    • Faz facerecongition (caso tiverem ativo)
    • Manda notificação mqtt (com nome da pessoa caso facerecongition tiver ativo)
    • Play sound de Boas vindas
    • Caso voipcall tiver ativo liga para numero que indicarem, caso contrario faz Play Sound de espera
    • Play sound “Não é possível o atender, volte mais tarde” (este ponto so acontece voipcall estiver inativo)
  • Play de sound

    • Gerência som de forma não travar threat “Sequencia de açoes apos touch button”
  • Mqtt receiver

    • Recebe ordens:
      • Live: Tira filma 15 sec em realtime guarda mp4 na folder http local envia notificação mqtt
      • Snapshot : Tira photo em realtime guarda mp4 na folder http local envia notificação mqtt
      • Playsound: Faz play do tts enviado
      • Add new person to Face Recognition : Adiciona nova pessoa Face Recognition com base na ultima foto tirada

Nota: Pode receber voipcall/videocall qualquer altura

Exemplos de notificação (homeassistant ou node-red):

Enviar notificação para telegrama com Photo:

{ "url": "http://192.168.1.120/last_ring.jpg", "caption": "Doorbell -{{payload}} esta a porta" }

Nota: {{payload}} é a uma variavel para passar nome caso faceregnotion esteja ativo.

Enviar notificação alexa:

{"message": "knock knock Knock. {{payload}} is knocking on the door. Knock Knock Knock."}

Nota: {{payload}} é a uma variavel para passar nome caso faceregnotion esteja ativo

Mais exemplo no github: https://github.com/Hurleyking/AI_Smart_PI_Doorbell/tree/master/doorbell_pi/Node-red_and_ha_examples

Video de exemplo (por agora so tenho este mas postarei mais assim que tiver mais tempo):


(Rodolfo) #2

@Marco_Reis obrigado pela partilha de este excelente projecto. Fiquei já com vontade de fazer uma para mim :slight_smile:
Obrigado também pela excelente apresentação e a forma como tudo foi detalhado.
Esperamos um novo vídeo de dia para ver o aspecto melhor da “coisa”.

Agora uma pergunta… Isso com bateria seria fiavél?


(Marco Reis) #3

@RodolfoVieira, penso com raspberry não seja possível pois nem suporta deepsleep, caso pretendas mesmo a bateria melhor solução é nodemcu em modo deepsleep, é fácil fazer se quiseres posso te ajudar.


(Ricardo Reis) #4

Ótimo projeto!!!

Tenho este ESP32 com camara encomendado e deve chegar entretanto. Achas que dá para adaptar?

E como case estava a pensar em usar do meu video porteiro já existente


(Rodolfo) #5

Não entendi a questão do nodemcu, a minha pergunta seria para fazer como a RING funciona.
Sem ser necessário corrente no local.


(Marco Reis) #6

Sim era isso que ia dizer, uma esp32-CAM penso com mesma lógica do código iria bombar, se calhar com alguma limitação (sem som e sem microphone), o resto podíamos adaptar para suportar esp32-CAM. E em adicional esses esp com CAM por norma dá para ligar uma antena Wi-Fi externa. Vou mandar vir um para mim , depois posto esse projecto. AI smart esp32 doorbell versão Battery hahah, até depois pode servir blink caseira a hahah. Se alguém Lisboa tiver esp-32 CAM para vender seria otimo, assim não teria esperar 1 mês da china.


(Flávio Afonso) #7

@Marco_Reis excelente projecto, parabéns.

Algumas questões:
A caixa imprimiste? Se sim, tens o STL que possas partilhar?
A unica forma de sabermos que alguém tocou à campainha é através da notificação ou tens algo a imitir som de campainha em casa?

Obrigado :wink:


(Marco Reis) #8

@Fl4v10 thanks, a caixa comprei no leroy, é uma simples caixa eletrica e depois cortei com drill e fiz furos em baixo para respirar. Na zonas do cortes meti acrílico.
Sim só notifica por mqtt por sua vez pode mandar tocar em qualquer lado nos exemplo tens ai como. Tocar na alexa entre outros…


(Rita Patacas) #9

Por não conseguir encontrar uma solução de campainha como preciso, vim parar ao teu projeto e está muito próximo daquilo que procuro.
A grande questão: é possível programar várias campainhas (botões) que ativam mesma câmara? A minha ideia é depois usar um software tipo ewelink, que cada um possa instalar no telemóvel, são 4/5 campainhas (dependendo da dificuldade da coisa eheh)
Obrigada!