Comment contrôler un Raspberry Pi avec WhatsApp
CommentUtilisez-vous le Raspberry Pi pour un projet sans tête, tel qu'un lecteur multimédia, un serveur NAS, une boîte de semences ou une caméra de sécurité? Si vous le faites, votre Raspberry Pi est probablement caché dans un endroit difficile d'accès..
Vous pouvez toujours vous y connecter à distance, mais comment le surveiller en temps réel? Comment savez-vous s'il y a surchauffe? Ou manquer d'espace disque? Dans ce projet, nous allons jouer à Dieu et rendre votre Raspberry Pi conscient de lui-même et lui donner la capacité de communiquer..
Plus concrètement, nous installerons l'outil sendxmpp sur le Raspberry Pi, ce qui lui permettra de communiquer via le protocole de messagerie XMPP très répandu. Nous allons utiliser cela pour nous envoyer des notifications via des messages instantanés chaque fois qu'un événement prédéterminé est déclenché.
Tout d'abord, vous devez obtenir un compte de messagerie instantanée XMPP pour le Raspberry Pi. Si vous n'utilisez pas déjà un serveur XMPP, vous pouvez vous inscrire auprès de l'un des serveurs XMPP répertoriés. Nous utilisons le service Hot Chilli, qui obtient une cote de sécurité exceptionnelle de xmpp.net et vous permet de créer un compte sur le site lui-même..
Une fois que vous avez créé un compte pour votre Raspberry Pi, assurez-vous de l'ajouter en tant qu'ami sur votre compte habituel, pour lequel vous souhaitez recevoir des notifications. Connectez-vous maintenant à Raspberry Pi, mettez à jour le dépôt, puis téléchargez l’outil sendxmpp avec sudo apt-get install sendxmpp.
C'est un script Perl qui va intégrer les dépendances requises à Perl. Une fois installé, créez un fichier nommé .sendxmpprc dans votre répertoire de base avec les informations d'identification du compte XMPP du Raspberry Pi, telles que:
$ nano /.sendxmpprc
[email protected] my-secret-password
N'oubliez pas de remplacer le nom d'utilisateur et le mot de passe par les informations d'identification du compte que vous avez enregistré pour Raspberry Pi. Après avoir enregistré le fichier, vous pouvez envoyer un message avec:
$ echo "Salut, c'est Pi!" | sendxmpp -t [email protected]
La commande ci-dessus envoie un message du Raspberry Pi à l'ID XMPP spécifié avec l'option -t. Échangez l'ID de l'exemple ci-dessus avec votre propre ID XMPP. Si vous êtes connecté à votre compte de messagerie instantanée, vous recevrez le message d'accueil sous forme de message normal à partir du compte XMPP du Raspberry Pi..
Vous pouvez également transmettre le résultat des commandes Bash, telles que:
$ echo "It is" $ (date) | sendxmpp -t [email protected]
Cette commande envoie le résultat de la commande date. Voici un autre exemple un peu plus utile:
$ echo $ (/ opt / vc / bin / vcgencmd measure_temp) | sendxmpp -t
Cette commande interroge les capteurs de température sur le Raspberry Pi à l'aide des utilitaires installés par le package raspberrypi-firmwaretools, que nous dirigeons ensuite vers notre utilisateur de messagerie instantanée..
Vous pouvez utiliser cette instruction pour surveiller le Raspberry Pi et vous envoyer une alerte par messagerie instantanée lorsque la température dépasse un seuil prédéfini. Copiez le contenu du fichier appelé status.sh (cliquez sur le lien pour voir le code). Puis mettre un crontab entrée en cours d'exécution crontab -e et en entrant la ligne suivante:
* / 5 * * * * /status.sh
Ici, nous demandons au Raspberry Pi d’exécuter le script status.sh toutes les cinq minutes. N'oubliez pas de modifier l'emplacement du fichier status.sh sur celui de votre Raspberry Pi..
Alors, que trouve-t-on dans le script status.sh? Le script enregistre la température du Raspberry Pi dans une variable nommée "temp" après avoir supprimé le texte détaillé et le nombre décimal, car Bash ne peut gérer que les entiers..
Le script vérifie ensuite si la valeur est supérieure à 40 ° C et, le cas échéant, nous avertit par un message. Vous pouvez étendre ce script pour suivre l'évolution de Raspberry Pi. vous pouvez par exemple lui demander de vous envoyer des alertes chaque fois qu'il trouve un message particulier dans un fichier journal ou lorsque le statut d'un démon change.
Le script sendxmpp vous aide à garder une trace des activités sur le Raspberry Pi. Cependant, vous ne pouvez pas les exécuter sans vous connecter au Raspberry Pi. Mais si ce n'est pas possible?
Que se passe-t-il si le Raspberry Pi vous avertit de la température pendant que vous êtes au travail? Ne serait-il pas formidable de pouvoir également contrôler le Raspberry Pi via des messages??