Hoe een Raspberry Pi te besturen met WhatsApp
HoeGebruik je de Raspberry Pi voor een project zonder hoofd, zoals een mediaspeler, NAS-server, zaaddoos of beveiligingscamera? Als je dat doet, is je Raspberry Pi waarschijnlijk ergens weggestopt die niet zo gemakkelijk toegankelijk is.
U kunt altijd op afstand inloggen, maar hoe controleert u het in realtime? Hoe weet je of het oververhit raakt? Of is er onvoldoende schijfruimte? In dit project spelen we God en maken we je Raspberry Pi zelfbewust en geven we hem de mogelijkheid om te communiceren.
In meer aardse termen zullen we de sendxmpp-tool op de Raspberry Pi installeren, waarmee het kan communiceren via het populaire XMPP-berichtenprotocol. We zullen dit gebruiken om meldingen via instant messages naar ons te verzenden wanneer een vooraf bepaalde gebeurtenis wordt geactiveerd.
Eerst moet je een XMPP IM-account voor de Raspberry Pi krijgen. Als u nog geen XMPP-server gebruikt, kunt u zich registreren bij een van de openbaar genoteerde XMPP-servers. We gebruiken de Hot Chilli-service, die een uitstekende beoordeling van xmpp.net krijgt en waarmee u een account kunt registreren op de website zelf.
Zodra je een account voor je Raspberry Pi hebt geregistreerd, voeg je het toe als vriend in je normale account, waarop je meldingen wilt ontvangen. Meld u nu aan bij de Raspberry Pi, werk de repo's bij en download vervolgens de tool sendxmpp met sudo apt-get install sendxmpp.
Het is een Perl-script en haalt de vereiste Perl-afhankelijkheden binnen. Wanneer het is geïnstalleerd, maakt u een bestand met de naam .sendxmpprc onder uw thuismap met de referenties van het XMPP-account van de Raspberry Pi, zoals:
$ nano /.sendxmpprc
[email protected] my-secret-password
Vergeet niet om de gebruikersnaam en het wachtwoord te vervangen door de inloggegevens voor het account dat u hebt geregistreerd voor de Raspberry Pi. Na het opslaan van het bestand, kunt u een bericht sturen met:
$ echo "Hallo, dit is Pi!" | sendxmpp -t [email protected]
Met het bovenstaande commando wordt een bericht verzonden van de Raspberry Pi naar de XMPP-ID die is opgegeven met de optie -t. Verwissel de ID in het bovenstaande voorbeeld met uw eigen XMPP-ID. Als u bent aangemeld bij uw gewone IM-account, ontvangt u de begroeting als een standaardbericht van het XMPP-account van de Raspberry Pi.
U kunt ook de uitvoer van Bash-opdrachten doorgeven, zoals:
$ echo "Het is" $ (datum) | sendxmpp -t [email protected]
Met deze opdracht wordt de uitvoer van de datumopdracht verzonden. Hier is nog een voorbeeld dat iets nuttiger is:
$ echo $ (/ opt / vc / bin / vcgencmd measure_temp) | sendxmpp -t
Deze opdracht bevraagt de temperatuursensoren op de Raspberry Pi met behulp van de hulpprogramma's die zijn geïnstalleerd door het raspberrypi-firmwaretools-pakket, dat we vervolgens naar onze vaste IM-gebruiker pipen..
U kunt deze verklaring gebruiken om de Raspberry Pi te controleren en u een melding over IM te sturen wanneer de temperatuur een vooraf ingestelde drempel overschrijdt. Kopieer de inhoud van het bestand status.sh (klik op de link om de code te bekijken). Stel vervolgens een crontab invoer door te rennen crontab -e en het invoeren van de volgende regel:
* / 5 * * * * /status.sh
Hier vragen we de Raspberry Pi om het status.sh-script om de vijf minuten uit te voeren. Vergeet niet om de locatie van het bestand status.sh te wijzigen in de locatie op uw Raspberry Pi.
Dus wat zit er in het script status.sh? Het script slaat de temperatuur van de Raspberry Pi op in een variabele met de naam 'temp' nadat de uitgebreide tekst en het decimaalteken zijn verwijderd, omdat Bash alleen hele getallen kan verwerken.
Het script controleert vervolgens of de waarde groter is dan 40 ° C en als dit het geval is, wordt ons een bericht gestuurd. U kunt dit script uitbreiden om het reilen en zeilen in de Raspberry Pi bij te houden. u kunt het bijvoorbeeld vragen om u waarschuwingen te sturen telkens wanneer het een bepaald bericht in een logbestand vindt, of wanneer de status van een daemon verandert.
Het sendxmpp-script helpt je om de activiteiten op de Raspberry Pi bij te houden - je kunt er echter niet op reageren zonder je aan te melden bij de Raspberry Pi. Maar wat als dit niet mogelijk is?
Wat als u een temperatuurwaarschuwing krijgt van de Raspberry Pi die uw huis bewaakt terwijl u op reis bent? Zou het niet geweldig zijn als je de Raspberry Pi via berichten ook zou kunnen besturen?