Ручная установка
Ручная установка и конфигурирование WEGA Server
Первое что делаем это обновляем систему до последнего состояния:
# эта команда повышает права в консоли для выполнения всех остальных дейтсвий
sudo su
apt update
apt dist-upgrade
После обновления выполняем перезагруку командой reboot
Подготовка компонентов
Установка необходимых пакетов для работы WEGA server
apt install lamp-server^ php-curl gnuplot-nox curl
Настройка базы данных
Задаем мастер пароль для MYSQL
, который позволит создавать новые базы
mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD_HERE';
FLUSH PRIVILEGES;
SET GLOBAL log_bin_trust_function_creators = 1;
quit;
Для корректной работы необходимо добавить в конец mysqld.cnf
дополнительный параметр:
echo "log-bin-trust-function-creators = 1" >> /etc/mysql/mysql.conf.d/mysqld.cnf
Настройка WEGA
WEGA-GUI
- это непосредственно графическая среда с отображением параметров и графиков устройств.
По умолчанию она доступна по адресу: http://WEGA_SERVER_IP/wega
Настройка WEGA GUI
Загрузка последней версии проекта WEGA
apt install git
cd /var
git clone https://github.com/WEGA-project/WEGA.git
chown www-data:www-data -R /var/WEGA
Настройка web сервера
ln -s /var/WEGA/apache/WEGA.conf /etc/apache2/conf-enabled/
ln -s /var/WEGA/apache/wega-api.conf /etc/apache2/conf-enabled/
/etc/init.d/apache2 restart
Настройка авторизации для доступа к WEB консоли
- Удаляем доступ без авторизации (если был настроен):
rm /etc/apache2/conf-enabled/WEGA.conf
- Создаем пользователя и пароль:
htpasswd -c /etc/apache2/.htpasswd username
где username это логин - Подключаем конфигурацию требующую авторизацию для доступа к страничке
ln -s /var/WEGA/apache/WEGA-auth.conf /etc/apache2/conf-enabled/
- Перезапускаем web сервер
/etc/init.d/apache2 restart
Настройка доступа сервера WEGA
к базе данных
cp /var/WEGA/example.db.php /var/WEGA/db.php
nano /var/WEGA/db.php
Настройка WEGA-API
WEGA-API
- отвечает за получение данных от контроллеров сбора показаний сенсоров. Контроллеры подключаются к ней и передают измеренные значения.
Каждому контроллеру соответствует свой файл api в котором указана база для записи данных и параметры подключения к ней.
Настраиваем подключение к базе данных для WEGA-API
Отредактируем файл примера:
указываем параметры подключения к базе для записи данных.
Создадим файл доступа к wega-api из файла примера:
cp /var/WEGA/example/wega-api/wegabox.php.example /var/WEGA/wega-api/wegabox.php
nano /var/WEGA/wega-api/wegabox.php
⚠️ ВАЖНО: Один ключ = один api. Много устройств могут использовать один api, но можно создавать много api для разных устройств. ⚠️
Проверка API post
Выполним в браузере:
http://WEGA_SERVER_IP/wega-api/wegabox.php?auth=adab637320e5c47624cdd15169276981&db=esp32wega&RootTemp=25&AirTemp=25&AirHum=50
где
* ip-address-server
это адрес сервера
-
auth=adab637320e5c47624cdd15169276981
код доступа кapi
(должен быть задан в файле/var/WEGA/wega-api/wegabox.php
) -
db=esp32wega
имя в базы данных для записи(для каждого модуляESP
должна быть своя база данных)
Это действие создаст базу даных с таблицей sens
и внесет тестовый набор сеносоров как будто все они показывают значение единица.
Войдем в интерфейс WEGA
http://ip-address-server/wega
выбираем анализ -> таблица значений
.
Мы должны увидить запись с меткой времени и единицами в полях значений.
Параметры обработки сенсоров расположены в каталоге:
#имя вашего конфиг файла и именем базы данных для вашей гидропонной системы
cd /var/WEGA/wegagui/config
cp example/example.conf.php esp32wega.conf.php
nano esp32wega.conf.php
Если у вас больше чем один модуль WEGA-ESP32
, то вам не обходимо создать новый конфиг файл и так для каждого модуля WEGA-ESP32
Ниже можно видеть как создать еще один конфиг файл для второго модуля WEGA-ESP32
#имя вашего конфиг файла и именем базы данных для вашей гидропонной системы
cd /var/WEGA/wegagui/config
cp example/example.conf.php mainNFT.conf.php
nano mainNFT.conf.php
Подключение погодного модуля OWM-LOG
Он нужен для получения данных о текущей погоде и ее логирования с последующим включением в состав графиков wega.
* Регистрируемся на сервисе и создаем api ключ на этой странице: https://home.openweathermap.org/api_keys
* Найти ближайшую точку можно на карте: https://openweathermap.org/weathermap
Установка
apt install curl jq
-
Создадим скрипт загрузки погоды, незабыв указать свой город и ключ в поля
sity
,apikey
nano /usr/bin/owm-log
-
Добавим
#!/bin/bash
sity="Khabarovsk,ru"
apikey="XXXXXXXXXXXXX"
wegaapikey="ХХХХХХХХХХХХ"
curl "http://api.openweathermap.org/data/2.5/weather?q=$sity&appid=$apikey" > /run/shm/owm
sdate=`date '+%Y-%m-%d %H:%M:%S'`
hum=`jq -r ".main.humidity" /run/shm/owm`
pressure=`jq -r ".main.pressure" /run/shm/owm`
temp=`jq -r ".main.temp" /run/shm/owm|awk -F ":" '{print $1-273.15}'`
clouds=`jq -r ".clouds.all" /run/shm/owm`
echo "$sdate;$temp;$hum;$pressure;$clouds" >> /var/log/sensors/owm.log
curl `echo "http://127.0.0.1/wega-api/wegabox.php?db=owm&auth=$wegaapikey&temp=$temp&hum=$hum&pressure=$pressure&clouds=$clouds" | sed -e s/,/./g`
-
Делаем скрипт исполняемым и добавляем папку для логов
chmod +x /usr/bin/owm-log mkdir /var/log/sensors
-
Проверяем
owm-log cat /var/log/sensors/owm.log
Если все прошло успешно в файл запишется текущее состояние погоды
-
Назначим выполнение загрузки погоды по расписанию
-
Откроем файл
nano /etc/crontab
-
И добавим туда в конец строку
*/15 * * * * root owm-log
Раз в 15 минут файл с погодой будет пополняться.