Поиск по сайту:

Как запрограммировать собственные кнопки Dash с помощью AWS


Хотя кнопки Dash, возможно, были сняты с производства, их дизайн остался с кнопками AWS IoT. Вместо того, чтобы заказывать нездоровую пищу, их можно настроить для запуска функций AWS Lambda, что позволит вам создавать сценарии собственных функций с помощью NodeJS и Python.

Что делает корпоративная кнопка IoT?

Концепция довольно проста. Вы нажимаете кнопку, и она запускает функцию Lambda, которая представляет собой бессерверное приложение, которое запускается в облаке Amazon Web Services и выполняет любую команду или сценарий, которые вы хотите. Например, вы можете подключить эту кнопку к LIFX API для управления вашими интеллектуальными источниками света или любым другим интеллектуальным устройством, имеющим API. Вы даже можете попросить их подключиться к вашей учетной записи Amazon, чтобы заказать для вас продукты, заполнив круг и создав собственную кнопку с тире. Возможности действительно зависят от вас; пока вы умеете программировать, вы можете заставить эту кнопку делать что угодно.

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

Они немного дороже, чем кнопки Dash за 5 долларов, и стоят 26 долларов за штуку. Вероятно, это связано с тем, что стоимость не субсидируется тем, что вы кормите деньги Amazon, просто нажимая на них. Но для того, насколько полезны эти вещи, это неплохая цена, даже по сравнению с аналогичными менее функциональными кнопками умного дома. Вы можете забрать их на (как вы уже догадались) Amazon.

Они великолепны, и на самом деле их на удивление просто настроить и заставить работать. Однако главная проблема заключается в задержке — поскольку эти вещи рассчитаны на то, чтобы разряжать одну батарею для тысяч нажатий, они остаются в режиме пониженного энергопотребления, пока вы их не нажмете. Из-за этого для включения кнопки, подключения к Wi-Fi и запуска функции Lambda требуется около четырех секунд. В зависимости от вашего варианта использования это может стать препятствием для сделки, но я использовал его для управления своими умными огнями вместо центра автоматизации и не нашел его слишком раздражающим.

AWS производит несколько типов этих кнопок IoT, но кнопка IoT Enterprise — это обновленная версия старой «кнопки IoT». В частности, с помощью сервиса AWS «IoT 1-Click» гораздо проще настраивать развертывания и управлять ими без необходимости устанавливать сертификаты или управлять ими. При цене 20 долларов за штуку и достаточно маленьком размере, чтобы поместиться в кармане, эти пуговицы просто великолепны.

AWS также делает LTE-вариант этой кнопки совместно с AT&T. Из-за характера настройки устройства IoT на основе Wi-Fi, подобного этому, не очень возможно предоставить стандартные кнопки IoT Enterprise удаленным клиентам без настройки кнопок на месте в их сети. Это немного дороже, за 40 долларов, и немного больше, но будет работать везде, где есть сотовый сигнал, и, как сообщается, намного быстрее, чем вариант на основе Wi-Fi. Настройка для них должна быть в основном одинаковой, поскольку они используют один и тот же бэкенд под капотом.

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

Настройка кнопки IoT

Как только ваша кнопка будет доставлена, загрузите приложение для настройки кнопки IoT для iOS или Android. Это действует как сканер, который свяжет кнопки с вашей учетной записью. Это требует, чтобы вы находились в той же сети Wi-Fi, что и они, что делает настройку кнопок IoT Enterprise очень простой.

Откройте приложение, войдите в свою учетную запись AWS или учетные данные пользователя IAM и выберите «Настроить WiFi» в разделе IoT Enterprise:

Это вызовет сканер, который попросит вас отсканировать идентификатор устройства, указанный на упаковке устройства. После сканирования вам нужно будет заявить права на устройства и перевести их в режим сопряжения, удерживая кнопку нажатой в течение 6 секунд. Это позволит подключиться к устройству через Bluetooth и настроить его с использованием выбранных вами учетных данных WiFi.

Таким образом вы можете добавить любое количество устройств, и если вы уже настроили свой проект IoT, вы можете добавить их прямо из приложения.

Если вы просто следуете инструкциям, вам придется создать проект для настройки параметров ваших устройств и обработки мест размещения. Перейдите в консоль IoT в своем браузере и создайте новый проект в разделе «Управление» > «Проекты»:

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

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

Это должно завершить настройку проекта. На следующем экране выберите добавление нового «Размещение устройства», которое в основном связывает физическое устройство с шаблоном устройства и проектом и используется для отслеживания устройств в полевых условиях.

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

Информация о прессе передается функции Lambda в параметре event функции-обработчика:

{
  deviceInfo: {
    deviceId: 'G030PM037162UXE3',
    type: 'button',
    remainingLife: 99.05,
    attributes: {
      projectRegion: 'us-east-1',
      projectName: 'LightSwitch',
      placementName: 'BathroomLightSwitch',
      deviceTemplateName: 'DeviceType'
    }
  },
  deviceEvent: {
    buttonClicked: { clickType: 'DOUBLE', reportedTime: '2019-12-22T04:32:28.325Z' }
  },
  placementInfo: {
    projectName: 'LightSwitch',
    placementName: 'BathroomLightSwitch',
    attributes: {},
    devices: { DeviceType: 'G030PM037162UXE3' }
  }
}

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

Отсюда программирование зависит от вас. Вы можете прочитать наше руководство по работе с функциями Lambda, чтобы узнать больше.