• Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal

Уроки

Sign in to follow this  
Followers 0
  • entries
    10
  • comments
    14
  • views
    27,011

Contributors to this blog

About this blog

Entries in this blog

Админ

Добрый день, уважаемые форумчане.

В этой статье я постараюсь подробно и понятно описать процесс подключения и настройки миникомпьютера Omega 2. И так, начнем.

В уроке я использовал следующие "ингредиенты":

  • Omega 2 (можно использовать и Omega 2+)
  • Платформа Power Dock (можно использовать Expansion Dock или Mini Dock)
  • Кабель USB - микро USB

omega-2-1.jpg

В принципе, док-станцию (Power Dock, Expansion Dock и Mini Dock) можно не использовать, но тогда всю коммутацию придется осуществлять не с помощью удобного USB-кабеля, а с помощью пайки непосредственно к контактам Омеги. Прошу заметить, что в отличии от док-станции, у самой Омеги расстояние между пинами не стандартные 2.54 мм, а меньше.

Приступаем к подключению. Вставляем модуль Omega 2 в док-станцию, кабель одним концом в микро-USB разъем Power Dock, другим в USB-порт компьютера.

IMG_20170614_204254.jpg

Должны замерцать 4 белых светодиода. Для включения Омеги измените положение микро-переключателя в правой части док-станции, после чего должен загореться синий светодиод на платформе и замигать светодиод на самом модуле Омега.

Примерно через пару минут светодиод на модуле перестать мигать и будет гореть постоянно, это говорит о готовности Омеги к работе. ПОСЛЕ этого на компьютере посмотрите видимые сети Wi-Fi, там должен появиться новая с названием "Omega-XXXX", где XXX - это последние 4 цифры MAC-адреса вашей Омеги (указан на корпусе модуля).

5cd3531466.jpg

Нажимаем "Подключиться", введя стандартный пароль "12345678". Если подключились - радуйтесь, вы установили первый контакт с Omega 2 :)

Далее открываем браузер и переходим по адресу: http://192.168.3.1 Должно появиться что-то такое:

3093.jpg

 

Клацаем "Start". В следующем окне вводим логин root и пароль onioneer. В следующем окне предстоит указать параметры Wi-Fi точки доступа, из которой наша Омега будет "подсасывать" интернет, это может быть, к примеру, роутер или смартфон с возможностью создавать точку доступа.


3094.jpg


Нажимаем "Configure WiFi" и Omega начнет пытаться подсоединиться к вашей точке доступа. После успешного подключения, в новом окне вам будет предложено зарегистрироваться в облачном сервисе Onion, этот шаг предлагаю добросовестно пропустить, нажав "Skip Step". Далее, оставив галочку "Install Console", нажимаем кнопку "Install Console".
В следующем окне будет отображаться процесс установки консоли, после установки вы должны увидеть что-то такое:


3095.jpg


Если вдруг с английским у вас проблемы :) то переведу, что Омега просит вас обновить страницу. Обновляем страницу.


3096.jpg


Здесь вводим все те же логин root и пароль onioneer.
И перед нами долгожданная консоль управления Омегой!


3097.jpg


Надеюсь, что было понятно и у вас все получилось. О работе с консолью вы можете прочитать в следующей статье 2. Работа с консолью Omega 2

Админ

Приветствую посетителей форума Omega-2.ru!
Сегодня хотел бы рассказать об очень важном моменте при использовании Омеги - расширение ее Flash-памяти.
Сразу Вам скажу, что если Вы хотите поковыряться с Омегой, установить различные пакеты, интерпретаторы языков и т.д. то Вам однозначно понадобится увеличить память с помощью USB-накопителя (в простонародье "флешки") либо MicroSD-карты (только для Omega2+). Тем более, что сделать это не сложно и, слава прогрессу, по деньгам это обойдется не дорого.

Внимание! После проведения нижеописанных процедур ваш накопитель будет отформатирован (формат ext4), и соответственно все данных на нем будут удалены.
И так приступим. 

Для начала убедитесь, что версия установленного программного обеспечения (Firmware)  не ниже 0.1.9 (b149), проверить это можно в настройках в консоли. Убедившись, подключаем флешку в USB-порт, либо MicroSD карту в соответствующий слот.

usb-plugged-in.jpg

Далее надо понадобится использование Терминала (Terminal) и Редактора (Editor), если Вы не знаете,что это - читайте урок 3. Знакомство с Терминалом и Редактором Omega 2.  И так, открываем Терминал, авторизуемся, затем последовательно вводим команды:

opkg update

Данная команда скачивает список пакетов, которые могут быть установлены. Рекомендуется всегда выполнять эту команду перед установкой пакета и других манипуляциях с пакетами.

opkg install e2fsprogs

Данная команда устанавливает 3 необходимых пакета: kmod-usb-storage-extras, e2fsprogs и kmod-fs-ext4

По умолчанию, устройство монтируется по адресу:

  • USB: /tmp/mounts/USB-A1
  • MicroSD: /tmp/mounts/SD-P1

Демонтируем накопитель, с помощью команды umount, например:

umount USB-A1

Обратите внимание на написание команды: НЕ uNmount, как я по началу писал, и не понимал почему не работает :) Если же Омега говорит что не находит устройство, то просто пропустите шаг.  Теперь Omega 2 должна стать готовой к форматированию.

