fatkhrus
fatkhrus
32 просмотров0 комментариев0

TeslaCloud на Repka PI: поднимаем своё IoT-облако, подключаем ESP8266 и публикуем SCADA-экран.

В этой статье разберёмся, как установить TeslaCloud на одноплатном компьютере RepkaPI, создать проект для ESP8266, настроить карточки пользователя, интегрировать экран из TeslaSCADA и посмотрим пример ещё одного проекта, работающего с облаком.

Материал подойдёт для:

  • IoT-проектов

  • умного дома

  • учебных лабораторий

  • промышленных проектов

    Архитектура решения #

    В нашем примере будет следующая схема:

    ESP8266 → Wi-Fi → TeslaCloud (Repka PI) → Web-интерфейс
                                       ↓
                               TeslaSCADA Runtime
    

    Одноплатный компьютер выступает в роли локального облачного сервера.

    1. Установка TeslaCloud на Repka PI #

    Подготовка #

    Используется:

    • Repka PI (Repka 3)

    • Repka OS

    • Настроенный интернет

    Работать можно напрямую через консоль или по SSH.

    Автоматическая установка #

    Выполняем:

curl -fsSL https://teslascada.com/Downloads/install.sh | sudo bash

Скрипт автоматически:

  • обновляет систему

  • устанавливает PostgreSQL

  • устанавливает NGINX

  • устанавливает Java

  • разворачивает TeslaCloud

  • создаёт сервис servercloud

  • добавляет автозапуск

    Проверяем:

    systemctl status servercloud
    

    Если всё корректно — статус будет active (running):

Вход в веб-интерфейс #

Переходим в браузере:

http://IP_Repka

Откроется страница входа:

2. Пользователи по умолчанию #

После установки доступны:

Логин Пароль
admin 123456
user 111111

admin #

Имеет расширенные права:

  • управление пользователями

  • информация о сервере

  • лицензирование

  • язык интерфейса

Для IoT-проектов используем пользователя user.

3. Подключаем ESP8266 #

Поддерживаются:

  • Arduino
  • ESP8266
  • ESP32

Используется библиотека:
https://github.com/fatkhrus/TeslaCloud

Данную библиотеку можно загрузить и через Arduino IDE.

Демонстрационный стенд #

Не буду приводить схему стенда. Она достаточно проста и стандартна для подобных проектов. Подключены:

  • DHT11 (температура + влажность)

  • Потенциометр (аналоговый вход)

  • Светодиод (управление из облака)

    Код для ESP8266 #

    #define DEBUG   // Включаем отладочный вывод
    
    #include <DHT.h>         // Библиотека для DHT11
    #include "TagCloud.h"    // Библиотека TeslaCloud
    
    // ===== Wi-Fi =====
    const char* ssid = "SSID";
    const char* password = "password";
    
    // ===== Имена тегов =====
    // Используем иерархию через /
    const char* temperature = "Uly/Home/Temp";
    const char* humidity = "Uly/Home/Humidity";
    const char* analogTag = "Uly/Home/Analog";
    const char* ledTag = "Uly/Home/LED";
    
    // ===== Создаём клиент облака =====
    // user — логин
    // 111111 — пароль
    // 1 — номер проекта
    TeslaCloud cloudclient("user", "111111", 1);
    
    // ===== DHT11 на GPIO14 =====
    DHT dht(14, DHT11);
    
    void setup() {
    
      Serial.begin(115200);   // Запуск Serial
      delay(1000);
    
      // Указываем IP сервера TeslaCloud
      cloudclient.setHost("192.168.0.136");
    
      // Указываем часовой пояс
      cloudclient.setGMT(4);
    
      // Подключаемся к Wi-Fi
      cloudclient.connect(ssid, password);
    
      dht.begin();
    
      // ===== Создаём тег температуры =====
      Tag tagTemp(temperature, dht.readTemperature());
      tagTemp.setDeadband(0.1); // Отправлять только при изменении > 0.1
      cloudclient.addTag(tagTemp);
    
      // ===== Тег влажности =====
      Tag tagHum(humidity, dht.readHumidity());
      tagHum.setDeadband(0.1);
      cloudclient.addTag(tagHum);
    
      // ===== Тег светодиода (управляемый выход) =====
      Tag tagLed(ledTag, 13, OUTPUT);
      cloudclient.addTag(tagLed);
    
      // ===== Аналоговый вход =====
      Tag tagAnalog(analogTag, 0, INPUT, ANALOG_PIN);
      tagAnalog.setScale(0, 1023, 0, 5); // Масштабируем в 0–5 В
      tagAnalog.setDeadband(0.3);
      cloudclient.addTag(tagAnalog);
    }
    
    void loop() {
    
      // Метод run() поддерживает соединение
      if (cloudclient.run()) {
    
        // Читаем датчик
        float t = dht.readTemperature();
        float h = dht.readHumidity();
    
        // Отправляем значения в облако
        cloudclient.writeValue(temperature, t);
        cloudclient.writeValue(humidity, h);
      }
    }
    

    После прошивки ESP8266 данные начинают поступать в облако.

    4. Настраиваем карточки в TeslaCloud #

    Заходим в облако под пользователем user (пароль по умолчанию 111111). Переходим на вкладку Настройки → Теги. Нажимаем Обновить:

    Выбрав соответствующий тег можно посмотреть его свойства и произвести настройку:

    Для каждого тега можно выбрать:

    • тип отображения (график, индикатор, кнопка)

    • диапазон

    • формат

    • цвета

    • и т.д.

    После сохранения карточки появляются на главной странице:

