Note

Bonjour, bienvenue dans la communauté SunFounder des passionnés de Raspberry Pi, Arduino & ESP32 sur Facebook ! Explorez en profondeur le Raspberry Pi, l’Arduino et l’ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec l’aide de notre communauté et de notre équipe.

  • Apprendre & Partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.

  • Avant-premières exclusives : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus exclusifs.

  • Réductions spéciales : Profitez de remises exclusives sur nos nouveaux produits.

  • Promotions festives et cadeaux : Participez à des concours et promotions spéciales.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [ici] et rejoignez-nous dès aujourd’hui !

3. Système de Sécurité via @IFTTT

Avec ce projet, nous allons créer un dispositif de sécurité utilisant un capteur PIR pour détecter toute intrusion dans votre maison par un cambrioleur ou un animal errant. En cas de détection, vous recevrez une alerte par e-mail.

Webhook sera utilisé comme service de base. Une requête POST est envoyée au service IFTTT depuis le Raspberry Pi Pico W. Avec IFTTT, nous allons créer un Applet pour intercepter le webhook et envoyer un e-mail.

Avertissement

la politique tarifaire d’IFTTT a été mise à jour. L’utilisation de ce projet peut entraîner des frais supplémentaires. Veuillez en tenir compte à l’avance.

1. Composants Requis

Dans ce projet, nous aurons besoin des composants suivants.

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

DANS CE KIT

LIEN

Kepler Kit

450+

Kepler Ultimate Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

SN

COMPOSANT

QUANTITÉ

LIEN

1

Découvrir le Pico W

1

ACHETER

2

Câble Micro USB

1

3

Plaque d’essai (Breadboard)

1

ACHETER

4

Fils de connexion (Jumper Wires)

Plusieurs

ACHETER

5

Transistor

1(S8050)

ACHETER

6

Résistance

2(1KΩ, 10KΩ)

ACHETER

7

Bouton

1

ACHETER

8

Buzzer Actif Buzzer

1

9

Module de chargeur Li-po

1

10

Batterie 18650

1

11

Support de Batterie

1

12

Module Capteur de Mouvement PIR

1

ACHETER

2. Construire le Circuit

Avertissement

Assurez-vous que votre module chargeur Li-po est connecté comme indiqué sur le schéma. Sinon, un court-circuit risque d’endommager votre batterie et votre circuit.

../../_images/3.ifttt_mail_bb.png

3. CONFIGURER IFTTT

IFTTT est un service gratuit qui offre diverses façons de connecter différents services de données entre eux.

Nous allons créer un Applet qui réagit à un webhook (URL personnalisée) qui envoie des données à IFTTT. IFTTT enverra ensuite un e-mail pour vous.

Veuillez suivre les étapes ci-dessous sur IFTTT.

  1. Visitez IFTTT pour vous connecter ou créer un compte.

  2. Cliquez sur Create.

  3. Ajoutez un événement If This.

  4. Recherchez Webhooks.

  5. Appuyez sur Receive a web request.

  6. Remplissez le nom de l’événement (par exemple, SecurityWarning), et cliquez sur Create trigger.

  7. Ajoutez un événement Then That.

  8. Recherchez Email.

  9. Cliquez sur Send me an email.

  10. Remplissez Subject et Body, puis cliquez sur Create action.

    ../../_images/ifttt-10.png
  11. Cliquez sur Continue pour terminer la configuration.

    ../../_images/ifttt-11.png
  12. Modifiez le titre et c’est terminé.

    ../../_images/ifttt-12.png
  13. Vous serez automatiquement redirigé vers la page de détails de l’Applet, où vous pourrez voir que l’Applet est connecté et activer/désactiver son commutateur.

    ../../_images/ifttt-13.png

4. Exécuter le Script

  1. Maintenant que nous avons créé l’Applet IFTTT, nous avons besoin de la clé API que vous pouvez obtenir depuis le Paramètres des Webhooks pour permettre au Pico W d’accéder à IFTTT.

  2. Copiez-la dans le script secrets.py sur le Raspberry Pi Pico W.

    ../../_images/3_ifttt4.png

    Note

    Si vous n’avez pas les scripts do_connect.py et secrets.py dans votre Pico W, veuillez vous référer à 1. Accès au Réseau pour les créer.

    secrets = {
    'ssid': 'SSID',
    'password': 'PASSWORD',
    'webhooks_key':'WEBHOOKS_API_KEY'
    }
    
  3. Ouvrez le fichier 3_ifttt_mail.py dans le chemin kepler-kit-main/iot, puis cliquez sur File -> Save as ou appuyez sur Ctrl+Shift+S.

    ../../_images/3_ifttt1.png
  4. Sélectionnez Raspberry Pi Pico dans la fenêtre popup qui apparaît.

    ../../_images/3_ifttt2.png
  5. Définissez le nom de fichier sur main.py. Un message apparaîtra si un fichier du même nom existe déjà sur votre Pico W.

    ../../_images/3_ifttt3.png
  6. Vous pouvez maintenant débrancher le câble USB et utiliser le module chargeur Li-po pour alimenter le Raspberry Pi Pico W. Vous entendrez un buzzer lorsque le script s’exécute. Le buzzer continuera de sonner si le module PIR détecte une personne ou une créature passant à proximité, et une alerte par e-mail vous sera envoyée. Le script peut être redémarré en appuyant sur le bouton.

Comment ça marche ?

Le Raspberry Pi Pico W doit être connecté à Internet, comme décrit dans 1. Accès au Réseau. Pour ce projet, utilisez simplement :

from do_connect import *
do_connect()

Le capteur PIR lit les données et appelle la fonction motion_detected() s’il détecte quelqu’un passant (passage de données de 0 à 1).

import machine

sensor=machine.Pin(17,machine.Pin.IN)

sensor.irq(trigger=machine.Pin.IRQ_RISING, handler=motion_detected)

Ensuite, le Pico W envoie les données à IFTTT. Comme vous pouvez le voir, le message envoyé à IFTTT est une chaîne d’URL. IFTTT identifie l’expéditeur via secrets['webhooks_key'], et l’événement déclenché est identifié par event. Assurez-vous qu’ils soient corrects.

import urequests
from secrets import *

event='SecurityWarning'
message=f"https://maker.ifttt.com/trigger/{event}/with/key/{secrets['webhooks_key']}"

def motion_detected(pin):
    urequests.post(message)
    print(message)
    global warn_flag
    warn_flag=True
    sensor.irq(handler=None)

Quand motion_detected() est appelé, la variable warn_flag est définie sur True, ce qui fait que le buzzer continue de sonner.

while True:
    if warn_flag==True:
        alarm.toggle()
        time.sleep_ms(50)

Le bouton sert à redémarrer le script.

button=machine.Pin(16,machine.Pin.IN)

def reset_device(pin):
    machine.reset()

button.irq(trigger=machine.Pin.IRQ_RISING, handler=reset_device)