С помощью Редактора (Editor) заходим в каталог /dev и узнаем как называется наш накопитель, по умолчанию это:

  • USB: sda1
  • MicroSD: mmcblk0p1

Выполняем следующую команду с использованием названия накопителя, например:

mkfs.ext4 /dev/sda1

Если спросит уверены ли мы, то нажимаем y для продолжения.

В случае с USB-флешкой в терминале должна появиться примерно следующая информация:

root@Omega-7ADD:/tmp/mounts# mkfs.ext4 /dev/sda1
mke2fs 1.43.3 (04-Sep-2016)
/dev/sda1 contains a vfat file system
Proceed anyway? (y,n) y
Creating filesystem with 3784448 4k blocks and 946560 inodes
Filesystem UUID: f5ca350a-d8e2-4334-8aa2-ee17d623c444
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

Если у вас появилось что-то похожее, то последовательно вводим следующие команды (пример для USB-накопителя):

mkdir /mnt/sda1

Команда создает папку sda1 в каталоге /mnt

mount /dev/sda1 /mnt/sda1

Эта команда монтирует наш накопитель по адресу нашей новой папки (пример для USB-накопителя).

После чего выполняем команду по переносу каталога /overlay на накопитель (пример для USB-накопителя):

mount /dev/sda1 /mnt/ ; tar -C /overlay -cvf - . | tar -C /mnt/ -xf - ; umount /mnt/

Если выдаст какие-то страшные ошибки, не обращайте внимание..

Теперь делаем монтирование флешки автоматическим при запуске Омеги:

opkg update
opkg install block-mount
block detect > /etc/config/fstab

После этого с помощью Редактора (Editor)  открываем файл /etc/config/fstab и редактируем следующие строки:

option  target  '/mnt/<device name>'

на

option target '/overlay'

затем

option  enabled '0'

на

option  enabled '1'

Сохраняем файл и выполняем команду:

reboot

Если вы все сделали правильно, то можете смело задать команду в терминале и с радостью наблюдать, как увеличилось ваше файловое пространство!

df -h

dddd.JPG

pivot-overlay-02.jpg

Админ

Приветствую посетителей форума Omega-2.ru!

Эта небольшая статья предназначена для разъяснения, что такое консоль Omega 2, для чего она нужна и как с ней работать.

Внимание! Последняя прошивка Omega2 (внешняя оболочка) отличается от той, что была на момент написания статьи.

В уроке используются следующие компоненты:

  • Omega 2 (можно использовать и Omega 2+)
  • Платформа Power Dock (можно использовать Expansion Dock или Mini Dock)
  • Кабель USB - микро USB
  • Макетка (не обязательно)
  • Резистор 1 КОм (не обязательно)
  • Светодиод (не обязательно)

IMG_20170614_201557.jpg

Консоль представляет собой некую оболочку Линукса, предназначенную для управления Омегой. Чтобы в нее попасть перейдите в вашем браузере по адресу: http://192.168.3.1 , заранее подключившись к Omega2 по Wi-Fi (если вы не знаете, как это сделать, прочитайте урок 1. Подключение и настройка Omega 2).

В появившемся окне, введя логин root и пароль onioneer, попадаем в консоль.

3097.jpg

И так, что мы здесь видим:

  • GPIO Tool - управление Input/Output контактами Омеги

Данный раздел позволяет выбирать назначение I/O контактов на вход или выход, для выходных контактов можно сразу установить значение логической единицы или нуля (пример в конце статьи).

101.jpg

  • OLED Control - управление модулем дисплея

Здесь можно указать текст или изображение для индикации.

102.jpg

  • Terminal - терминал

Терминал является основным средством для отправки команд  операционной системе Linux. Для входа используется логин и пароль (стандартные логин root и пароль onioneer)

Встроенный терминал Omega2 не очень удобен, рекомендуем использовать программу WinSCP. Инструкция здесь: 

 

103.jpg

  • Settings - настройки

В данном разделе есть несколько подразделов, в которых можно посмотреть статус Омеги, изменить ее имя, логин, пароль, настройки Wi-Fi, обновить консоль до последней версии, сбросить настройки до заводских и другие возможности.

104.jpg

  • Editor - файловый менеджер и редактор файлов

Встроенный файловый менеджер Omega2 не очень удобен, рекомендуем использовать программу WinSCP. Инструкция здесь: http://omega-2.ru/blogs/entry/21-8-программа-winscp-удобный-проводник-и-терминал-для-omega2/ 

105.jpg

  • Webcam - приложение для отображения картинки с WEB-камеры

Веб-камеры для проведения эксперимента, к сожалению, не было, поэтому поверим на слово :) 

  • Relay Control - управление модулем реле

Нажатием на кнопки R1 и R2 коммутирует/раскоммутирует реле 1 и реле 2

106.jpg

  • PWM Control - управление модулем сервопривода

107.jpg

Как обещал, под конец немного практики. Соберем простенькую схему:

110-1.jpg

Заходим в раздел GPIO Tool, нажимаем на иконку контакта №3, затем в поле Direction выбираем Output, нажимаем кнопку Sync, а после параметр Value выбираем 1.

111.jpg

Этими действиями мы запрограммировали третий контакт, как контакт для выходного сигнала, и затем выставили на нем логическую единицу (мультиметр показал 2.9 В). Соответственно, светодиод подключенный через резистор 1 КОм (чтобы не сгореть от большого тока) между выводами GND (земля) и логический единицей (около 3 Вольт) загорается. Как только же в консоле Value мы изменяем с 1 на 0, светодиод сразу гаснет.

