Контроллер поставляется собранным, прошитым и готовым к работе, но перед его использованием надо выполнить несколько шагов:
Проверьте наличие следующий позиций в зависимости от комплектации контроллера
Данная операция необходимо если вы самостоятельно хотите перезаписать образ для контроллера.
Операционная система Raspbian записывается образом на SD карту, поэтому все что вам необходимо сделать - это скачать свежую версию операционки с официального сайта и записать на флешку.
Образ ПО контроллера К1
После скачивания вам необходимо записать образ операционной системы на SD карту. Для этого вы можете воспользоваться программой Etcher, которая доступна на Windows и MacOS (etcher.balena.io). Скачайте, установите и запустите Etcher.
В окне программы необходимо выбрать скаченный образ операционной системы в формате *.img, выбрать целевую SD карту и нажать кнопку "Flash!".
Вводите пароль от вашего компьтера и Etcher начинает записывать флешку. После записи он еще раз проверит данные на SD карте. Все это займет примерно 10-15 минут. По завершению вы увидите соответствующее сообщение.
После успешной процедуры записи образа системы необходимо извлечь SD карту из карт-ридера и и можно переходить к следующем шагу!
Если у вас не получилось записать образ на карту памяти с помощью Etcher, тогда вы можете воспользоваться инструкциями:
Подготовка карты памяти на Windows
Подготовка карты памяти на MacOS
После того как вы записали образ операционной системы на SD карту, ее необходимо вставить в держатель SD карты на K1.
Подключите провода питания (напряжение 9-36V) к клеммам контроллера, соблюдая полярность. На плате загорится светодиод – это означает что питание подано.
При подаче питания контроллер включится автоматически, подождите пару минут, пока загружается ОС Linux. В рабочем режиме индикатор контроллера будет мигать зелёным с частотой один раз в секунду.
Подключите кабель к интерфейсу Ethernet 1. По умолчанию на К1 настроен DHCP (автоматическое получение IP адреса).
Уточнить выданный IP адрес можно или через консольное подключение (описание ниже) или в интерфейсе вашего DHCP сервера (роутера).
Так же можно просканировать сеть при помощи Angry IP Scanner или установить Bonjour Print Services (только для Windows), после установки которого ваша плата будет автоматически найдена в сети и доступна по имени edc-k1.local (в MacOS данный метод доступен без установки ПО).
Для подключения консоли необходимо подключить кабель USB Type-C - USB от компьютера в контроллер.
Проверьте подключение можно в диспетчере устройств во вкладке «COM и LPT», порт должен определиться автоматически.
Если в диспетчере устройств не появилась вкладка «COM и LPT» или ее содержание отображается с восклицательным знаком, значит драйвер устройства не установлен. Установите его самостоятельно.
Далее можно подключиться любым терминалом с параметрами 115200 8N1. Например с помощью Putty.
Для подключения к контроллеру достаточно знать номер используемого COM порта, ввести необходимые параметры как в примере ниже и нажать Open.
При первом запуске возникнет предупреждение, его игнорируем (нажимаем "Да"), после чего видим стандартное окно консоли, которое запрашивает у нас логин (k1) и пароль (qweasd1-). Вводим верные данные и получаем доступ.
Узнать текущие IP адреса на контроллере К1 можно выполнив в терминале команду ifconfig
Список доступных интерфейсов:
По умолчанию для eth1 установлен статический IP адрес: ???.???.???.???
На стороне контроллера после указанных выше действий все настройки произведены и теперь можно подключиться к плате удаленно.
Разберем два варианты подключения:
Дистрибутивы Linux включают в себя SSH-клиент по умолчанию, поэтому нам остается только использовать команду ssh. Рассмотрим пример для стандартного имени пользователя (k1), пароля (qweasd1-) и полученного нами IP-адреса. Вводим команду:
ssh pi@192.168.0.102
Далее нам потребуется ввести пароль и после этого мы получим доступ к консоли Raspberry:
Для отключения SSH - команда: exit
В случае если в вашем дистрибутиве нет поддержки SSH необходимо использовать дополнительные инструменты. Используем в качестве SSH-клиента утилиту PuTTY, которую можно скачать по этой ссылке. Устанавливаем и запускаем, в поле Host Name вводим IP-адрес Raspberry и нажимаем Open:
При первом запуске возникнет предупреждение, его игнорируем (нажимаем "Да"), после чего видим стандартное окно консоли, которое запрашивает у нас логин и пароль. Вводим верные данные и получаем доступ:
Посоле успешного подключения к контроллеру необходимо проверить актуальность пакета «K1» в Node-RED. Это можно сделать двумя способами:
Для этого открываем Node-RED в браузере (http://IP-адрес контроллера:1880) и переходим в раздел «Управление палитрой»
В появившемся окне находим пакет node-red-contrib-k1 и проверяем его версию.
Это можно сделать в любом терминале, подключившись к контроллеру, с помощью команды cat /home/k1/node-red-contrib-k1/package.json | grep "version"
Если такого пакета не нашлось или его версия устарела, рекомендуем скачать его. (сылка на яндекс диск с актуальной версией пакета)
Установить пакет на контроллер можно с помощью Bitvise SSH Client.
Устанавливаем и запускаем, в поле Host Name вводим IP-адрес Raspberry, в Username – k1 и нажимаем Log in:
В выпадающем окне вводим пароль и получаем доступ:
Открываем вкладку New SFTP window
В появившемся окне выбираем корректные пути. В окне слева открываем разархивированную папку со скачанным пакетом.
Выбираем все скачанные файлы и нажимаем Upload
После всех манипуляций перезагружаем Node-RED в терминале с помощью команды node-red-restart
и перепроверяем версию.
По умолчанию в К1:
имя пользователя - k1
пароль – qweasd1-
Для безопасности рекомендуется изменить стандартный пароль. Для этого, после подключения по SSH необходимо:
sudo raspi-config
Так же есть вариант с использованием команды passwd
. После ее вызова вводим новый пароль и затем еще раз повторяем его для подтверждения.
Для установки статического IP адреса применяется утилита nmtui
. Для её запуска в терменале необходимо выполнить команду nmtui
или sudo nmtui
если вы используете не пользователя root
Далее откроется окно с главным меню NetworkManager
Чтобы изменить настройки ethernet подключения, необходимо войти в меню Edit a connection
и выбрать необходимое подключения
Выбери необходимое подключение для изменения
Для изменения адреса выбери IPv4 CONFIGURATION
режим Manual
и выбрать Show
укажи Address и Gateway и нажми OK для сохранения
Узнать IP адрес K1 в данный момент можно выполнив в терминале команду ifconfig.
На примере ниже K1 подключен к сети через нижний порт, соответственно используется интерфейс eth1 и его адрес видим на экране – 10.0.0.168.
Каждый раз при подключении к сети устройство получает свой адрес по протоколу DHCP (Dynamic Host Configuration Protocol — протокол динамической настройки узла) - это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP.
Инициализирован этот протокол как на роутере, так и на самом К1. Чтобы сделать присвоение адреса каждый раз к одному и тому же значению нужно изменить настройки DHCP применительно к К1 либо на роутере, либо на самом К1.
Самый простой вариант - зайти в настройки DHCP роутера и назначить статический IP для устройства с определенным MAC-адресом (он также выводится командой ifconfig, параметр ether - различен для разных интерфейсов).
Однако роутеры у всех разные, так что рассмотрим случай настройки DHCP на К1.
Определимся с используемым интерфейсом, их список как раз выдается командой ifconfig:
если для подключения используется Ethernet порт - то это интерфейс eth0
или eth1
, если встроенный Wi-Fi модуль - то это wlan0, если внешний Wi-Fi адаптер, то wlan1 и т.д. Рассмотрим случай с eth1
Далее - IP адрес роутера. Это тот адрес, который вы вбиваете в адресной строке браузера, что попасть в настройки роутера, как правило это 192.168.1.1. Узнать это можно командой route
- это будет значение Gateway (шлюз) в строке, у которой значение Flags равно “UG” (Up Gateway)
Выбираем произвольный IP адрес для К1 - по сути это значение последней цифры в адресе шлюза от 0 до 255, исключая 1 (это сам адрес шлюза) и остальные адреса уже занятые другими устройствами. Если нет возможно или желания смотреть список подключенных устройств (через интерфейс роутера), можно взять число больше 100, допустим это будет адрес 192.168.1.111/24
(24-битная маска подсети)
Все настройки в Линуксе хранятся в текстовых файлах, для DHCP - это файл dhcpcd.conf, который находится в системной папке /etc/. Откроем его в консольном текстовом редакторе nano командой
sudo nano /etc/dhcpcd.conf
Последнее значение - список DNS серверов - это наш роутер и публичный DNS-сервер Google
7. Сохраняем изменения Ctrl + O, выходим из nano Ctrl + X
8. Перезагружаем К1: sudo reboot now
Изменение IP адреса вариант 2
Система готова к настройке и по умолчанию Node-Red находится по адресу http://edc-k1.local:1880/
Получение температуры и напряжения
[ { "id": "9dba36e941e2380f", "type": "tab", "label": "Поток 1", "disabled": false, "info": "", "env": [] }, { "id": "f9c23d23.c8c24", "type": "exec", "z": "9dba36e941e2380f", "command": "vcgencmd measure_temp", "addpay": false, "append": "", "useSpawn": "false", "timer": "", "winHide": false, "oldrc": false, "name": "Raspberry CPU Temperature", "x": 700, "y": 420, "wires": [ [ "a0ad4644.0efbf8" ], [], [] ] }, { "id": "a0ad4644.0efbf8", "type": "function", "z": "9dba36e941e2380f", "name": "Extract CPU Temp", "func": "const re = /^temp=(.*)'C$/gm;\nmsg.payload = Number(msg.payload.replace(re, '$1'));\nreturn msg;", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 990, "y": 580, "wires": [ [ "8317134.cff18f" ] ] }, { "id": "a97d78fc.40c268", "type": "inject", "z": "9dba36e941e2380f", "name": "", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 420, "y": 380, "wires": [ [ "f9c23d23.c8c24", "6975feebac390e72" ] ] }, { "id": "8317134.cff18f", "type": "debug", "z": "9dba36e941e2380f", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "x": 1180, "y": 580, "wires": [] }, { "id": "6975feebac390e72", "type": "exec", "z": "9dba36e941e2380f", "command": "vcgencmd measure_volts usb_pd", "addpay": false, "append": "", "useSpawn": "false", "timer": "", "winHide": false, "oldrc": false, "name": "Raspberry CPU Temperature", "x": 640, "y": 600, "wires": [ [ "47b58ac942b6cf9d" ], [], [] ] }, { "id": "47b58ac942b6cf9d", "type": "function", "z": "9dba36e941e2380f", "name": "Extract CPU Temp", "func": "const re = /^volt=(.*)V$/gm;\nmsg.payload = Number(msg.payload.replace(re, '$1')) / (10 / (100+10));\nreturn msg;", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 930, "y": 760, "wires": [ [ "8317134.cff18f" ] ] } ]
На контроллере К1 для порта Ethernet_1 установлен статический IP адрес ???.???.???.???.
Для начала работы с контроллером необходимо перейти по адресу http://edc-k1.local:1880
динамика k1.local ?
(как узнать - через консоль)
Для корректной работы модуля необходимо установить DNS сервис