Vitrobian Crystal IoT gateway z SenseHAT

Vitrobian Crystal z włączonym zasilaniem i nakładką Sense HAT

Czym jest Vitrobian Crystal?

Internet Rzeczy potrzebuje gateway’ów o dużych możliwościach, aby przeprowadzać wyrafinowane operacje. Aby zapewnić bezpieczeństwo połączenia i poprawić operacje kryptograficzne potrzebujemy “Prawdziwego” Generatora Liczb Losowych oraz bezpiecznego modułu do przechowywania danych na platformie. Cechy te są domeną Vitrobian Crystal, który jest dostępny w naszym sklepie. Obsługuje wiele protokołów komunikacyjnych wliczając Ethernet, Wi-Fi, CSMA, GSM i więcej. Jako gateway Internetu Rzeczy posiada wiele interfejsów umożliwiających interakcję ze środowiskiem i monitorowanie stanu systemów CAN bus, MOD bus, PM bus i SCADA. Kolejną cechą tego urządzenia jest możliwość pracy jako autonomiczny serwer multimediów ze wspomaganiem sprzętowym wyświetlania wideo H.264 1080p@24FPS na HDMI. Do developmentu można zastosować Raspberry Pi kompatybilny z wejściem GPIO.  

Standardowe aplikacje

Vitrobian Crystal jest najczęściej używany jako gateway dla Internetu Rzeczy. Może również pracować jako autonomiczne centrum multimedialne albo stacja monitoringu. Ponadto bogaty zestaw interfejsów pozwala na zastosowanie tej platformy jako potężnego urządzenia wykonawczego.

Zaczynajmy

Jako przykład aplikacji dla zastosowań Vitrobian Crystal posłużę się SenseHAT, bogatej w czujniki płytki Raspberry Pi. Przykładowym programem będzie czujnik temperatury HTS221 wraz z wyświetlaczem LED, który wskaże aktualną temperaturę.

Wykaz narzędzi

Żeby uruchomić przykładowy program, będziemy potrzebowali:

  1. Platformy Vitrobian Crystal
  2. Zasilacza
  3. Karty micro SD o pojemności min. 8GB
  4. Kabla Ethernet
  5. Nakładki SenseHAT

Assembly

Flashowanie OS

W pierwszej kolejności należy zaktualizować system operacyjny na Twoim urządzeniu. W tym celu możesz użyć dedykowanego dla Vitrobian customowego OS zbudowanego na Debian. Podepnij kartę SD do komputera (może być potrzebna przejściówka do kart microSD).

Najnowszy, wbudowany obraz Vitrobian możesz pobrać pod tym linkiem.

Następnie zaktualizuj kartę SD za pomocą polecenia dd. Bądź ostrożny, gdyż wybierając niewłaściwe urządzenie możesz uszkodzić dysk twardy. Zazwyczaj karty SD są montowane w systemie Linux w /dev/mmcblkX, gdzie X oznacza numer przejściówki. Tak więc w moim przypadku, użyłem następującej komendy:

bash gzip -cdk vitrobian_0.2.0.img.gz | sudo dd of=/dev/mmcblk0 bs=16M status=progress

Gdy skończysz, włóż kartę microSD we właściwe miejsce na platformie Vitrobian. Następnie podłącz zasilanie, zamontuj SenseHAT i podłącz kabel Ethernet. Po chwili urządzenie zostanie uruchomione i będziesz mógł się zalogować.  

Jeżeli wszystko zostało właściwie podłączone, na matrycy LED powinny wyświetlić się kolory tęczy, jak na poniższym zdjęciu:

Logowanie

Do Vitrobian Crystal możesz zalogować się na dwa sposoby:

  • przez połączenie za pomocą portu szeregowego,
  • przez połączenie za pomocą SSH.

Drugi sposób jest prostszy, tak więc zastosujemy to rozwiązanie. Najpierw musimy sprawdzić lokalny nr IP urządzenia. W tym celu użyjemy komendy:

bash ping crystal.local

Dane wyjściowe powinny być podobne do poniższych:

