Оглавление:

Подключите свой завод к облаку: 10 шагов
Подключите свой завод к облаку: 10 шагов

Видео: Подключите свой завод к облаку: 10 шагов

Видео: Подключите свой завод к облаку: 10 шагов
Видео: Приказ комиссара. Warhammer 40k 2024, Июль
Anonim
Подключите свой завод к облаку
Подключите свой завод к облаку
Подключите свой завод к облаку
Подключите свой завод к облаку
Подключите свой завод к облаку
Подключите свой завод к облаку

В нашем офисе есть кактус, которому не уделяли должного внимания. Поскольку я работаю в ИТ-компании и хотел поэкспериментировать с LoRa, бессерверными решениями и AWS, я назвал нашего кактуса Стивом и подключил его к облаку. Теперь вы можете следить за Стивом практически из любой точки мира, используя веб-страницу, которую я сделал для него: веб-интерфейс Стива.

Запасы

1 кактус / ваше любимое растение

1 Arduino MKR WAN 1300 (магазин Arduino)

Антенна 1868/914 МГц (зависит от вашего местоположения) (Amazon)

1 шлюз LoRa, когда он находится вне зоны действия одного (Amazon)

2 батарейки АА

1 датчик TMP102 (Amazon)

1 датчик влажности почвы (Amazon)

Токопроводящие кабели (Amazon)

паяльник

Держатель батареи (Amazon)

кейс

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

Шаг 1. Печать футляра (необязательно)

Печать футляра (необязательно)
Печать футляра (необязательно)
Печать футляра (необязательно)
Печать футляра (необязательно)

Загрузите этот zip-файл, распакуйте его и распечатайте файлы. В файлах указано необходимое количество товара.

Не стесняйтесь добавлять что-нибудь на крышку, как я.

Я напечатал их, используя высоту слоя 0,2 мм и заполнение 15%.

Крюки можно прикрепить винтами м3.

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

Шаг 2: Подключение

Проводка
Проводка
  • Перед включением Arduino убедитесь, что антенна подключена, включение питания Arduino без антенны может привести к повреждению.
  • Подключите все согласно предоставленной электросхеме.
  • Если вы припаиваете эти провода, убедитесь, что вы не перемыкаете контакты на датчиках или на Arduino!

Шаг 3. Создайте приложение в сети Things Network

  • Перейдите на https://www.thethingsnetwork.org/ и, если у вас еще нет учетной записи, создайте ее.
  • После того, как у вас есть учетная запись и вы вошли в систему, вы можете перейти в консоль (в правом верхнем углу щелкните свое имя пользователя, а затем на консоли).
  • Щелкните по приложениям.
  • Как только страница загрузится, вы сможете нажать «Добавить приложение».
  • Заполните форму и выберите правильный регион внизу. Нажмите на «добавить приложение».
  • Поздравляем, вы только что создали приложение в сети вещей. = D

Шаг 4: Подключение Arduino к сети вещей

Чтобы запрограммировать Arduino, я советую вам использовать онлайн-версию arduino ide, это очень упрощает загрузку необходимой библиотеки.

  • Откройте свое приложение в сети вещей.
  • Должно появиться поле с названием «Устройства», нажмите «Зарегистрировать устройство».
  • вы увидите поле под названием Device Id. это имя, которое вы хотите дать своему датчику. Должен быть еще один, помеченный как Device EUI, это уникальный ключ, который ваш arduino использует для аутентификации.
  • Чтобы получить этот ключ, нам нужно прошить Arduino конкретным скетчем. Эскиз можно найти здесь. Этот эскиз должен запускаться и через серийный монитор должен быть отправлен eui. Скопируйте eui из монитора последовательного порта в поле Device EUI в сети устройств.
  • Нажмите зарегистрироваться.
  • Теперь мы зарегистрировали нашу ардуино в облаке. Пора начинать отправлять сообщения.
  • Вы должны были быть перенаправлены на страницу с названием «Обзор устройства». Здесь вы можете увидеть eui вашего устройства, eui приложения и ключ приложения.
  • Чтобы продолжить, нам нужно прошить финальный скетч на Arduino. Эскиз можно найти здесь.
  • Когда вы откроете эту ссылку, вы увидите, что есть несколько вкладок. Откройте вкладку секреты. Есть 2 ключа, которые вам нужны, от сети вещей к файлу секретов.
  • Как только эти ключи будут заполнены, вы можете прошить Arduino. Он начнет отправлять данные в сеть вещей один раз в час.
  • Если все пойдет правильно, вы сможете увидеть сообщения, поступающие на вкладке «Данные» в сети вещей после сброса arduino (единственная кнопка на плате).

    • Если здесь нет данных, это может означать, что вы не находитесь в зоне действия правильного шлюза LoRa. Вы можете проверить карту со всеми доступными шлюзами на https://thethingsnetwork.org. Одноканальные шлюзы LoRa не будут работать с рекомендованным Arduino.
    • Если вы не находитесь в зоне действия шлюза, вы можете подключить свой собственный шлюз к сети вещей. У этих шлюзов обычно есть неплохие руководства по их подключению. Найдите в списке поставки рекомендуемый шлюз.