IMG_20170615_013041.jpg

В этой статье я постарался сделать краткий обзор консоли Omega 2, которая конечно же не отображает огромных возможностей самого модуля Омеги. Надеюсь данный материал был интересен и полезен :)

Админ

Приветствую посетителей форума Omega-2.ru!

Сейчас вкратце объясню, что такое терминал, что такое редактор, зачем они нужны и с чем их едят.

И так, подключаемся к нашей Омеге, через Wi-Fi и заходим в консоль (если Вы не знаете, как это сделать, читайте здесь). В консоли видим несколько иконок, две из которых это Terminal (Терминал) и Editor (редактор).

Начнем с редактора, и для начала кликнем на его иконку. Если Вы делаете это впервые, то редактор предложит установить данное приложение, т.к. по умолчанию оно не установлено. Нажимаем install, затем после установки надо будет обновить страницу браузера. Возможно это придется сделать пару-тройку раз, т.к. иногда по непонятной причине он "подтупливает". После удачной попытки :) должен открыться редактор, выглядит он так:

Onion Editor.jpg

Что же такое этот Editor? По сути этот файл-менеджер содержимого Омеги с возможностью просмотра и редактирования файлов на ней.

Структура вполне себе классическая для Linux-платформ. Давайте попробуем, к примеру, зайти в папку root, кликаем на нее, и видим ее пустое содержимое. Создадим в ней файл Omega.txt, для этого в правом-верхнем углу жмем New File, вводим название нового файла Omega2.txt и подтверждаем.  После этого в левой половинке экрана увидим появившийся файл, который мы только что создали. 

Давайте же что-нибудь в него запишем! Нажимаем на название файла, в основной части экрана откроется закладка редактора Omega.txt. Напишем, к примеру, "Privet!". После этого кликаем в правом-верхнем углу Save, подтверждаем и радуемся. 

Onion Editor 2.jpg

Надеюсь, что основная суть приложения Editor Omega2 Вам стала понятна. Перейдем к терминалу.

Возвращаемся в главное меню консоли и переходим в приложение Terminal. Что мы видим?

Onion Terminal 2.jpg

Мы видим, как бдительная система опять спрашивает нас логин и пароль. Если Вы ничего не меняли, то по умолчанию они root и onioneer соответственно. При вводе пароля символы не отображаются, так что долбить по клавиатуре не надо :) После успешной авторизации пред нами является следующая картина:

Onion Termainal 3.jpg

Это говорит о том, что Omega готова выполнять наши команды. Можете потихоньку привыкать, что все команды в Linux, а точнее в OpenWRT выполняются в терминале. Для эксперимента попробуем создать новую папку papka, для этого напишем:

mkdir /root/papka

И сразу же перенесем в эту папку созданный нами ранее файл Omega.txt:

mv /root/Omega.txt /root/papka/Omega.txt

Onion Terminal 4.jpg

Теперь проверим, как Омега выполнила наши указания. Перейдем опять в Editor, если вы сразу окажитесь в папке root, то выйдите из нее и зайдите обратно, чтобы обновить отображаемое содержимое. Если Вы все сделали правильно, в папке root должна появиться папка papka, а в ней наш файл Omega.txt.

Вот так вот я Вам показал одну тысячную процента возможностей Омеги :) Что же делать дальше? Для начала рекомендую расширить память "флэшкой" или MicroSD-карточкой, т.к. стандартные 16 (32) МБ никуда не годятся. А как это сделать - читайте в следующей статье.

 

Alexey

Здравствуйте.

Это урок по созданию файла подкачки (Swap-файл).

Помог мне с решением основной проблемы мой коллега администратор.

 

Ссылки на первоисточник:

Extending the Omega’s Available Memory

https://docs.onion.io/omega2-docs/extending-omega-memory.html

 

Железо использовал следующее: Omega 2+, Arduino Dock R2, microSD карта 32 GB SanDisc (вроде 4-го класса).

 

Примечание:

Если вы расширяли память Omega 2(+) при помощи USB флэшки, то вам в командах и тексте ниже необходимо заменить все SD-P1 на USB-A1 и все mmcblk0p1 на sda1

 

Итак, после расширения памяти Оmega 2 с помощью MicroSD флешки и настройки автоматического монтирования этой флешки после перезапуска (по статье на этом форме) необходимо создать swap-файл и настроить его автоматическую активацию при загрузке Операционной Системы. Для этого нам сначала нужно определиться с размером swap-файла. Я сделал его размером 1024 Мегабайта. Знаю много, но у меня флешка на 32 GB поэтому я решил, что не повредит :) Вы же можете сделать как в оригинальной статье размером 256 MB.

Теперь нам нужно установить пакеты swap-utils и block-mount, для этого вводим команды:

opkg update
opkg install swap-utils block-mount

После этого создаем сам swap-файл.

ВНИМАНИЕ!!! После ввода описанной ниже команды НИ В КОЕМ СЛУЧАЕ не выключайте вашу Omega 2(+) и не трогайте ее до самого окончания выполнения команды!!!

Если вы хотите сделать файл подкачки размером 1024 MB то в консоль введите следующую команду:

dd if=/dev/zero of=/tmp/mounts/SD-P1/swap.page bs=1M count=1024
  
Если же вы хотите сделать файл подкачки 256 MB, то в консоль введите следующую команду:
dd if=/dev/zero of=/tmp/mounts/SD-P1/swap.page bs=1M count=256

 

