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

Библиотека

Библиотека сайта

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

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

    autorun-size_restricted.gif

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

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

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

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

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

    wUmrDWFACX_tQWIRat9VTmyVffBOAvlmXC0mP-6xae-e-vjMt_EUkL9QL_gqdF7zPY17-b44RRlsISVn6DSwKjgX2ChhDWPY8cZNlyLqmkWimnSpLt08zaenOsCjHC8NcXK6cTTS

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

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

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

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

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

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

    a0Tmb8DvTf0YaiWbur7Rbl-vgEBnsYZ-teZh5yT2txC1jdRJ_jH9n3fAC6NYCUEoIcKheB9IG8nZfbdqf4OSYB6xatOSuc6NMxoyiIgMvg3F3Lqmsgo4X5lXk9dmR7hxmkIqbHSk

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

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

    Скрипт автоматического запуска - это сценарий, который будет автоматически выполняться при подключении 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

  2. Админ
    Последняя запись

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

    1.png

    Из этой книги мы узнаем, как использовать Python, чтобы превратить текст в QR-код и вывести его на OLED Expansion.

    1.jpg

    Получившийся в результате код можно отсканировать, чтобы прочитать закодированный текст. Если это закодированный URL, то большинство считывателей QR-кодов в смартфонах откроет этот URL в браузере. Очень удобно, если у вас сложный URL! 

    Уровень навыков: начинающий

    Необходимое время: 10 минут

    Этот проект основан на коде, который полностью можно найти в хранилище Onion GitHub по этой ссылке

    Что потребуется:

    • Onion Omega2 или Omega2+
    • Любая док-станция Onion, которая поддерживает расширения: Expansion Dock, Power Dock, Arduino Dock
    • Onion OLED Expansion

    1. Подготовим все необходимое

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

    2. Установим необходимые пакеты

    Нам потребуется поддержка для git, Python и модуля Onion OLED Expansion Python. Подключитесь к командной строке Omega и запустите следующую команду:

    opkg update
    opkg install python-light python-codecs pyOledExp git git-http ca-bundle

    3. Скачиваем код 

    Теперь нам нужно скачать код Python из GitHub, который и сделает всю основную работу.  Подключитесь к командной строке Omega и клонируйте проект из GitHub при помощи следующей команды: 

    cd /root
    git clone https://github.com/OnionIoT/oledQrCodeGenerator.git

    4. Запускаем код

    Наконец, мы сможем создать несколько QR-кодов! Перейдите в директорию хранилища:

    cd oledQrCodeGenerator

    И запустите программу. Аргументом к скрипту является текст, который будет закодирован по шаблону QR-кода:

    root@Omega-18C2:~/oledQrCodeGenerator# python main.py 'Wow, my first QR Code'
    > Encoding 21 characters
    > Generated QR Code: 31x31 pixels
    > Doubled QR Code size: 62x62
    > Initializing display
    > Setting display mode to inverted
    > Writing buffer data to display

    В результате, данные будут закодированы и отображены в виде QR-кода на OLED Expansion:

    1.jpg

    Подробнее о программе

    Работа кода, которая остается за кадром:

    1. Кодирование введенного текста в матрицу, представляющую собой QR-код. Размер QR-кода зависит от количества введенного текста
    2. Конвертация матрицы QR-кода в данные, которые можно отобразить на OLED дисплее
    3. Отображение получившейся картинки на OLED дисплее
    • Инициализация дисплея
    • Инвертирование цветов отображения
    • Отображение сгенерированного файла изображения

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

    QR-код, сгенерированный по умолчанию будет кодом версии 3 с низким уровнем коррекции ошибок. Код будет иметь размер 31х31 пикселей. Если количество текста, который нужно закодировать не вписывается в код версии 3, то программа выберет следующую подходящую версию кода. Более подробно узнать о версиях QR-кодов можно на сайте Wikipedia.

    5. Использование кода в качестве модуля Python

    Код oledQrCodeGenerator можно также импортировать как модуль в ваши Python проекты!

    Функция dispQrCode() выполнит все те же действия, что были описаны выше. Небольшой пример, демонстрирующий, как использовать этот модуль:

    import sys
    sys.path.append("/root")
    import oledQrCodeGenerator
    
    print 'Now using the oledQrCodeGenerator'
    oledQrCodeGenerator.dispQrCode('Hello!')
    
    print 'All done!'

    Обратите внимание, что код выше предполагает, что код проекта может быть найден по следующему пути /root/oledQrCodeGenerator.  К sys.path, который Python использует для поиска модулей, которые нужно импортировать, добавляется /root. Если строки sys.path.append("/root") нет, то Python вернет ошибку ImportError: No module named oledQrCodeGenerator, так как он не сможет найти модуль там, где обычно осуществляет поиск.

    Считывание QR кодов

    Совершенно не интересно видеть QR-код и не иметь возможности его прочитать, правда?  Однако не стоит переживать, так как ваш смартфон прекрасно справиться с этой задачей и считает код с OLED:

    • На Android, можно воспользоваться приложениями QR Code Reader и QR Barcode Scanner
    • На iOS: QR Reader App

    Если в форме QR-кода зашифрован большой текст, то телефон может сканировать чуть дольше. Лучше всего здесь действовать методом проб и ошибок: попробуйте подводить телефон к OLED дисплею на разных расстояниях и под разными углами.