Table des matières:

Pool Pi Guy - Système d'alarme piloté par l'IA et surveillance de la piscine à l'aide de Raspberry Pi : 12 étapes (avec photos)
Pool Pi Guy - Système d'alarme piloté par l'IA et surveillance de la piscine à l'aide de Raspberry Pi : 12 étapes (avec photos)

Vidéo: Pool Pi Guy - Système d'alarme piloté par l'IA et surveillance de la piscine à l'aide de Raspberry Pi : 12 étapes (avec photos)

Vidéo: Pool Pi Guy - Système d'alarme piloté par l'IA et surveillance de la piscine à l'aide de Raspberry Pi : 12 étapes (avec photos)
Vidéo: Part 5 - The Jungle Audiobook by Upton Sinclair (Chs 18-22) 2024, Juillet
Anonim
Pool Pi Guy - Système d'alarme piloté par l'IA et surveillance de la piscine à l'aide de Raspberry Pi
Pool Pi Guy - Système d'alarme piloté par l'IA et surveillance de la piscine à l'aide de Raspberry Pi

Avoir une piscine à la maison est amusant, mais implique une grande responsabilité. Ma plus grande inquiétude est de surveiller si quelqu'un se trouve près de la piscine sans surveillance (en particulier les plus jeunes). Mon plus grand ennui est de m'assurer que la conduite d'eau de la piscine ne descende jamais en dessous de l'entrée de la pompe, ce qui ferait fonctionner la pompe à sec et la détruirait, ce qui coûterait $$$ en réparations.

J'ai récemment compris comment utiliser un Raspberry Pi avec OpenCV et TensorFlow, ainsi qu'un capteur de niveau d'eau et une électrovanne pour résoudre les deux problèmes - et amusez-vous à le faire !

Il s'avère également être un excellent système d'alarme - activé par le mouvement, contrôlé par l'IA, personnalisable à l'infini.

Plongeons-nous.

Étape 1: Grand Plan

Dans ce instructable, nous allons montrer comment:

  1. Configurer un Raspberry Pi avec OpenCV et TensorFlow
  2. Connectez une webcam via un long câble USB
  3. Écrire un algorithme OpenCV pour détecter le mouvement
  4. Utiliser TensorFlow pour la détection d'objets
  5. Configurez un serveur Web sur le Raspberry Pi pour afficher les images intéressantes
  6. Intégration avec IFTTT pour déclencher des alertes mobiles au cas où une personne serait détectée
  7. Attachez un relais HAT au Raspberry Pi et connectez-le à une électrovanne qui ajouterait de l'eau à la piscine
  8. Fixez un capteur de niveau d'eau au Raspberry Pi et interfacez-le avec le GPIO du Pi
  9. Écrivez du code pour tout coller ensemble

Étape 2: Liste de courses

Liste de courses
Liste de courses