bash PING crystal.local 
(192.168.4.178) 56(84) bytes of data. 64 bytes from 192.168.4.178
(192.168.4.178): icmp_seq=1 ttl=64 time=0.184 ms 64 bytes from 192.168.4.178
(192.168.4.178): icmp_seq=2 ttl=64 time=0.243 ms 64 bytes from 192.168.4.178
(192.168.4.178): icmp_seq=3 ttl=64 time=0.204 ms 64 bytes from 192.168.4.178

Dla przykładu, jeżeli zastosujesz poniższą komendę w terminalu Linuxa:

ssh user@<vitro-crystal-ip-address>

Otrzymasz domyślne dane logowania:

Login: user
Password: user

Środowisko konfiguracji

Możesz uzyskać dostęp do czujników SenseHat poprzez magistralę I2C bus. A więc w pierwszej kolejności musimy załadować potrzebny moduł kernel.

sudo modprobe i2c-dev

Kolejnym zadaniem jest pobranie instalacji python oraz modułu dostępu do I2C bus. 

sudo apt-get install -y python pip
sudo pip install smbus2

Gdy wykonasz wszystkie powyższe działania, Twoje urządzenie powinno już być gotowe do uruchomienia przykładowego programu python.

Demo

Aby skorzystać z magistrali I2C musimy zaimportować moduł pythona i utworzyć instancję klasy SMBusWrapper. Jako parametr konstrukcyjny przyjmuje szereg I2C.

from smbus2 import SMBusWrapper 
...
with SMBusWrapper(1) as Bus: 
    ...

Korzystanie z SenseHAT wymaga znajomości właściwych adresów urządzenia. Domyślny adres czujnika temperatury HTS221 to 0x5F. Używając modułu smbus2 będziemy w stanie odczytać temperaturę oraz rejestr odpowiednich kalibracji, aby otrzymać dokładną wartość.

T0_OUT_LSB = bus.read_byte_data(0x5F, 0x3C)
T0_OUT_MSB = bus.read_byte_data(0x5F, 0x3D)

Posiadając dane pomiarowe możemy wyświetlić je na matrycy LED, której docelowy adres to 0x46. Jej rejestry zawierają 3 wartości reprezentujące kolory czerwony, zielony i niebieski. Mieszając je możemy wyświetlać różne kolory na wyświetlaczu. Ustawienie jednego LEDa okazuje się być dość kłopotliwe.

pixels = [[0, 1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14, 15], [16, 17, 18, 19, 20, 21, 22, 23]]

def setRGB(bus, number, r, g, b): 
    r %= 48 
    g %= 48 
    b %= 48 
    if number == 0: 
        number = 1 
        index = (number - 1) % 8 
        row = int((number - 1) / 8) 
        bus.write_byte_data(0x46, pixels[0][index]+(row*24), r) 
        bus.write_byte_data(0x46, pixels[1][index]+(row*24), g) 
        bus.write_byte_data(0x46, pixels[2][index]+(row*24), b)

Żeby odpalić program próbny, musisz otworzyć katalog sample i uruchomić sample.py z uprawnieniami administratora.

cd sample
sudo python sample.py

Rezultat

Po uruchomieniu wersji demo, na wyświetlaczu LED powinna wyświetlić się temperatura.

Podsumowanie

Na podstawie tego prostego przykładu pokazałem, że rozpoczęcie przygody z Vitrobian Crystal wcale nie jest trudne. Oparty na Linuxie OS zawiera wszystkie niezbędne narzędzia do budowy własnych zaawansowanych aplikacji IoT bez żadnych utrudnień.

 

W LPN Plant łączymy usługi z zakresu konsultacji, technicznej ekspertyzy oraz efektywności finansowej, aby projektować i wdrażać rozwiązania sieci bezprzewodowych małej mocy dla przedsiębiorstw. Jeżeli poszukujesz programistów dla produktów LoRaWAN, albo jedynie potrzebujesz wsparcia w określonym obszarze Twojego systemu, umów się na spotkanie z naszym ekspertem przez calendly. Jeżeli jesteś zainteresowany tematyką LoRaWAN, zapisz się do naszego newslettera i dziel się treściami na mediach społecznościowych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *