Monitorowanie Raspberry Pi Poprzez Komunikator Internetowy

Monitorowanie Raspberry Pi Poprzez Komunikator Internetowy

PROJEKTY SOFT Monitorowanie Raspberry Pi poprzez komunikator internetowy Raspberry Pi to świetna platforma do stworzenia np. systemu automatyki ma serca ani talentu (ani czasu) do opraco- domowej. Duża liczba gotowych modułów oraz liczne przykładowe aplika- wywania GUI, wykorzystanie komunikatora cje pozwalają niemal błyskawicznie zestawić dosyć złożony system nadzo- może być zbawieniem. rujący mieszkanie lub dom. Problem pojawia się dopiero na etapie tworze- Który komunikator wybrać? nia interfejsu użytkownika. Umieszczenie w nim wszystkich funkcji oraz Na wstępie warto zdecydować się na któryś wbudowanie mechanizmu powiadomień jest po prostu mocno czasochłon- z dostępnych komunikatorów internetowych. ne. Zamiast tego można swój bezinterfejsowy system wzbogacić o obsługę Wybór nie jest mały, ale jeśli skoncentrować komunikatora internetowego i sterować domem w sposób tekstowy. się na jego uniwersalności, niezawodności lub otwartości oraz dostępności narzędzi dla Raspberry Pi, można go szybko ograniczyć. Na wstępie należy przyznać – sterowanie Natomiast używanie komunikatora inter- Ostateczna decyzja zależy od tego, kto i za urządzeniami za pomocą komend teksto- netowego w aplikacji przemysłowej to po- pomocą jakiego urządzenia będzie łączył się wych to obecnie archaizm, który w komercyj- myłka (z zastrzeżeniem, o którym piszemy z Raspberry Pi. Dobrym wyborem wydaje się nych rozwiązaniach konsumenckich raczej później). Ale dla majsterkowicza, który zna użycie bardzo popularnej usługi WhatsApp, nigdy nie będzie miał już zastosowania. się na elektronice i programowaniu, ale nie które nie tylko dostępna jest prawie na całym Tabela 1. Biblioteki XMPP dostępne w różnych językach Tabela 1. cd. programowania Nazwa Język programowania Nazwa Język programowania jabber.net C# / .net / Mono agsXMPP SDK C# / .net / Mono jabber.py Python Aioxmpp Python JabberLib Tcl AnyEvent::XMPP Perl Jabber Stream Objects (JSO) Java as3xmpp Flash / ActionScript JAXL PHP AXMPP Ada jQuery-XMPP-plugin JavaScript Babbler Java Jreen C++/Qt Blather Ruby JSJaC JavaScript cl-xmpp Lisp Libstrophe C Coversant SoapBox SDK Studio C# / .net / Mono / C++ Libpurple C/C++ dojox.xmpp JavaScript Lightr PHP Dxmpp C++ Loudmouth C Echomine Feridian Java MatriX C# / .net / Mono Eiffel PHP net::XMPP Perl Emite Java node-xmpp JavaScript Escalus Erlang Oajabber C++ Exmpp Erlang Pontarius XMPP Haskell Frabjous JavaScript Pyxmpp Python Gloox C++ pyxmpp2 Python Headstock Python QXmpp C++ Hsxmpp Haskell seesmic-as3-xmpp Flash / ActionScript Hxmpp haXe Sharp.Xmpp C# / .net / Mono Iksemel C Skates Ruby IP*Works Internet Toolkit ActiveX, C++, C#, SleekXMPP Python Iris C++ Slixmpp Python ELEKTRONIKA PRAKTYCZNA 3/2017 47 PROJEKTY SOFT Tabela 1. cd. Tabela 2. Serwery XMPP dla różnych systemów opera- cyjnych Nazwa Język programowania Nazwa Platforma (System operacyjny) Smack Java (Java SE 7 and Android) Apache Vysper Windows / Linux stanza.io JavaScript Citadel Linux strophe.js JavaScript CommuniGate Pro Linux / Mac OS X / Windows StropheCappuccino Objective-J Coversant SoapBox Server Windows Swiften C++ Djabberd Linux Tinder Java Ejabberd Linux / Mac OS X / Solaris / Windows Txmpp C++ IceWarp Linux / Windows Twisted Words Python iChat Server Mac OS X Ubeity C# in.jabberd Linux Verse Lua Isode M-Link Linux / Solaris / Windows XIFF Flash / ActionScript Jabber XCP Linux / Solaris / Windows xmpp-psn Python jabberd 1.x Linux Java / Android / Google Web jaxmpp2 Toolkit jabberd 2.x Linux / *BSD / Solaris / Windows xmpp4js JavaScript Jerry Messenger Linux / Windows XMPP4R Ruby Kwickserver Windows xmpp4r-simple Ruby Metronome IM Linux / Mac OS X Xmppframework Objective C MongooseIM Linux / Mac OS X Xmpphp PHP Openfire Linux / Mac OS X / Solaris / Windows Xmpppy Python Oracle Communications IM Server Linux / Solaris / Windows XMPP-FTW JavaScript Prosody IM Linux / Mac OS X / Windows Z-XMPP JavaScript Psyced Linux / Mac OS X / Windows świecie, ale także oprogramowanie klienc- w aplikacjach In- Siemens OpenScape Linux kie zostało przygotowane na różne systemy ternetu Rzeczy. Tigase Linux / Solaris / Mac OS X / Windows operacyjne, a nawet można z niego korzystać Biblioteki XMPP Vines Linux / Mac OS X przez przeglądarkę internetową. Zaletą jest są dostępne m.in. Wokkel Linux / Solaris / Mac OS X też szyfrowanie komunikacji w trybie „end- w Pythonie, Ja- -to-end”, co oznacza – jeśli wierzyć usługo- vaScripcie, C++, dawcy, że przesyłane wiadomości są czytelne PHP i w Javie, przy czym w wielu przy- python3-dateutil, a w przypadku chęci za- tylko dla nadawcy i adresata, a potencjalni padkach istnieje więcej niż jedno rozwią- pewnienia szyfrowania: protobuf, pycrypto włamywacze musieliby zastosować silne zanie dla danego języka (tabela 1). Wybór i python3-axolotl-curve25519. Jeśli biblioteka maszyny deszyfrujące lub niezłą socjotech- serwerów też jest bardzo duży (tabela 2), ma być obsługiwana z linii komend, należy nikę. Pewnym problemem jest natomiast to, nie mówiąc już o liście gotowych aplikacji też doinstalować argparse, readline i ew. pil- że WhatsApp wymaga aktywnego numeru te- klienckich (tabela 3). low, który pozwala przesyłać obrazy. lefonu do rejestracji urządzenia klienckiego Teoretycznie, po pobraniu obrazu pełnego oraz że jeden numer może być wykorzysty- WhatsApp przez Yowsup Raspbiana instalacja Yowsupa powinna być wany przez maksymalnie jedno urządzenie W niniejszym przykładzie pokażemy, jak naj- prosta. Powinno wystarczyć polecenie pip w danej chwili. To uproszczenie może spra- szybciej podłączyć Raspberry Pi do popular- install yowsup2, ale już w wypadku obrazu wiać pewne trudności, ale w obecnych cza- nego komunikatora, a więc do WhatsAppa. Raspbiana w wersji lite, programu python- sach całkiem łatwo jest choćby na chwilę W dalszej części artykułu pokażemy, jak sko- -pip nie ma domyślnie zainstalowanego. zdobyć numer telefonu, za pomocą którego rzystać z czystego XMPP. Można go doinstalować poleceniem sudo można zarejestrować się w WhatsApp. By obsłużyć WhatsApp, użyjemy otwar- apt-get install python-pip lub gdy chcemy Alternatywnym sposobem będzie użycie tej biblioteki Yowsup w wersji 2.5.0, której korzystać z Pythona 3 (u nas dopiero tak własnego (lub gotowego, bezpłatnego) ser- szczegóły można poznać na GitHubie, pod działało) sudo apt-get install python3-pip. wera XMPP, a więc standardu bazującego adresem https://github.com/tgalal/yowsup. Wraz z programem python-pip doinstaluje na dawniej popularnym Jabberze. Aktualnie Biblioteka Yowsup została napisana w Py- się szereg narzędzi dla Pythona, które też XMPP też wspiera szyfrowanie, a możliwość thonie – i jak chwalą się jej autorzy – po- mogą się przydać. postawienia własnego serwera sprawia, że da służyła m.in. do utworzenia nieoficjalnej Ponadto instalator programu Yowsup2 się w pełni panować nad stanem komunika- aplikacji klienckiej Wazapp na telefon No- kończy działanie poleceniem setup.py in- cji. Co więcej, XMPP jest otwartym standar- kia N9 a także na system operacyjny Black- stall, które wymaga uprawnień roota, by móc dem, opartym na XML-u i sformalizowanym berry 10. Yowsup teoretycznie wymaga Py- zmodyfikować wszystkie potrzebne pliki. przez organizację Internet Engineering Task thona 2.6 lub 3.0 albo ich nowszych wersji, Stąd instalację najlepiej wywołać za pomocą Force. Lata doświadczeń dużych firm spra- przy czym w trakcie naszych testów okazało sudo pip3 install yowsup2. Gdyby instalacja wiły, że XMPP uważa się za sprawdzony się, że działa dopiero z Pythonem 3. Ponadto, nie powiodła się z jakiegoś powodu, można protokół, który można wykorzystać w prze- konieczne jest zainstalowanie dodatko- pobrać źródła programu yowsup i samodziel- myśle i świetnie nadaje się on do zastosowań wych pakietów. Będzie to przede wszystkim nie go skompilować. W tym celu należy: 48 ELEKTRONIKA PRAKTYCZNA 3/2017 Monitorowanie Raspberry Pi poprzez komunikator internetowy Tabela 3. Aplikacje klienckie XMPP dla różnych syste- Tabela 3. cd. mów operacyjnych Nazwa Platforma (System operacyjny) Nazwa Platforma (System operacyjny) Kopete Linux Adium OSX Mcabber Console / Text-Mode Apple Messages OSX Miranda IM Windows AQQ Windows Miranda NG Windows Mobile (Android, iOS) / Linux / OSX / AstraChat Windows Monal IM Mobile (iOS) Beem Mobile (Android) Movim Przeglądarka BitlBee Linux Mozilla Thunderbird Linux / OSX / Windows Mobile (Android, Blackberry (BBOS), OneTeam for iPhone Mobile (iOS) BlueJabb Nokia Symbian S40/S60 i Asha) OneTeam Linux / OSX / Windows Boogie Chat Mobile (iOS) Pidgin Linux / OSX / Windows Buddycloud Mobile / Web / Console Poezio Console / Text-Mode Candy Przeglądarka Profanity Console / Text-Mode ChatSecure Mobile (Android, iOS) Psi+ Linux / OSX / Windows Coccinella Linux / OSX / Windows Psi Linux / OSX / Windows Conversations Mobile (Android) Quiet Internet Pager Windows Converse.js Przeglądarka qutIM Linux / OSX / Windows Coversant SoapBox Linux / Console / Text-Mode / Communicator Windows Salut à Toi Przeglądarka eM Client Windows Sim-IM Linux Empathy Linux Spark Linux / OSX / Windows Finch Console / Text-Mode SparkWeb Przeglądarka Gajim Linux / Windows Swift Linux / OSX / Windows GNU Freetalk Console / Text-Mode Talkonaut Mobile GreenJab IBM i Tigase Messenger Przeglądarka IM+ Mobile Tigase Minichat Przeglądarka Instantbird Linux / OSX / Windows Tkabber Linux / OSX / Windows irssi-xmpp Console / Text-Mode Trillian Windows/ OSX / Mobile / Przeglądarka jabber.el Linux V&V Messenger Windows Jabbim Linux / OSX / Windows Vayusphere Mobile (BlackBerry) JAJC Windows VSTalk Windows Jappix Przeglądarka WTW Windows Jitsi Linux / OSX

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    5 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us