Теперь, когда Swap-файл был создан, нам нужно сказать Linux, чтобы он установил этот файл, как область подкачки, для этого вводим в консоль следующую команду:

mkswap /tmp/mounts/SD-P1/swap.page

 

Далее нам необходимо настроить автоматическую активацию файла свопинга (swap-файла) при загрузке Операционной Системы (ОС). Для этого открываем Editor (редактор) Omega 2 (+), находим папку etc, заходим в нее и находим в ней файл rc.local. Открываем файл rc.local и после строк: 

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

(Если у вас нет этих строк, не страшно, главное перед строкой exit 0)

но перед строкой:

exit 0

 

Вносим следующие строки:

### activate the swap file on an external USB drive

sleep 20 

SWAP_FILE="/tmp/mounts/SD-P1/swap.page"

if [ -e "$SWAP_FILE" ]; then
        /usr/sbin/swapon $SWAP_FILE
fi

И сохраняем файл.

 

Примечание: Лично в моем случае, хватает паузы и на 10 секунд (строка sleep 20), но на всякий случай я поставил паузу в 20 секунд. Пауза обязательна, поскольку выяснилось, что без паузы команда на активацию swap-файла проходит быстрее чем Операционная Система успевает монтировать саму флешку (возможно потому, что моя флешка 4-го класса, т.е. медленная).

Теперь необходимо перезагрузить нашу Omega 2(+) для того, чтобы проверить активируется ли swap-файл при загрузке Операционной Системы, для этого вводим в консоль следующую команду:

reboot

 

Какое-то время светодиод на самой Omegа 2(+) будет гореть, потом начнет мигать и после того, как он перестанет мигать и заного начнет гореть, нужно ввести команду:

free

  

После вы получите ответ, что-то вроде этого:

root@Omega-CC39:~# free
             total       used       free     shared    buffers     cached
Mem:        125748      32760      92988         88       5416      10468
-/+ buffers/cache:      16876     108872
Swap:      1048572          0    1048572

 

И если в строке Swap: у вас не три ноля а, что-то вроде этого:

Swap:      1048572          0    1048572

То вы все сделали правильно и файл подкачки (swap-файл) у вас активируется при загрузке.

Don_Arturos

Конфигурация многих устройств из мира интернета вещей состоит из сложных этапов и занимает много времени, а пользователю приходится вплотную изучать документацию.

tGMoodMdWLsy-v3tZyEGQVdUlS4J5Od7emajjD77iaE0T8BPZF61ugYBjDk1rJWxiFdZXiYHp_DKPeJ1nAHBkAOoL3G2GzVEsHchr0wl4vMQqtLY6XCNjbZUg7Ey3cg_-NGFCPfH

Для разработчиков Omega2 простота и удобство работы с компьютером являются приоритетными качествами. Каждая плата Омега2 поставляется с универсальным сценарием конфигурации. Он позволяет выполнить самые необходимые задачи в кратчайшие сроки и без траты времени на изучение документации.

Чтобы получить доступ к скрипту подключите ваш Power Dock с контроллером на борту к компьютеру и запустите командную строку в Omega2.

  • Но сначала убедитесь, что используете самую последнюю версию прошивки. Для этого выполните в командной строке следующую команду:

oupgrade

Внимание: во время обновления сохраняются только папки /root и /etc. Важно сделать резервную копию всех остальных файлов на компьютере.

Запускать скрипт очень просто. Сейчас мы рассмотрим несколько его функций:

  • Часовой пояс системы;

  • Аппаратные контакты PWM;

  • Настройки Ethernet;

  • MJPG Streamer Utility;

  • OnionOS.

Настройка часового пояса системы

Настройка часового пояса, чтобы при запуске команды date выводились время и дата для вашего часового пояса!

  • Чтобы просмотреть список всех доступных часовых поясов и связанных часовых поясов:

onion [OPTIONS] time list
  • Чтобы изменить часовой пояс системы:

onion [OPTIONS] time set <TIMEZONE> <TIMEZONE STRING>
  • Чтобы обновить системное время на основе вашего часового пояса и интернет-серверов NTP:

onion [OPTIONS] time sync

Настройка выводов ШИМ

На Omega2 вы можете настроить определенный номер ШИМ сигнала: в качестве параметров можно установить рабочий цикл и частоту сигнала, либо отключить его.

  • Параметры для ШИМ сигнала задаются следующим образом:

onion [OPTIONS] pwm <CHANNEL> <DUTY CYCLE> <FREQUENCY>

В этом случае применяется следующее:

  • CHANNEL - это номер канала ШИМ - может быть установлен на 0 (GPIO18) или 1 (GPIO19);

  • DUTY CYCLE - это рабочий цикл сигнала ШИМ, заданный в процентах от 0 до 100;

  • FREQUENCY - это частота сигнала ШИМ, выраженная в Гц.

Например, если вы хотите установить коэффициент заполнения 50% и частоту 80 Гц на канале 1 ШИМ (GPIO19), команда будет выглядеть так:

onion pwm 1 50 80
  • Чтобы отключить указанный канал ШИМ:

onion [OPTIONS] pwm <CHANNEL> disable

Настройка Ethernet

Используйте расширение Ethernet для быстрого переключения Omega2 в проводной сети Ethernet между клиентом и хостом .

  • В режиме клиента Omega2 присоединяется к существующей проводной сети и принимает IP-адрес от маршрутизатора сети:

