Создание систем автоматизации на основе Василисы

Для создания систем автоматизации необходим системы Василиса с расширенными возможностями. Как её установить смотрите в разделе “Расширенные возможности”.

Работа с микрокомпьютерами.

Микрокомпьютеры семейства Aрдуино (Arduino) весьма популярны среди школьников и любителей электроники и автоматизации. Эти микрокомпьютеры соединяют в себе свойства компьютеров и контроллеров т.е. устройств, способных управлять подключаемыми к ним датчиками и исполнительными устройствами. Таких датчиков и исполнительных устройств (доступных например на Aliexpress) имеются многие тысячи. Это делает микрокомпьютеры семейства Aрдуино чрезвычайно удобными для создания умных игрушек и гаджетов. Системам на их основе посвящено множество образовательных и любительских сайтов.

Приведём два представителя этого семейства:

Arduino Mega Mega2560_WiFi

NodeMcu v3 NodeMCU

А вот типичныe датчики давления, температуры и влажности BME280 и DHT11 которыe могут подключаться к микрокомпьютерам. NodeMCU

Программы для управления микрокомпьютерами (которые называют скетчами) создают с помощью специальной среды разработки Arduino IDE, использующей язык программирования C (произносится “си”). Эта же среда разработки позволяет загружать скетчи в микрокомпьютер, после чего он может работать автономно.

Отдавая должное замечательному проекту Ардуино, нельзя не отметить его недостатки и ограничения, а именно:

Это создаёт естественные ограничения сложности и разумности систем, создаваемых на основе Ардуиноподобных микрокомпьютеров.

Объединение микрокомпьютеров с настольным Windows компьютером в единую систему под управлением Василисы позволяет преодолеть перечисленные ограничения и обрести новые возможности:

Объединить микрокомпьютеры и настольный компьютер в единую систему можно по беспроводной технологии WiFi, используя роутер домашней сети или ч/з USB разъёмы (возможно с использованием USB концентратора), используя последовательный протокол (serial protocol).

Система, включающая 2 микрокомпьютера NodeMcu v3 и два подключённых к ним датчика bme280 и dht11, объединенённённая по технологии WiFi реализуется с помощью скетча Vasilisa\Sketch\Vasilisa_NodeMCU_bme280.ino и скрипта Vasilisa\Scripts\Arduino_udl_bme280_dht11.txt. Система производит опрос датчиков давления, влажности и температуры и отображает эти данные в настольном компьютере.

Пример системы, включающей микрокомпьютеры NodeMcu v3 и Arduimo MEGA (с датчиком bme280 ), которые подключаются к настольному компьютеру через USB разъёмы и USB хаб NodeMCU

Для запуска такой системы предназначен скетч Vasilisa\Sketch\Vasilisa_COM_port.ino и скрипт Vasilisa\Scripts\Arduino_com_port_bme280_dht11.txt.

Скрипт Graphics_Controllers.txt, реализует графический интерфейс “Умный дом”.

SmartHouse

Обратите внимание: картинка интерактивная, т.е. состояним вентилей можно управлять с помощью мышки.

А вот так просто выглядит скрипт, управляющий светодиодным светофором:

array DP[0..8]float=(16,5,4,0,2,14,12,13,15) # номера цифровых пинов D0 - D8 микрокомпьютера NodeMCU 
OK_port = ARD_UDP_Set_Port(10003)            # активизация UDP сервера на компьютере
Devices = ARD_UDP_Broadcast_Command('get_device_name',1000)  # запрос ко всем микрокомпьютерам отозваться и сообщить своё имя и IP
device2 = Array_Row_By_Name(Devices,'NodeMCU_02') # получить IP адрес микрокомпьютера с именем 'NodeMCU_02'

if device2[2] = ''
  stop

repeat
  ARD_UDP_Digital_Write(device2[2],DP[0],1)
  ARD_UDP_Digital_Write(device2[2],DP[1],0)
  ARD_UDP_Digital_Write(device2[2],DP[2],0)
  Sleep(2)
  ARD_UDP_Digital_Write(device2[2],DP[0],0)
  ARD_UDP_Digital_Write(device2[2],DP[1],1)
  ARD_UDP_Digital_Write(device2[2],DP[2],0)
  Sleep(2)
  ARD_UDP_Digital_Write(device2[2],DP[0],0)
  ARD_UDP_Digital_Write(device2[2],DP[1],0)
  ARD_UDP_Digital_Write(device2[2],DP[2],1)
  Sleep(2)
stop

Светофор

Как нетрудно догадаться, функция ARD_UDP_Digital_Write посылает на указанные пины микрокомпьютера (D0, D1 или D2) команду установить напряжение 0 или стандартное напряжение (3В). Контакты светодиодов (R,Y,G) соединяются с помощью макетной платы с пинами микрокомпьютера, маркированными “D0”, “D1” и “D2”. Земля светофора (GND) проводком соединяется с землёй микрокомпьютера.

Пример, который превращает микрокомпьютер NodeMCU ESP8266 (стоимостью $3 на Алиэкспресс) в осциллограф. На аналоговый вход микрокомпьютера A0 подаётся напряжение от 9-вольтного блока питания переменного тока, ослабленное примерно до 2 вольт с помощью потенциометра 10ком. Загружаем в микрокомпьютер скетч Vasilisa_NodeMCU_bme280.ino. Запускаем программу Василиса, загружаем скрипт Arduino_Осциллогаф.txt. Наблюдаем в графической области Василисы верхнюю половину синусоиды, что-то вроде этого:

Осциллограф

Несколько замечаний.

Если у вас нет опыта работы с Ардуино, приобретите комплект, например такой: Starter Kit на базе Arduino UNO и микрокомпьютер nodemcu v3, поскольку Arduino UNO не имеет встроенного WiFi. Не пожалейте потратить несколько дней на уроки для начинающих, которых вы найдёте в интернете великое множество. Для начала запустите скетч, который заставит мигать светодиоды.

При реализации примеров с подключением микрокомпьютеров к локальной сети не забудьте в загружаемых в микрокомпьютер скетчах вносить исправления в строках

const char* deviceName = "NodeMCU_XX"; 
const char* ssid = "atlant-321";  // your network SSID (name)
const char* pass = "12345678";    // your network password

а именно: вписать уникальное имя микрокомпьютера (придуменное вами) и параметры подключения по Wi-Fi к роутеру вашей домашней сети.

Для работы с микрокомпьютером NodeMCU в системе Windows нужно установить соответствующий драйвер. В интернете есть много советов, как это сделать. После установки драйвера программу Arduino IDE нужно настроить на работу с микрокомпьютером NodeMCU (меню Tools –> Board –> NodeMCU 1.0) и установить последовательный порт, который вы можете увидеть в свойствах соответствующего устройства в панели управления в разделе диспетчер устройств (обычно COM3 или COM4).

При использовании других микрокомпьютеров вместо NodeMCU или иных датчиков скетчи нужно модифицировать, а именно, подключать библиотеки, соответствующие датчикам (скачивать из интернета) и вставлять команды, аналогичные командам работы с датчиками BME280 и DHT11.

Изучите в меню Василисы раздел Справка/Функции работы с Arduino.