5. Создаём SCADA-экран #

Карточки — это удобно, но главное преимущество платформы — полноценная SCADA-визуализация. Для этого нам понадобится скачать TeslaSCADA IDE и Runtime на данной странице.

Шаг 1. Создаём проект в TeslaSCADA IDE #

В Настройках проекта → вкладка Облако:

  • IP сервера

  • логин

  • пароль

  • Project ID (не обязательно но для примера создания иерархии Uly/Home)

    Шаг 2. Создаём теги #

    Создадим теги и разместим их в папочке Home (для получения иерархии пути Uly/Home):

    Пример настройки тега:

    Шаг 3. Делаем экран #

    Теперь пришло время создать графические объекты, расположить их на экране и осуществить привязку тегов к тем или иным их свойствам. В данном примере я для упрощения выбрал объекты которые напоминают карточки, но в принципе можно создать графику любой сложности, которые позволяет сделать SCADA система:

    Привязываем теги к данным свойствам графических объектов. Например:

    После того как мы привязали все наши теги к графическим объектам можем запустить наш проект в TeslaSCADA Runtime:

Шаг 4. Публикуем экран в облако #

Теперь когда мы откроем Веб браузер мы увидим экран:

Экран подтянулся. Но для того чтобы мы могли его использовать без запущенного TeslaSCADA Runtime. Необходимо зайти в Настройки->Экраны и сохранить и настройки и сам экран:

Теперь можно использовать Экраны и без включенного TeslaSCADA Runtime.

Помимо прочего разработка проекта в TeslaSCADA IDE позволит создать клиенты для подключения к TeslaCloud. Их можно создать в Настройках проекта -> Облако (см. рисунок выше). Можно создать Cloud клиент, MQTT клиент и HTTP клиент. Созданные проекты клиенты можно использовать как десктопных версиях TeslaSCADA Runtime, так и на мобильных версиях Android и iOS (на iOS можно только MQTT и HTTP версию).

6. Использование TeslaCloud на производстве. #

Помимо использования в домашней автоматизации и как IoT проекты, данное решение можно применять на производстве, используя TeslaSCADA Runtime как промежуточное звено между контроллерами и облаком:

Как пример используем проект который подключается к оборудованию по Modbus протоколу и предоставляет данные в TeslaCloud:

Видео версия #

Видео версия: https://rutube.ru/video/84ee51426a0763d509bb6a384e806801/

Итоги #

Мы:

  • Развернули TeslaCloud на Repka PI

  • Подключили ESP8266

  • Настроили веб-карточки

  • Создали полноценный SCADA-экран

  • Опубликовали его в облаке

Получилось компактное локальное IoT-облако, которое масштабируется до промышленного уровня.


0

Комментарии (0)

Для участия в обсуждении Вы должны быть авторизованным пользователем
Темы

Навигация

ВойтиРегистрация