onion [OPTIONS] ethernet client
  • В режиме хоста Omega2 сама становится маршрутизатором сети, который назначает IP-адреса другим устройствам.

onion [OPTIONS] ethernet host

Настройка MJPG Streamer

Данная отвечает за копирование JPEG кадров.Обычно мы используем его для захвата видеокадров с USB-камеры и передачи их по IP. Например, приложение OnionOS Timelapse Camera использует эту утилиту для потоковой передачи видео с камеры, подключенной к Omega2, в браузер.

Используйте скрипт Onion для быстрой настройки mjpg-streamer без необходимости иметь дело непосредственно с файлом конфигурации.

  • Данная функция используется, чтобы восстановить все настройки стримера с приемлемыми параметрами по умолчанию:

onion [OPTIONS] mjpg-streamer setup
  • Изменить  параметры для потока:

onion [OPTIONS] mjpg-streamer <SETTING> <VALUE>

 

  • Настройка параметров для потока поддерживает следующие функции:

resolution <WIDTHxHEIGHT>
fps <number>
  • Чтобы изменить разрешение потока:

onion mjpg-streamer resolution <WIDTHxHEIGHT>
  • Например, чтобы установить разрешение потока до 800 × 600:

onion mjpg-streamer resolution 800x600
  • Чтобы изменить настройку FPS (кадров в секунду) потока:

onion mjpg-streamer fps <number>
  • Например, чтобы установить для потока FPS значение 40:

onion mjpg-streamer fps 40

Работа с настройками OnionOS

Эта функция позволяет вам быстро проверить актуальность текущей версии OnionOS.

  • Для отображения информации о версии Omega2 и OnionOS:

onion [OPTIONS] os version
  • Эта функция становится очень полезной, когда позволяет проверить текущую версию ОС, чтобы узнать, нужно ли запускать функцию обновления, выполнив:

onion os version
  • После вызова функции на экране появится следующее:

=== Version Info ===
Omega firmware: v0.2.2 b200
onion-os - 1.0.5-1
= OnionOS Apps =
oos-app-power-dock-2 - 1.0.1-1
oos-app-sensor-monitor - 1.0.1-1
  • Чтобы обновить OnionOS до последней доступной версии:

onion [OPTIONS] os update
  • Если вы обнаружите, что используете не последнюю версию OnionOS, просто запустите команду обновления:

onion os update

На этом статья подошла к своему логическому завершению. Спасибо за внимание, и удачной компиляции!

 

 

 

Don_Arturos

В то время как сама Omega2 представляет собой полноценный компьютер с памятью, хранилищем и операционной системой, зачастую для взаимодействий с ним требуется дополнительный компьютер, будь то доступ к командной строке или OnionOS. Для выполнения небольших одноразовых действий это вполне нормально, но если вы решите повторить алгоритм действий сразу для нескольких Omega2 (например, единовременное подключение к WiFi), то процесс обещает быть утомительным.

Благодаря новым возможностям автоматического запуска USB-накопителя на Omega2 можно решить эту проблему. Если USB-накопитель содержит правильно настроенный сценарий автоматического запуска, Omega2 автоматически выполнит его сразу после подключения накопителя.

autorun-size_restricted.gif

По сути автозапуск через USB позволяет не использовать компьютер для компиляции определенного кода или скрипта, что повышает гибкость разработки и значительно экономит ваше время.

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

Рассмотрим подробнее как это работает.

Что вам понадобится:

Автозапуск через USB поддерживается на Omega2, начиная с версии v0.2.1 b199 и выше. Чтобы перейти на новейшую прошивку, подключитесь к командной строке и выполните следующую команду:

oupgrade

Предупреждение. Когда выполняется обновление, сохраняются только файлы из папок /root и  /etc. До обновления создайте резервную копию ваших файлов на Omega2, если вы не хотите потерять какие-либо данные.

После обновления ваша Омега будет оборудована для работы с USB-накопителями, настроенными для автоматического запуска!

Настройка USB-накопителя для автоматического запуска

Чтобы настроить USB-накопитель для автоматического запуска, вам просто нужно создать и заполнить два файла на диске: файл учетных данных и файл скрипта автоматического запуска .

Файл учетных данных

Файл учетных данных является механизмом безопасности, гарантирующим, что только авторизованные пользователи могут использовать автоматический запуск USB (задумка в том, чтобы посторонние не могли загружать автозапуском свои скрипты). Файл учетных данных должен быть назван auth.txt и должен находиться в корневом каталоге USB-накопителя. Он должен содержать имя пользователя и пароль для устройства Omega2, с которым будет использоваться USB-накопитель. Для Omega2 с учетными данными по умолчанию, в которых указано имя пользователя “root” и пароль “onioneer”, файл будет выглядеть так:

root
onioneer

Это все! Если файл учетных данных отсутствует или содержит неправильный пароль - сценарий автоматического запуска не будет запущен!

Скрипт автозапуска

Скрипт автоматического запуска - это сценарий, который будет автоматически выполняться при подключении USB-накопителя. Скрипт автозапуска должен быть назван autorun.sh и должен находиться в корневом каталоге USB-накопителя. Что касается содержимого скрипта, то это зависит от вас!

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