Tous les composants sont facilement disponibles sur Amazon. N'hésitez pas à expérimenter et à échanger des composants - c'est la moitié du plaisir !

  1. Tarte aux framboises
  2. Alimentation Raspberry Pi (ne lésinez pas ici)
  3. Carte mémoire (plus c'est gros, mieux c'est)
  4. Boîtier (celui-ci est assez grand pour loger à la fois le Pi et le HAT)
  5. Webcam USB (n'importe quelle webcam fera l'affaire, mais vous en voulez une qui obtient de bonnes images et équilibre bien l'éclairage)
  6. Câble d'extension USB (si nécessaire - mesurez la distance entre le Pi et l'endroit où vous placeriez la caméra)
  7. Carte relais HAT (celle-ci a 3 relais et nous n'en avons besoin que d'un, mais vous trouverez bien assez tôt une utilité pour les autres !)
  8. Solénoïde
  9. Raccord de solénoïde 1 et raccord 2 (cela dépend vraiment de l'ajustement du solénoïde, mais ceux-ci ont fonctionné pour moi)
  10. Alimentation du solénoïde (n'importe quel 24V AC ferait l'affaire)
  11. Câble (encore une fois, presque n'importe quel câble à 2 brins ferait l'affaire - le courant est minime)
  12. Interrupteur à flotteur de niveau d'eau (ce n'est qu'un exemple, vérifiez ce qui peut être facilement connecté à votre piscine)
  13. Certains fils de cavalier et connecteurs de fil

Étape 3: Configurez votre Raspberry Pi

Configurez votre Raspberry Pi
Configurez votre Raspberry Pi

Raspberry Pi est un super petit ordinateur. Il ne coûte que 35 $, fonctionne de manière cohérente et dispose de nombreux logiciels et matériels compatibles. La configuration est assez simple:

  1. Formatez votre carte SD. Cela nécessite une attention particulière - Raspberry Pi ne peut démarrer qu'à partir d'une carte SD formatée en FAT. Suivez ces instructions.
  2. Connectez le Raspberry Pi à un clavier et une souris USB, plus un écran HDMI, et suivez les instructions du tutoriel Raspberry Pi NOOBS. Assurez-vous de configurer le WiFi et d'activer l'accès SSH. N'oubliez pas de configurer un mot de passe pour le compte pi par défaut.
  3. Sur votre réseau domestique, configurez une adresse IP statique pour le Raspberry Pi - cela rendrait beaucoup plus facile la connexion SSH.
  4. Assurez-vous d'avoir un client ssh installé sur votre ordinateur de bureau/ordinateur portable. Pour un PC, je recommanderais Putty, que vous pouvez installer à partir d'ici.
  5. Débranchez l'USB et le HDMI du Raspberry Pi, redémarrez-le et ssh dedans - si tout a fonctionné, vous devriez voir quelque chose comme ceci:

Linux raspberrypi 4.14.98-v7+ #1200 SMP mar. 12 février 20:27:48 GMT 2019 armv7l

Les programmes inclus avec le système Debian GNU/Linux sont des logiciels libres; les conditions de distribution exactes pour chaque programme sont décrites dans les fichiers individuels dans /usr/share/doc/*/copyright. Debian GNU/Linux est fourni avec ABSOLUMENT AUCUNE GARANTIE, dans la mesure permise par la loi applicable. Dernière connexion: lun 13 mai 10:41:40 2019 à partir de 104.36.248.13 pi@raspberrypi:~ $

Étape 4: Configurer OpenCV

Configurer OpenCV
Configurer OpenCV

OpenCV est une étonnante collection de fonctions de manipulation d'images pour la vision par ordinateur. Il nous permettra de lire les images de la webcam, de les manipuler pour trouver des zones de mouvement, de les enregistrer et plus encore. L'installation sur le Raspberry Pi n'est pas difficile mais demande quelques précautions.

Commencez par installer virtaulenvwrapper: nous utiliserons python pour faire toute notre programmation, et virtualenv nous aiderait à séparer les dépendances pour OpenCV et TensorFlow vs Flask ou GPIO:

pi@raspberrypi:~ $ sudo pip install virtualenvwrapper

Vous pouvez maintenant exécuter "mkvirtualenv" pour créer un nouvel environnement, "workon" pour travailler dessus, et plus encore.

Créons donc un environnement pour notre manipulation d'images, avec python 3 comme interpréteur par défaut (on est en 2019, il n'y a aucune raison de s'en tenir à l'ancien python 2):

pi@raspberrypi:~ $ mkvirtualenv cv -p python3

… (cv) pi@raspberrypi:~

Nous sommes maintenant prêts à installer OpenCV. Nous suivrons principalement l'excellent tutoriel dans Learn OpenCV. Suivez précisément leurs étapes 1 et 2:

sudo apt -y updatesudo apt -y upgrade ## Installer les dépendances sudo apt-get -y install build-essential checkinstall cmake pkg-config yasm sudo apt-get -y install git gfortran sudo apt-get -y install libjpeg8-dev libjasper- dev libpng12-dev sudo apt-get -y install libtiff5-dev sudo apt-get -y install libtiff-dev sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev sudo apt-get - y install libxine2-dev libv4l-dev cd /usr/include/linux sudo ln -s -f../libv4l1-videodev.h videodev.h sudo apt-get -y install libgstreamer0.10-dev libgstreamer-plugins-base0. 10-dev sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default sudo apt-get -y install libatlas-base-dev sudo apt-get -y install libmp3lame-dev libtheora-dev sudo apt-get -y installer libvorbis-dev libxvidcore-dev libx264-dev sudo apt-get -y installer libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get -y installer libavresample-dev sudo apt-get -y installer x264 v4l-utils sudo apt-get -y installer libprotobuf -dev protobuf-compiler sudo apt-get -y install libgoogle-glog-dev libgflags-dev sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen sudo apt-get install libqtgui4 sudo apt-get install libqt4- test

Maintenant, nous pouvons simplement installer OpenCV avec des liaisons python à l'intérieur du cv virtualenv (vous y êtes toujours, n'est-ce pas?) en utilisant

pip installer opencv-contrib-python

Et c'est tout! Nous avons OpenCV installé sur notre Raspberry Pi, prêt à capturer des photos et des vidéos, à les manipuler et à être cool.

Vérifiez cela en ouvrant un interpréteur python et en important opencv et vérifiez qu'il n'y a pas d'erreurs:

(cv) pi@raspberrypi:~ $ python

Python 3.5.3 (par défaut, 27 sept. 2018, 17:25:39) [GCC 6.3.0 20170516] sur linux Tapez "help", "copyright", "credits" ou "license" pour plus d'informations. >>> importer cv2 >>>

Étape 5: Configurer TensorFlow

Configurer TensorFlow
Configurer TensorFlow

TensorFlow est un framework d'apprentissage automatique/IA développé et maintenu par Google. Il prend en charge de manière étendue les modèles d'apprentissage en profondeur pour diverses tâches, notamment la détection d'objets dans les images, et est désormais assez simple à installer sur Raspberry Pi. Les performances de ses modèles légers sur le minuscule Pi sont d'environ 1 image par seconde, ce qui est parfaitement adéquat pour une application comme la nôtre.

Nous suivrons en gros l'excellent tutoriel d'Edje Electronics, avec des modifications rendues possibles par les distributions TensorFlow plus récentes:

pi@raspberrypi:~ $ workon cv

(cv) pi@raspberrypi:~ $ pip install tensorflow (cv) pi@raspberrypi:~ $ sudo apt-get install libxml2-dev libxslt-dev (cv) pi@raspberrypi:~ $ pip install Pillow lxml jupyter matplotlib cython (cv) pi@raspberrypi:~ $ sudo apt-get install python-tk

Nous devons maintenant compiler le protobuf de Google. Suivez simplement les instructions de l'étape 4 du même excellent tutoriel

Enfin, clonez et configurez les définitions de modèle de TensorFlow - suivez l'étape 5 du didacticiel Edje Electronics

N'hésitez pas à suivre leur exemple à l'étape 6 également, c'est une excellente introduction à la détection d'objets sur le Raspberry Pi.

Étape 6: Détection de mouvement à l'aide d'OpenCV

Commençons par tester qu'OpenCV peut s'interfacer avec notre webcam: ssh dans le Raspberry Pi, passez au cv virtualenv (workon cv), ouvrez un interpréteur python (tapez simplement python) et entrez les commandes python suivantes:

importer cv2

cap = cv2. VideoCapture(0) cap.set(cv2. CAP_PROP_FRAME_WIDTH, 1920) cap.set(cv2. CAP_PROP_FRAME_HEIGHT, 1080) ret, frame = cap.read() print('Lire la taille du cadre: {}x{}'.format(cadre.forme[1], cadre.forme[0])

Avec un peu de chance, vous verrez qu'OpenCV a pu lire une image HD à partir de la caméra.

Vous pouvez utiliser cv2.imwrite(chemin, cadre) pour écrire ce cadre sur le disque et le renvoyer par sftp pour obtenir un aperçu réel.

La stratégie pour détecter un mouvement est assez simple:

  1. Travaillez sur des images de résolution inférieure - il n'est pas nécessaire d'opérer en Full HD ici
  2. De plus, floutez les images pour assurer le moins de bruit possible.
  3. Gardez une moyenne courante des N dernières images. Pour cette application, où la fréquence d'images est d'environ 1 FPS (juste parce que TensorFlow prend un certain temps par image), j'ai trouvé que N = 60 renvoie de bons résultats. Et comme une implémentation soignée ne prend pas plus de CPU avec plus d'images, c'est OK (elle prend plus de mémoire - mais c'est négligeable lorsque nous travaillons avec des images de résolution inférieure)
  4. Soustrayez l'image actuelle de la moyenne courante (faites attention à la saisie - vous devez autoriser les valeurs positives et négatives [-255.. 255], donc le cadre doit être converti en entier)
  5. Vous pouvez effectuer la soustraction sur une conversion en niveaux de gris du cadre (et de la moyenne), ou le faire séparément pour chacun des canaux RVB, puis combiner les résultats (c'est la stratégie que j'ai choisie, la rendant sensible aux changements de couleur)
  6. Utiliser un seuil sur le delta et supprimer le bruit par érosion et dilatation
  7. Enfin, recherchez les contours des zones avec un delta - ces zones sont celles où le mouvement s'est produit et l'image actuelle est différente de la moyenne des images précédentes. Nous pouvons également trouver des cadres de délimitation pour ces contours si nécessaire.

J'ai encapsulé le code pour le faire dans la classe python DeltaFinder que vous pouvez trouver dans mon github ici

Étape 7: Détecter des objets à l'aide de TensorFlow

Si vous avez suivi la procédure d'installation de TensorFlow, vous avez déjà vérifié que TensorFlow est installé et fonctionne.

Dans le but de détecter les personnes dans une scène extérieure générale, les modèles pré-entraînés sur l'ensemble de données COCO fonctionnent assez bien - ce qui est exactement le modèle que nous avons téléchargé à la fin de l'installation de TensorFlow. Nous avons juste besoin de l'utiliser pour l'inférence!

Encore une fois, j'ai encapsulé le chargement et l'inférence du modèle dans la classe python TFClassify pour faciliter les choses, que vous pouvez trouver ici.

Étape 8: Configurer un serveur Web sur le Raspberry Pi

Configurer un serveur Web sur le Raspberry Pi
Configurer un serveur Web sur le Raspberry Pi

Le moyen le plus simple d'accéder aux résultats de la détection d'objets est un navigateur Web, nous allons donc configurer un serveur Web sur le Raspberry Pi. Nous pouvons ensuite le configurer pour servir des images à partir d'un répertoire donné.

Il existe plusieurs options pour un framework de serveur Web. J'ai choisi Flacon. Il est extrêmement configurable et facile à étendre avec Python. Puisque l'« échelle » dont nous avons besoin est insignifiante, c'était plus que suffisant.

Je suggère de l'installer dans un nouveau virtualenv, donc:

pi@raspberrypi:~ $ mkvirtualenv webserv

(webserv)pi@raspberrypi: ~ $ pip install Flask

Notez qu'avec une configuration réseau normale, il ne sera accessible que lorsque votre navigateur se trouve sur le même réseau local sans fil que votre Raspberry Pi. Vous pouvez créer une configuration de mappage de port / NAT sur votre routeur Internet pour autoriser l'accès externe - mais je vous le déconseille. Le code que j'ai écrit n'essaie pas de fournir la sécurité dont vous auriez besoin pour autoriser l'accès Internet général à votre Raspberry Pi.

Testez votre installation en suivant le guide de démarrage rapide Flask

Étape 9: Notifications mobiles de Raspberry Pi à l'aide d'IFTTT

Notifications mobiles de Raspberry Pi à l'aide d'IFTTT
Notifications mobiles de Raspberry Pi à l'aide d'IFTTT

Je veux vraiment recevoir des notifications mobiles lorsque des événements se produisent. Dans ce cas, lorsqu'une personne est détectée et que le niveau d'eau baisse. Le moyen le plus simple que j'ai trouvé pour le faire, sans avoir à écrire une application mobile personnalisée, est d'utiliser IFTTT. IFTTT signifie "If This Then That" et permet à de nombreux types d'événements de déclencher de nombreux types d'actions. Dans notre cas, nous nous intéressons au déclencheur Webhook IFTTT Maker. Cela nous permet de déclencher une action IFTTT en faisant une requête HTTP POST au serveur IFTTT avec une clé spéciale attribuée à notre compte, ainsi que des données qui spécifient ce qui s'est passé. L'action que nous prenons peut être aussi simple que de créer une notification sur notre appareil mobile à l'aide de l'application mobile IFTTT, ou quelque chose de plus complexe que cela.

Voici comment procéder:

  1. Créez un compte IFTTT sur ifttt.com
  2. Une fois connecté, accédez à la page des paramètres du service Webhook et entrez l'URL dans votre navigateur (quelque chose comme https://maker.ifttt.com/use/. Cette page Web vous montrera votre clé et l'URL à utiliser pour déclencher des actions.
  3. Créez une applet IFTTT qui générera une notification mobile lorsque le Webhook est déclenché avec les détails de l'événement:

    1. Cliquez sur "Mes applets" puis sur "Nouvelle applet".
    2. Cliquez sur « + ceci » et choisissez « webhooks ». Cliquez sur "Recevoir une demande Web" pour accéder aux détails
    3. Donnez un nom à votre événement, par ex. "PoolEvent" et cliquez sur "Créer un déclencheur"
    4. Cliquez sur "+ça" et choisissez "notifications". Ensuite, choisissez "Envoyer une notification riche depuis l'application IFTTT"
    5. Pour "titre", choisissez quelque chose comme "PoolPi"
    6. Pour « message », écrivez « Piscine détectée: » et cliquez sur « Ajouter un ingrédient ».."Valeur1".
    7. Revenez à l'URL que vous avez copiée à l'étape 2. Il affichera l'URL à utiliser pour appeler votre applet nouvellement créée. Copiez cette URL, en remplaçant l'espace réservé {event} par le nom de l'événement (dans notre exemple PoolEvent)
  4. Téléchargez, installez et connectez-vous à l'application IFTTT pour votre appareil mobile
  5. Exécutez ce script python sur votre Raspberry Pi pour le voir fonctionner (notez que le déclenchement sur votre appareil mobile peut prendre quelques secondes ou minutes):

demandes d'importation

request.post('https://maker.ifttt.com/trigger/PoolEvent/with/key/', json={"value1":"Bonjour Notifications"})

Étape 10: ajoutez un relais HAT au Raspberry Pi et connectez-le à une électrovanne

Ajoutez un relais HAT au Raspberry Pi et connectez-le à une électrovanne
Ajoutez un relais HAT au Raspberry Pi et connectez-le à une électrovanne
Ajoutez un relais HAT au Raspberry Pi et connectez-le à une électrovanne
Ajoutez un relais HAT au Raspberry Pi et connectez-le à une électrovanne
Ajoutez un relais HAT au Raspberry Pi et connectez-le à une électrovanne
Ajoutez un relais HAT au Raspberry Pi et connectez-le à une électrovanne

Avant de procéder à cette étape ÉTEIGNEZ votre Raspberry Pi: ssh dessus et tapez "sudo shutdown now", puis débranchez-le de l'alimentation

Notre objectif est d'allumer et d'éteindre l'alimentation électrique d'une électrovanne - une vanne qui peut ouvrir ou fermer l'alimentation en eau en fonction de l'alimentation 24 V CA qu'elle reçoit d'une alimentation électrique. Les relais sont les composants électriques qui peuvent ouvrir ou fermer un circuit en fonction d'un signal numérique que notre Raspberry Pi peut fournir. Ce que nous faisons ici, c'est connecter un relais à ces broches de signal numérique du Raspberry Pi et lui faire fermer le circuit entre l'alimentation 24 V CA et l'électrovanne.

Les broches du Raspberry Pi pouvant servir d'entrée ou de sortie numérique sont appelées GPIO - General Purpose Input/Output et constituent la rangée de 40 broches sur le côté du Pi. Avec le Pi éteint et insérez fermement le relais HAT dans celui-ci. Le HAT que j'ai choisi contient 3 relais, et nous n'en utiliserons qu'un. Imaginez tout ce que vous pouvez faire avec les deux autres:)

Maintenant, rallumez le Raspberry Pi. La LED rouge "d'alimentation" du relais HAT doit s'allumer, indiquant qu'elle est alimentée par le Pi via le GPIO. Testons que nous pouvons le contrôler: ssh dans le Pi à nouveau, entrez python et tapez:

importer gpiozero

dev = gpiozero. DigitalOutputDevice(26, valeur_initiale = True) dev.off()

Vous devriez entendre un "clic" audible, indiquant que le relais est engagé, et voir une LED s'allumer indiquant que le premier relais est en position connectée. Vous pouvez maintenant taper

dev.on()

Ce qui mettrait le relais en position "off" (impair, je sais…) et exit() de python.

Maintenant, en utilisant des câbles de démarrage et le câble le plus long, connectez le relais entre l'alimentation 24 V et l'électrovanne. Voir le schéma. Enfin, connectez l'électrovanne à un robinet à l'aide des adaptateurs et préparez-vous à tout tester en répétant les commandes ci-dessus - ils doivent ouvrir et fermer l'eau.

Attachez un tuyau à l'électrovanne et enfoncez l'autre extrémité profondément dans la piscine. Vous disposez maintenant d'un système de remplissage de piscine contrôlé par ordinateur, et il est temps de connecter un capteur pour lui indiquer quand s'exécuter.

Étape 11: Connectez un capteur de niveau d'eau

Connecter un capteur de niveau d'eau
Connecter un capteur de niveau d'eau
Connecter un capteur de niveau d'eau
Connecter un capteur de niveau d'eau
Connecter un capteur de niveau d'eau
Connecter un capteur de niveau d'eau
Connecter un capteur de niveau d'eau
Connecter un capteur de niveau d'eau

Un capteur de niveau d'eau est simplement un flotteur qui connecte un circuit électrique lorsque le flotteur est abaissé et le brise lorsqu'il flotte vers le haut. Si vous l'insérez dans la piscine à la bonne hauteur, le flotteur montera lorsque le niveau d'eau sera suffisant mais redescendra lorsqu'il n'y aura pas assez d'eau.

Pour que le Raspberry Pi connaisse l'état du capteur de niveau d'eau, nous avons besoin que le Pi détecte un circuit ouvert ou fermé. Heureusement, c'est très simple: les mêmes connecteurs GPIO que nous utilisons comme sortie numérique pour contrôler les relais peuvent servir d'entrées (d'où le I dans GPIO). Plus précisément, si nous connectons un fil du capteur à +3,3 V sur le connecteur GPIO et l'autre fil du capteur à une broche que nous configurons comme entrée déroulante (ce qui signifie qu'elle sera normalement au niveau de tension GND), cette broche mesurera une tension numérique "haute" ou "marche" uniquement lorsque le capteur de niveau d'eau ferme le circuit - lorsque le niveau d'eau est bas. J'ai utilisé la broche GPIO 16 comme entrée, que j'ai marquée dans l'image ci-dessus.

Le code python pour configurer la broche en entrée et tester son état actuel est:

importer gpiozero

level_input = gpiozero. Button (16) water_low = level_input.is_pressed

Un défi potentiel est que lorsque le capteur change simplement d'état, il oscille rapidement entre les états activé et désactivé. La solution à cela est connue sous le nom de "anti-rebond" et recherche un changement d'état cohérent avant de prendre des mesures. La bibliothèque GPIOZERO a du code pour le faire, mais pour une raison quelconque, ce code n'a pas bien fonctionné pour moi. J'ai écrit une boucle simple pour déclencher des alertes IFTTT lorsqu'un changement d'état cohérent est détecté, que vous pouvez trouver dans mon référentiel ici.

Étape 12: écrivez du code pour tout lier ensemble

Écrire du code pour tout lier ensemble
Écrire du code pour tout lier ensemble

C'est ça. Notre installation est terminée. Vous pouvez écrire votre propre code pour lier les choses ensemble dans un système complet, ou utiliser le code que je fournis. Pour ce faire, créez simplement la structure de répertoires et clonez le référentiel, comme ceci:

mkdir poolpi

cd poolpi git clone

Ensuite, modifiez les fichiers nommés ifttt_url.txt dans les répertoires motion_alert et water_level pour avoir l'URL de votre propre crochet Web IFTTT avec votre clé secrète. Vous pouvez utiliser deux crochets Web différents pour différentes actions.

Enfin, nous voulons que ce code s'exécute automatiquement. Le moyen le plus simple d'y parvenir consiste à utiliser le service Linux crontab. Nous pouvons ajouter quelques lignes de crontab pour deux tâches principales:

  1. Exécutez nos trois programmes: le détecteur d'objets, le capteur de niveau d'eau et le serveur Web à chaque redémarrage
  2. Nettoyez le répertoire de sortie, en supprimant les anciennes images et les anciens fichiers vidéo (j'ai choisi de supprimer les fichiers de plus d'un jour et les images de plus de 7 jours - n'hésitez pas à expérimenter)

Pour ce faire, tapez crontab -e qui ouvrira votre éditeur de texte nano. Ajoutez les lignes suivantes au bas du fichier:

0 1 * * * find /home/pi/poolpi/output -type f -name "*.avi" -mtime +1 -delete

0 2 * * * find /home/pi/poolpi/output -type f -name "*.jpg" -mtime +7 -delete @reboot python3 /home/pi/poolpi/motion_alert/webserv/webserv.py @reboot python3 /home/pi/poolpi/motion_alert/motion_obj_alert.py @reboot python3 /home/pi/poolpi/water_level/test_water_level.py

Enfin, redémarrez votre Raspberry Pi. Il est maintenant prêt à garder votre piscine pleine et sûre.

Faites du bricolage avec la configuration, le code et n'oubliez pas de mettre en vedette mon référentiel github et de commenter l'instructable si vous le trouvez utile. Je cherche toujours à en savoir plus.

Bonne fabrication !

Défi IdO
Défi IdO
Défi IdO
Défi IdO

Finaliste du défi IoT

Conseillé: