Hur man kontrollerar en Raspberry Pi med WhatsApp
HurAnvändar du Raspberry Pi för ett huvudlöst projekt, som en mediaspelare, NAS-server, frölåda eller säkerhetskamera? Om du gör det är din Raspberry Pi troligen undangömt någonstans, det är inte så lättillgängligt.
Du kan alltid logga in på det på distans, men hur övervakar du det i realtid? Hur vet du om det är överhettning? Eller springer ut på diskutrymme? I det här projektet ska vi spela Gud och göra din Raspberry Pi självmedveten och ge den förmågan att kommunicera.
På mer jordiska villkor installerar vi sendxmpp-verktyget på Raspberry Pi, vilket gör det möjligt att kommunicera via det populära XMPP-meddelandeprotokollet. Vi kommer att använda detta för att skicka meddelanden till oss via snabbmeddelanden när en förutbestämd händelse utlöses.
Först måste du få ett XMPP IM-konto för Raspberry Pi. Om du inte redan använder en XMPP-server kan du registrera dig hos någon av de publicerade XMPP-servrarna. Vi använder Hot Chilli-tjänsten, som får ett högklassigt säkerhetsbetyg från xmpp.net och låter dig registrera ett konto på webbplatsen själv.
När du har registrerat ett konto för din Raspberry Pi, se till att du lägger till det som en vän på ditt vanliga konto, som du vill få meddelanden om. Logga in nu på Raspberry Pi, uppdatera repos och ladda ner sedan sendxmpp-verktyget med sudo apt-get install sendxmpp.
Det är ett Perl-skript och kommer att dra in de nödvändiga Perl-beroenden. När det är installerat, skapa en fil med namnet .sendxmpprc under din hemkatalog med referenserna till Raspberry Pis XMPP-konto, till exempel:
$ nano /.sendxmpprc
[email protected] mitt hemliga lösenord
Kom ihåg att byta användarnamn och lösenord med inloggningsuppgifter för det konto du registrerade för Raspberry Pi. När du har sparat filen kan du skicka ett meddelande med:
$ echo "Hej, det här är Pi!" | sendxmpp -t [email protected]
Ovanstående kommando skickar ett meddelande från Raspberry Pi till XMPP ID som anges med -t alternativet. Byt ut ID i exemplet ovan med ditt eget XMPP-ID. Om du är inloggad på ditt vanliga chatkonto får du hälsningen som ett vanligt meddelande från Raspberry Pi's XMPP-konto.
Du kan också vidarebefordra produktionen av Bash-kommandon, till exempel:
$ echo "Det är" $ (datum) | sendxmpp -t [email protected]
Detta kommando skickar utgången från datumkommandot. Här är ett annat exempel som är lite mer användbart:
$ echo $ (/ opt / vc / bin / vcgencmd measure_temp) | sendxmpp -t
Detta kommando frågar temperatursensorerna på Raspberry Pi med hjälp av de verktyg som installeras av raspberrypi-firmwaretools-paketet, som vi sedan rör till vår vanliga IM-användare.
Du kan använda detta uttalande för att övervaka Raspberry Pi och skicka en varning över IM när temperaturen korsar ett förinställt tröskelvärde. Kopiera innehållet i filen som heter status.sh (klicka på länken för att se koden). Ställ sedan in en crontab inträde genom att springa crontab -e och ange följande rad:
* / 5 * * * * /status.sh
Här frågar vi Raspberry Pi att köra status.sh-skriptet var femte minut. Kom ihåg att ändra platsen för status.sh-filen till platsen på din Raspberry Pi.
Så vad finns i status.sh-skriptet? Skriptet lagrar temperaturen på Raspberry Pi i en variabel som heter "temp" efter att du har tagit bort den verbala texten och decimalen, eftersom Bash bara kan hantera heltal.
Skriptet kontrollerar då om värdet är större än 40 ° C, och om det är, varnar vi ett meddelande. Du kan förlänga det här skriptet för att hålla reda på hur du går i Raspberry Pi. t.ex. du kan be den att skicka dig varningar närhelst det hittar ett visst meddelande i en loggfil, eller när statusen för en demon ändras.
Sendxmpp-skriptet hjälper dig att hålla reda på aktiviteterna på Raspberry Pi - men du kan inte agera på dem utan att logga in på Raspberry Pi. Men om det inte är möjligt?
Vad händer om du får en temperaturvarning från Raspberry Pi som övervakar ditt hem när du är ute på jobbet? Skulle det inte vara bra om du kan kontrollera Raspberry Pi via meddelanden också?