SCS4 - Laravel върху Raspberry Pi

Основата на една цялостна IoT и управляваща система


Това, което изграждаме, не е просто поредният Laravel сайт и не е просто Raspberry Pi, който изпълнява няколко услуги. Идеята е да създадем цялостна локална и дистанционно достъпна платформа, която обединява уеб приложение, база данни, IoT устройства, MQTT комуникация, LoRa мрежа и управление през единна система.

В основата е Raspberry Pi, върху който работи Linux сървър, Laravel приложение, MySQL база данни и MQTT брокерът Mosquitto. Към него постепенно се добавят физически устройства – ESP8266, LoRa модули, сензори и комуникационни модули.

Така Raspberry Pi се превръща не просто в малък компютър, а в централен сървър и контролен център на цяла IoT система.

Архитектурата може да бъде представена приблизително така:

IoT устройства → LoRa / MQTT / интернет → Raspberry Pi → Laravel → база данни → уеб интерфейс

Raspberry Pi изпълнява ролята на център, в който се събират и обработват данните.

Laravel отговаря за логиката на системата:

  • потребители;
  • организации;
  • роли и права;
  • устройства;
  • типове устройства;
  • параметри;
  • настройки;
  • езици;
  • отчети;
  • статистика;
  • API;
  • комуникация с IoT инфраструктурата.

Mosquitto отговаря за MQTT комуникацията, а LoRa модулите могат да осигурят безжична връзка на голямо разстояние между физическите устройства и централния сървър.

Едно от големите предимства е, че за подобна система не е необходим скъп сървър.

Raspberry Pi може да бъде поставен локално и да работи денонощно с много ниска консумация на електроенергия.

В нашия случай той може да изпълнява едновременно ролите на:

  • уеб сървър;
  • Laravel сървър;
  • база данни;
  • MQTT брокер;
  • IoT gateway;
  • API сървър;
  • локален контролен център;

комуникационен сървър.

Това позволява една малка физическа система да притежава възможности, които обикновено се свързват с много по-голяма сървърна инфраструктура.

Най-важната част от проекта е Laravel.

Вместо всяко устройство да има собствена несвързана логика, Laravel изгражда централизирана система за управление.

Вече сме заложили архитектура с:

  • потребители;
  • организации;
  • роли;
  • права;
  • устройства;
  • типове устройства;
  • параметри на устройствата;
  • настройки;
  • езици;
  • статистика;

логове и отчети.

Това е важно, защото системата може да се разраства без да се налага да се пренаписва от нулата.

Например днес можем да имаме ESP8266 устройство, а утре да добавим ESP32, Arduino, LoRa gateway или напълно различен тип контролер.

Laravel може да ги третира като различни типове устройства, но да ги управлява чрез една обща архитектура.

Една от основните идеи е да имаме централен регистър на всички физически устройства.

В него може да се съхранява:

  • сериен номер;
  • модел;
  • тип устройство;
  • MAC адрес;
  • хардуерна ревизия;
  • версия на firmware;
  • статус;
  • настройки;
  • дата на производство;
  • дата на продажба;
  • дата на регистрация;

последна комуникация.

Това отваря възможност за истинска система за управление на IoT устройства.

Например:

M3-000001
Тип: LoRa Gateway
Firmware: 1.02
Статус: Online
Последна връзка: преди 4 секунди


По този начин вече не работим с абстрактни микроконтролери, а със системно регистрирани устройства.







© Авторски права на scs3.eu Всички права са запазени. Проектиран и разработен от fibonachi@abv.bg 2021 - 2026.