Если сценарий автоматического запуска не работает, то проблема может быть в следующем:

  • Файл учетных данных отсутствует или неправильно указан

  • Файл учетных данных содержит неверные учетные данные

  • Скрипт автоматического запуска отсутствует или неправильно указан

  • Сценарий автозапуска имеет синтаксическую ошибку

Автозапуск в действии

Когда USB-накопитель настроен для автоматического запуска, подключите его к USB-порту Omega USB, а Омега сделает всё сама.

autorun_2_restricted.gif

Когда Omega2 обнаруживает наличие сценария автоматического запуска, она начнет мигать светодиодом. Когда скрипт автозапуска полностью загрузится, светодиод вернется к включению. Вот autorun.sh код из приведенного выше примера:

#!/bin/sh

echo "_   _      _ _       _                                         " > /dev/ttyS0
echo "| | | | ___| | | ___ | |                                        " > /dev/ttyS0
echo "| |_| |/ _ \ | |/ _ \| |                                        " > /dev/ttyS0
echo "|  _  |  __/ | | (_) |_|                                        " > /dev/ttyS0
echo "|_| |_|\___|_|_|\___/(_)_         _                         _ _ " > /dev/ttyS0
echo "| | | / ___|| __ )     / \  _   _| |_ ___  _ __ _   _ _ __ | | |" > /dev/ttyS0
echo "| | | \___ \|  _ \    / _ \| | | | __/ _ \| '__| | | | '_ \| | |" > /dev/ttyS0
echo "| |_| |___) | |_) |  / ___ \ |_| | || (_) | |  | |_| | | | |_|_|" > /dev/ttyS0
echo "\___/|____/|____/  /_/   \_\__,_|\__\___/|_|   \__,_|_| |_(_|_)" > /dev/ttyS0
echo "" > /dev/ttyS0

oled-exp -i write "`date`\n\nHello!\nUSB Autorun!!"

Взять его вы также можете на GitHub

Также не забудьте вписать свои учетные данные Omega2 в файл auth.txt .

Применение автозапуска в ваших проектах

Несколько идей о том, как вы можете использовать автозапуск USB для автоматизации взаимодействия с вашими Omega2:

Всем спасибо за внимание и удачной компиляции :)

 

1.gif

Админ

Всем привет!

Сегодня я расскажу, как сделать простую PHP-страницу, закинуть ее на Omega2, и управлять на этой странице подключенным светодиодом (а по сути GPIO пинами).
Для начала обязательно расширьте память омеги, если вы это еще не сделали, инструкция здесь. Также рекомендую установить какой-нибудь файл-менеджер по типу WinSCP, инструкция здесь.

Итак, приступим.

Для чистоты эксперимента, я сделал полный сброс омеги до системных настроек, для этого я через терминал выполнил поочередно три команды (либо можно было зажать на 10 секунд кнопку перезагрузки на док-станции):

firstboot -y
sync
reboot

1. Устанавливаем PHP на Omega2

Я постараюсь написать все понятно, но если что, вот официальная документация: https://docs.onion.io/omega2-docs/installing-and-using-php.html 
Для начала обновляем список пакетов:

opkg update

И за тем устанавливаем необходимые пакеты:

opkg install php7 php7-cgi

2. Настраиваем PHP на Omega2

Отлично, теперь идем и открываем файл /etc/config/uhttpd (еще раз напоминаю про файловый менеджер WinSCP из начала статьи). Добавляем в раздел config uhttpd ‘main’ две строчки, которые содержат адрес расположения PHP-интерпретатора, а также имя страницы по-умолчанию.

list interpreter ".php=/usr/bin/php-cgi"
option index_page 'index.php'

Должно получиться примерно так:

config uhttpd 'main'
    list listen_http '0.0.0.0:80'
    list listen_http '[::]:80'
    list listen_https '0.0.0.0:443'
    list listen_https '[::]:443'
    option redirect_https '1'
    option home '/www'
    option rfc1918_filter '1'
    option max_requests '3'
    option max_connections '100'
    option cert '/etc/uhttpd.crt'
    option key '/etc/uhttpd.key'
    option cgi_prefix '/cgi-bin'
    option script_timeout '60'
    option network_timeout '30'
    option http_keepalive '20'
    option tcp_keepalive '1'
    option ubus_prefix '/ubus'
    list interpreter ".php=/usr/bin/php-cgi"
    option index_page 'index.php'

config cert 'defaults'
    option days '730'
    option bits '2048'
    option country 'ZZ'
    option state 'Somewhere'
    option location 'Unknown'
    option commonname 'LEDE'

Сохраняем файл и перезапускаем WEB-сервер Omega2 через консоль следующей командой:

/etc/init.d/uhttpd restart

3. Тестируем

Если вы знакомы с серверами, хостингами и прочими словами, то знаете, что все файлы хранятся в папке www. Omega2, как маленький сервер не стал исключением. 
Заходим в папку /www , создаем там папку test, и в ней файл index.php cо следующим содержимым:

<?php
  echo "Hello, World!";
?>

Все, теперь открываем браузер, переходим по адресу http://192.168.3.1/test/ и видим следующее:

1.JPG

Если нет, возможно вы допустили ошибку где-то здесь:

  1. Не сделали рестарт сервера (описано выше)
  2. Не туда дописали код в файле uhttpd (надо писать не в конец файла, а в конец первого блока)
  3. По каким-то причинам выставлены не те права доступа на папку test, они должны быть 755 (можно задавать в том же WinSCP либо через терминал)