Шаг 5: Интерпретация данных в сети вещей

  • Чтобы получить полезные данные из сообщений в сети вещей, нам нужно декодировать байтовый поток.
  • В сети вещей зайдите в свое приложение.
  • Должна быть вкладка с надписью «Форматы полезной нагрузки», щелкните эту вкладку.
  • Рядом расположены 4 кнопки: «декодер», «конвертер», «валидатор», «кодировщик».
  • Щелкните декодер.
  • Вставьте туда следующий код.

function Decoder (bytes, port) {// Декодировать сообщение восходящей связи из буфера // (массива) байтов в объект полей. var stringToDecode = bin2String (байты); var res = stringToDecode.split (""); var temp = res [1]; вар влажный = рез [3]; var bat = res [5]; var decoded = {"температура": температура, "влажность": влажность, "батарея": летучая мышь}; возврат декодирован; } функция bin2String (массив) {var result = ""; for (var i = 0; i <array.length; ++ i) {результат + = (String.fromCharCode (array )); } вернуть результат;}

  • Нажмите "Сохранить".
  • Когда вы сбрасываете arduino и просматриваете вкладку данных, вы должны увидеть красиво отформатированный объект json, который вы можете легко прочитать.

Шаг 6. Подключение вашего приложения к AWS

Мы собираемся использовать AWS для хранения и использования данных из сети вещей. Все ресурсы, которые мы собираемся использовать, подпадают под уровень бесплатного пользования AWS.

  • Перейдите на AWS
  • Войдите или создайте учетную запись.
  • Чтобы подключить ваше приложение в сети вещей к AWS, я рекомендую следовать этому руководству:
  • По завершении этого руководства перейдите в консоли aws к сегменту IoT-Core.
  • В левой строке меню есть ярлык «Управление», щелкните по нему.
  • Теперь вы должны увидеть карточку с названием вашего датчика.
  • Снова в левой строке меню нажмите «Действие».
  • Если есть карта с надписью Магазин, все готово.
  • Если нет, нажмите «Создать».
  • Заполните название «Магазин».
  • Вы можете добавить описание, если хотите.
  • В качестве оператора запроса введите следующий код: SELECT dev_id, metadata.time, payload_fields.temperature, payload_fields.moisture, payload_fields.battery FROM 'cactus_network / devices / + / up'.
  • В разделе «Установить одно или несколько действий» нажмите «Добавить действие».
  • Выберите «Разделить сообщение на несколько столбцов таблицы DynamoDb (DynamoDBv2)».
  • Нажмите настроить действие
  • Щелкните создать новый ресурс.
  • Нажмите «Создать таблицу» и дайте своей таблице имя.
  • Под первичным ключом укажите "dev_id".
  • Нажмите добавить ключ сортировки
  • Заполните «время».
  • Нажмите "Создать".
  • Если все прошло хорошо, вы должны вернуться на страницу действия по настройке.
  • В разделе «Выберите или создайте роль, чтобы предоставить AWS IoT доступ для выполнения этого действия» отображается слегка затененная область.
  • Нажмите «Создать роль» и дайте этой роли имя.
  • Щелкните создать роль.
  • Щелкните добавить действие.
  • Щелкните создать правило.
  • Теперь у вас должно быть правило, которое автоматически сохраняет все входящие сообщения из сети вещей в DynamoDb.
  • Вы можете проверить, работает ли это, сбросив arduino и заглянув в только что созданную таблицу DynamoDb.
  • Там должна быть запись с сообщением.

Шаг 7: Создание лямбды

Чтобы прочитать данные из DynamoDB, мы собираемся написать лямбду AWS.

  • В консоли управления AWS в разделе «Сервисы» есть ссылка «Lambda», щелкните по ней.
  • Щелкните создать функцию.
  • Выберите имя.
  • Установите время выполнения на python 3.7.
  • Щелкните создать функцию.
  • Вставьте этот код в интегрированную среду IDE.

импортировать json

import boto3 import time from datetime import datetime, timedelta from boto3.dynamodb.conditions import Key, Attr def lambda_handler (event, context): return retreive_data () def retreive_data (): # Получить ресурс службы. Dynamodb = boto3.resource ('Dynamodb') table = Dynamodb. Table ('TABLE NAME HERE') now = datetime.now () вчера = now - timedelta (hours = 24) fe = Key ('time'). between (вчера.isoformat (), now.isoformat ()) fed = Key ('time'). lt (terday.isoformat ()) response = table.scan (FilterExpression = fe) recordsToDelete = table.scan (FilterExpression = fed) для f в recordsToDelete ['Items']: #print (f) table.delete_item (Key = {'dev_id': f ['dev_id'], 'time': f ['time']}) data = response ['Items '] вернуть данные

  • Измените имя таблицы на выбранное вами.
  • Прокрутите вниз до роли исполнения.
  • Щелкните создать новую роль из шаблонов политики aws.
  • Выберите имя.
  • В шаблонах политик выберите «Разрешения для тестовой оснастки» и «Простые разрешения для микросервисов».
  • Нажмите "Сохранить".
  • Нажмите тест.
  • Может появиться всплывающее окно, просто выберите имя и сохраните.
  • Нажмите тест еще раз.
  • Вверху должен быть зеленый баннер с надписью «Результат выполнения: выполнено успешно».
  • При щелчке по этому баннеру вы должны увидеть результат этой функции, это должен быть список сенсорных данных.
  • Имейте в виду, что этот сценарий удаляет все данные старше 24 часов.
  • Если ваш баннер не зеленый, а красный, вы что-то пропустили, и щелкнув этот баннер, вы получите полное сообщение об ошибке. В этом случае Google - ваш лучший друг.

Шаг 8: Создание конечной точки API

  • В консоли управления AWS в разделе «Сервисы» есть ссылка «api-gateway», щелкните по ней.
  • Нажмите "Создать API".
  • Убедитесь, что выбраны «REST» и «New API».
  • Выберите имя для вашего API.
  • Нажмите "Создать API".
  • Теперь на экране должна появиться кнопка с надписью «Действия», щелкните ее.
  • Затем нажмите «Создать ресурс».
  • В качестве имени ресурса вы должны взять что-нибудь простое, например «завод» или «завод-данные».
  • Щелкните создать ресурс.
  • Слева должно быть имя, которое вы только что ввели. щелкните это имя.
  • Теперь щелкните действия еще раз, а теперь щелкните добавить метод.
  • Выберите ПОЛУЧИТЬ.
  • Щелкните галочку.
  • Должно быть текстовое поле с надписью «Лямбда-функция».
  • Введите здесь имя, которое вы дали вам лямбда-функции.
  • Нажмите "Сохранить".
  • Может появиться всплывающее окно с предупреждением о создании дополнительных разрешений.
  • Примите это всплывающее окно.
  • Теперь в разделе «Действия» нажмите «Включить корс».
  • Нажмите «включить CORS и заменить существующие заголовки CORS».
  • Нажмите «да,…».
  • Снова щелкните Действия и щелкните Развернуть API.
  • На этапе развертывания выберите [Новый этап].
  • Выберите имя.
  • Щелкните развертывание.
  • Теперь вы опубликовали свой api в Интернете для всего мира.
  • На экране, в который вы прибыли, щелкните «ПОЛУЧИТЬ» и ресурс, который вы только что создали.
  • Сверху должна быть ссылка с надписью «URL вызова».
  • Скопируйте эту ссылку.
  • Вставьте его в браузер и нажмите Enter.
  • Вы должны увидеть данные, которые есть в базе данных.

Шаг 9: Подключите свой завод к социальной сети растений

  • Перейдите на
  • Щелкните «Войти».
  • Щелкните создать учетную запись.
  • Заполните форму для создания учетной записи.
  • Обратите внимание, что имя пользователя также должно быть вашим адресом электронной почты.
  • Щелкните создать учетную запись.
  • Возможно, вам придется подтвердить свой адрес электронной почты, прежде чем вы сможете продолжить.
  • Убедитесь, что вы вошли в систему.
  • Вернитесь на главную страницу (щелкните логотип в верхнем левом углу).
  • Щелкните кнопку настроек.
  • Заполните форму, вы должны заполнить все поля.
  • Ссылка на api - это ссылка, которую вы сохранили после создания конечной точки API.
  • Когда все будет заполнено, нажмите кнопку «Сохранить растение». Теперь система проверит введенную вами ссылку api и, если она верна, сохранит ваше предприятие в сети.
  • Вернитесь на главную страницу.
  • Теперь вы можете щелкнуть по всем растениям, и вы должны увидеть все зарегистрированные растения. ваше растение тоже должно быть там. щелкните карточку, и вы попадете на страницу обзора вашего завода, на ней также будут отображаться советы, основанные на значениях, которые вы установили в настройках.

Шаг 10: откиньтесь назад и похлопайте себя по спине

Вы только что подключили завод к Интернету. Впечатляет, правда?

Рекомендуемые: