Заметки маркетолога: Как поставить Ubuntu на RPI и подключить к Azure IoT Hub

Источник материала: habrahabr.ru

Автор:
Что делает маркетолог, когда его просят рассказать как использовать технологию, а он не может найти инструкцию? Обычно начинает дёргать всех окружающих технарей, искать в интернете или молча ждать чуда, или плакать. Но, эта история про другого маркетолога. Он просто взял и написал инструкцию сам. Приглашаю под кат оценить труды и поделиться своим мнением.


Передаю слово Андрею (@andvis).

Disclaimer:
Коллеги, не претендую на истину в первой инстанции – просто делюсь своим опытом. Возможно он сэкономит кому-то немного сил и времени. И да, в момент написания статьи я первый раз в жизни видел командную строку Linux.
Давайте договоримся, что ниже речь пойдёт про Raspberry Pi 2 Model B. Именно работая с ним были сделаны все снимки экрана.

Дистрибутив Ubuntu Mate можно скачать, например, здесь.
Имея img файл — создаём загрузочную SDCard – для этого я использовал Win32 Disk Imager, который установил на свою Windows 10.

Получившуюся загрузочную карточку вставляем в Raspberry Pi, подключаем клавиатуру, мышь и дисплей. После успешной загрузки видим окна ниже.



Сразу после установки выполняем несколько команд.
sudo update-rc.d ssh enable

sudo service ssh restart

sudo ifconfig – покажет нам сетевые настройки устройства

Важные команды update и upgrade – чтобы обновить систему.
sudo apt-get update

sudo apt-get upgrade

Далее добавим русский язык для клавиатуры.

Вот так можно поменять комбинацию клавиш переключения (я пару минут потратил, пока нашёл этот пункт).

На одном из форумов прочитал, что надо включить I2C: командой sudo raspi-config.
Тут кстати и настройки SSH можно поменять.



Пока нет под рукой датчиков — пробую сделать хоть что-то… Читаю вот эту статью.
Давайте начнём с того, что нам понадобится подписка Azure! Пробную верcию можно получить здесь.
Наши дальнейшие шаги.
Шаг 1.

Шаг 2.

Шаг 3.

Шаг 4.

Итак, вернёмся на устройство! Команда node -v возвращает ошибку на моём RPI.

Устанавливаем Node.js. Для этого вбиваем команду: sudo apt install nodejs-legacy.

Теперь команда node -v возвращает текущую версию.

На всякий случай.

Теперь нужен NPM — устанавливаем командой: sudo apt-get install npm. Команда не быстро, но отработала!

Далее запускаем: sudo npm install -g npm@2.x.

Теперь надо поставить последнюю версию IoT Hub transport package: sudo npm install -g azure-iot-device@latest.

И ещё одна команда: sudo npm install -g azure-iot-device-http@latest.

Теперь надо установить IoT Explorer: sudo npm install -g iothub-explorer@latest.

Следующим шагом запускаем вот такую команду iothub-explorer login "строка подключения".

Далее подключаем устройство: iothub-explorer create muzeyrpi-1 --connection-string. Успешно!

На портале Azure устройство видно.

Копируем на устройство скрипт JS со странички:

var connectionString = '<your device connection string>';
var clientFromConnectionString = require('/usr/lib/node_modules/azure-iot-device-http').clientFromConnectionString;
var client = clientFromConnectionString(connectionString);
var Message = require('/usr/lib/node_modules/azure-iot-device').Message;
var msg = new Message('some data from my device');
var connectCallback = function (err) {
  if (err) {
    console.error('Could not connect: ' + err);
  } else {
    console.log('Client connected');
    var message = new Message('some data from my device');
    client.sendEvent(message, function (err) {
      if (err) console.log(err.toString());
    });
    client.on('message', function (msg) {
      console.log(msg);
      client.complete(msg, function () {
        console.log('completed');
      });
    });
  }
};
client.open(connectCallback);
Сам по себе скрипт не заведётся — надо:

  1. В путях внутри файла надо поменять /usr/lib на /usr/local/lib.
  2. Добавить строку подключения. Причём строку подключения именно к устройству.

Запускается скрипт командой node MyScript.js из папки, где лежит скрипт.

Пробуем ещё раз – на этот раз в Device Explorer (подробнее про него и ссылка на скачивание в статье.

Жмём Enter… :)

Поздравляю – первые сообщения от нашего PRI достигли Azure IoT Hub
Я искренне надеюсь доработать данную инструкцию и сделать её еще более полезной! Например, пройдя вот этот путь (имея на руках датчик BME280 или без оного).
Для того, чтобы вы могли попробовать проделать это упражнение сами, мы с Андреем решили разыграть две штуки Raspberry Pi 3. Их получат первые 2 человека, которые ответят правильно в сообщения сообщества
Microsoft Developer
на вопрос: «На основе какого микроконтроллера была разработана самая ранняя версия Raspberry Pi?»
Общие правила
.

Комментарии

Популярные сообщения

Британская палата лордов отказалась от инициативы принудить Бермуды и другие заморские территории к введению публичного реестра владельцев компаний. Бермуды, уже имеющие реестр бенефициаров, доступ к которому иностранные государства могут получить по запросу, должны были оказаться «под ударом» в результате принятия Поправки 14 к английскому Законопроекту о криминальных финансах (Amendment 14 to the UK Criminal Finance Bill), целью которого является борьба с преступностью и отмыванием денег. Но данное предложение было снято, а вместо него внесено другое: о том, чтобы к июлю 2019 года британские власти отчитались об эффективности обмена информацией о бенефициарах между Великобританией и ее заморскими территориями. Правительство Бермудских островов приветствовало решение Великобритании отказаться от внесения поправки. Министр финансов Боб Ричардс заявил следующее: «Это хороший день для Бермуд. Рад, что победа осталась за нами, хотя, думаю, к этой теме ещё вернутся». Он также добавил: «Хотя Великобритания и заявила о введении у себя собственного публичного списка бенефициаров компаний, она сейчас всего лишь в начале того процесса, который у нас существует уже десятилетия. Для международного бизнеса на Бермудах было бы губительно оказаться единственной страной, имеющей полноценный реестр, и принудительно сделать его публичным. Мало у кого из стран есть подобный реестр. Бермудские острова являются лидером в вопросе информации о бенефициарах и продолжают соответствовать мировым стандартам