Поздравляю, PHP успешно установлено и функционирует на вашей омеге. Теперь переходим к практическому применению.

4. Управляем светодиодом через PHP

Для начала соберем супер сложнейшую схему:

2.jpg

Как видите, плюс светодиода подключили на первый GPIO-контакт Omega 2, а минус на землю (GND). Соответственно включать/выключать светодиод мы будем устанавливая логические 0 и 1 на первом пине омеги.

4.1 Создаем Python файл для вкл/выкл светодиода
Если вы ранее не устанавливали питоновский интерпретатор, то сделайте это последовательно введя 3 команды в консоль (посмотреть установленные пакеты можно командой opkg list-installed):

opkg update
opkg install python
opkg install pyOnionGpio

Заходим в папку /root и в ней создаем файл text.py. Пишем в него следующий код:
 

import onionGpio

# define pins
PIN_NUMBER   = 1

# define states
ON      = 1
OFF     = 0

# instantiate gpio objects
NASH_PIN = onionGpio.OnionGpio(PIN_NUMBER)

# initialize to output
status = int(NASH_PIN.getValue())
NASH_PIN.setOutputDirection(status)

# body
if status == 1:
    status = OFF
else:
    status = ON   
NASH_PIN.setValue(status)
print "LED Status = "+str(status) 

Сохраняем файл.

Краткое описание кода: подключаем библиотеку onionGpio, затем устанавливаем 3 константы (номер пина и статусы ON, OFF), обзываем объект третьего пина как NASH_PIN, считываем уровень третьего пина, указываем OUTPUT направление третьего пина (в скобках указано значение по-умолчанию, если не указать будет ошибка). Ну и на последок узнаем статус пина (0 или 1) и устанавливаем обратное.

Распространенные ошибки:

  • Иногда требуется добавлять str() и int(), чтобы преобразовать переменные в текстовые и числовые. Если это не сделать, в чем ошибка, иногда можно не понять. 
  • В языке Python условия и циклы создаются не с помощью символов { } или begin end, а с помощью равных отступов, то есть если внутри IF’а будет одна строка с отступом в 4 пробела, а другая в 1 таб (что визуально выглядит одинаково), то условие работать не будет.

Чтобы проверить код, открываем консоль и пишем:

python /root/test.py

Должно получиться так:

3.JPG

4.2 Создаем HTML и PHP файлы

Отлично, научились включать светодиод скриптом. Теперь открываем папку /www и создаем там 2 файла go.html – по сути оболочка, и knopka.php – файл, который будет связывать «оболочку» и файл test.py. Сразу скажу, что в JavaScript я не силен, поэтому заимствовал код с просторов интернета и подкорректировал под свои нужды.

Содержимое go.html:

<title>Omega2 Control</title>
 
<script type="text/javascript">
function getXmlHttpRequestObject()    // функция создания нового объекта XMLHttpRequest
{    var x;
    if (window.XMLHttpRequest)    // мы в нормальном браузере?
    {    // если в нормальном (IE7+, Firefox,Chrome, Opera, Safari) - создаём объект
        x=new XMLHttpRequest();    // создаём объект XMLHttpRequest
    }
    else x=false;    // если в ненормальном - болт
    return x;    // возвращаем указатель на созданный объект
}
 
// глобальные переменные
var top_http;        // здесь будем хранить указатель на объект XMLHttpRequest
var stat;        // эта переменная нужна чтобы опознать, что ответ получен и обработан
var elements_col;    // количество переменных, которые мы будем запрашивать/получать
 
function handleTop()    // обработчик ответа сервера
{    if(top_http.readyState == 4)    // если запрос выполнен (4 - состояние complete)
    {    if(top_http.status == 200)    // если статус ответа - 200 ( Ok! )
        {    var value = top_http.responseText;    // получаем в переменную текст ответа
            var ArrVal=value.split(';');        // разделяем ответ на массив параметров (параметры пришли через 
            var obj_tag;                // здесь будет указатель на контейнер
            var i=0;                // это просто счётчик
            elements_col=ArrVal[0];    // количество элементов, которые нужно обработать 
                                // первый переданный элемент - это общее кол-во параметров
                                // (пар id/значение), а далее сами пары id/значение
            while(i<elements_col)
            {    // проверяем, есть ли на странице контейнер с нужным id?
                obj_tag=document.getElementById(ArrVal[2*i+1]);
                if(obj_tag)                    // если есть
                {    // меняем текст внутри него на принятый от сервера
                    obj_tag.innerHTML = ArrVal[2*i+2];
                }
                i=i+1;    // проверяем следующий элемент
            }
            stat=1;    // меняем статус (1 - ответ получен и обработан)
        }
    }
}
 
function sendTop()    // В этой функции мы формируем запрос и отправляем его на сервер
{    stat=0;    // сбрасываем статус (0 - ответ не получен и не обработан)
    top_http = getXmlHttpRequestObject();    // вызываем функцию создания объекта XMLHttpRequest
    top_http.onreadystatechange = handleTop;// цепляем на onreadystatechange обработчик ответа
                        // (когда он придёт - автоматически запустится функция handle_top)
    var url='/knopka.php';        // строка запроса (запустить на сервере файл /knopka.php)
 
    top_http.open('GET', url, true);    // настраиваем асинхронный запрос с адресом url
                        // (это url от корня того сервера, с которого загружена страница)
    top_http.setRequestHeader('If-Modified-Since','0');    // добавляем заголовки
    top_http.setRequestHeader('Cache-Control','no-cache');    
    top_http.send(null);    // отправляем пустой запрос (поскольку у GET запроса
                            // нет тела, всё, что нужно, - запихано в url)
}
</script>
 
<!-- добавим глобальный стиль для таблиц и для кнопок -->
<style type="text/css">
    td    {    border: 1px solid blue; 
            padding: 10px; 
        }
    td.button
        {    background-color: #CF12F1;
            box-shadow: 0 -3px #35A76E inset;
        }
    td.button:hover
        {    background-color: #35A76E;
        }
    td.button:active
        {    background-color: #21935A;
            box-shadow: 0 3px #21935A inset;
        }
</style>
 
<table style="border: 1px solid blue">
<tbody>
<tr>
<td class="button" onclick="sendTop()">Omega2 LED Click</td>
<td id="result"></td>
</tr>
</tbody>
</table>

Содержимое knopka.php:

<?php
$result = shell_exec('python /root/test.py');
$answer = "1;result;".$result;    // записываем в переменную строку ответа
echo $answer;    // вывод ответа (он будет отправлен обратно на страницу, с которой вызван скрипт)
?>

Сохраняем файлы.

5. Запуск!

Теперь открываем браузер, переходим по адресу http://192.168.3.1/go.html и молимся :)

После нажатия кнопки должно получиться так:

5.JPG 

4.jpg

Таким образом, go.html при нажатии кнопки вызывает knopka.php, а та в свою очередь инициализирует запуск test.py, получает от нее ответ и передает его обратно в go.html (текст “LED Status = …”). 

Для закрепления результата еще приконектился с телефона:

На этом все! Надеюсь у вас все получилось!

Админ

Всем привет!

Если вы только начинаете работать с Omega2, то хочу с вами поделиться софтиной, которая, по моему мнению, просто обязана стоять вашем на компе. 
Речь идет о WinSCP. Прога позволяет работать с файлами и папками Omega2 как через обычный проводник, открывать их для редактирования и отправлять команды омеге через терминал. Короче говоря, все, что нужно.
Начнем.

1. Скачиваем и устанавливаем WinSCP

Ссылка: https://winscp.net/eng/download.php

2. Запускаем WinSCP

Запускаем программу и заполняем поля для подключения согласно изображению:

1.JPG

Пароль, если вы его не меняли, onioneer.

Нажимаем «Сохранить»:

2.JPG

Cтавим галочку «Запомнить пароль» и нажимаем «ОК». После чего нажимаем «Войти» и происходит авторизация. У вас должно открыться содержимое Omega2.

3. Производим настройки WinSCP

В принципе, на этом можно закончить. Но если вам удобней редактировать файлы в Notepad++ или каком-то другом редакторе, то закончите этот пункт.

Лично я использую для редактирования html, php, css, python и других файлов программу Notepad++ (https://notepad-plus-plus.org/download/v7.6.3.html).  Если вы тоже, то действуйте согласно дальнейшим инструкциям, если нет, то по аналогии.

По умолчанию, WinSCP открывает все файлы через свой редактор. Чтобы автоматом открывались через ваш редактор, надо задать его в настройках.

Во вкладке «Вид» находим «Настройки» и там заходим в раздел «Редакторы».

3.JPG

Обращаю внимание, что «Notepad» здесь это обычный блокнот Windows. Нажимаем «Добавить». Далее выбираем «Внешний редактор» и указываем путь к EXE-шнику  редактора. В моем случае это получилось «"C:\Program Files\Notepad++\notepad++.exe" !.!». Ставим галочку «Загрузка файлов для редактирования только как текстовых». Нажимаем «ОК». Перетаскиваем «Notepad++» на первое место. Должно получиться как-то так:

4.JPG

Можете попробовать создать, открыть, сохранить какой-нибудь файл на омеге.

4. Используем терминал WinSCP.

Ну и напоследок покажу как пользоваться встроенным терминалом. 
Во вкладке «Команды» находим «Открыть терминал»

5.JPG

Для примера, введем команду df –h и узнаем количество свободной памяти Omega 2.

6.JPG

На этом все, надеюсь кому-то помог :)
 

Админ

Всем привет!

В данной статье ничего гениального не написано, но все же у некоторых людей возникают вопросы по подключению Омеги через последовательный порт (USB, а точнее microUSB). Поэтому покажу, как это делается.

Подключение по serial поддерживают только две док-станции: Expansion Dock и Mini Dick, так как на них есть USB-to-Serial микросхема CP1202.

Нам потребуется программа Putty. Качаем ее с официально сайта: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

Берем кабель USB-microUSB и соединяем компьютер с microUSB-портом док-станции. Всегда рекомендую использовать короткий провод (я лично юзаю около 20 см). Включаем Омегу ползунком на док-станции.

В моем случае, на операционке Windows10 драйвера установились автоматически. Если Вам повезло меньше, установите драйвера Silicon Labs CP2102 driver for Windows.

В диспетчере устройств должно появиться новое устройство:

221.PNG

Устанавливаем и запускаем Putty. В настройках подключения выбираем тип подключения Serial, устанавливаем скорость передачи (Speed) равной 115200 и номер COM порта как в диспетчере устройств.

222.PNG

Клацаем кнопку Open.

Открывается терминал. Нажимаем Enter, и видим что-то такое:

223.PNG

Подключение установлено, спасибо за внимание :)

Sign in to follow this  
Followers 0