Оглавление:

Сделай это так! Мини-инженерный компьютер Star Trek TNG: 11 шагов (с изображениями)
Сделай это так! Мини-инженерный компьютер Star Trek TNG: 11 шагов (с изображениями)
Anonim
Image
Image
Сделай это так! Мини-инженерный компьютер Star Trek TNG
Сделай это так! Мини-инженерный компьютер Star Trek TNG
Сделай это так! Мини-инженерный компьютер Star Trek TNG
Сделай это так! Мини-инженерный компьютер Star Trek TNG

Обзор

Я вырос на «Звездном пути: Следующее поколение». Я всегда хотел создать тематическое устройство Star Trek, поэтому я наконец добрался до ремикса одного из моих старых проектов, чтобы создать терминал для отображения Star Trek.

Терминал предоставляет следующую информацию:

  • Погода - через Национальную метеорологическую службу
  • Температура, влажность и содержание летучих органических соединений (ЛОС) в помещении
  • Новостные статьи - с News.org
  • Расписание (с функцией будильника) - из Microsoft Outlook
  • Информация о фитнесе (шаги, минуты движения, баллы кардиотренировок, вес, сожженные калории) - из Google Fitness
  • Таблица цветовых кодов резисторов
  • калькулятор светодиодного резистора (для определения номинала резистора в зависимости от силы тока и мощности источника)
  • Инструмент измерения мощности и тока

Эта информация доступна через комбинацию API и аппаратных датчиков. Я использую ESP32 для микроконтроллера и использую облако AWS для сбора и агрегации всех данных.

Я также добавил несколько «пасхальных яиц»:

  • Дань Рона Макнейра - доктор Макнейр стал причиной того, что я стал инженером; он вырос в 45 минутах от моего родного города. Он погиб в результате взрыва "Челленджера".

    • Название моего звездного корабля - «USS Ronald E McNair».
    • Регистрационный номер соответствует дате рождения сэра Макнейра; Префиксный код - это день, когда он потерял свою жизнь.
  • Использование «префиксного кода» - это дань уважения «Звездному пути: Гнев Хана» (величайшему фильму «Звездный путь» всех времен; не @ me).
  • Цифры справа от терминального корпуса относятся к моему братству (1906 - Alpha Phi Alpha) и моей alma mater и области обучения - (Университет Оклахомы, инженерный колледж).

У вас есть возможность настроить нумерацию, буквы, название корабля, реестр и т. Д. Для ваших собственных «пасхальных яиц».

Фон

В прошлом году мне понадобился недорогой способ измерения мощности и разряда батареи для носимого проекта. Я купил Adafruit INA219 Featherwing и использовал различные запасные части для создания простого прибора для измерения мощности (подробнее об этом вы можете прочитать здесь).

В этом году решил модернизировать аппарат… сделать его более «технологичным». Изначально я планировал построить работающий трикодер Star Trek (версия Mark IV TR-590 Mark IX, для тех, кому не все равно) … но я быстро понял, что имеет смысл создать что-то, что будет лежать на моем столе (я имею в виду, почему пойти на все эти хлопоты, чтобы сделать крутое устройство, просто закрыть его и положить в ящик, когда не используется).

Итак, я обратился к созданию версии компьютерных дисплеев, которые вы видите в Star Trek TNG или Voyager (или в различных фильмах). Я играл с разными дизайнами, потом наткнулся на версию, созданную братьями Руис из Адафрута. Adafruit отлично справляется с предоставлением исходных файлов для своих проектов 3D-печати, поэтому я смог взять их исходную версию и переделать ее для своего оборудования, кнопок и других периферийных устройств.

Что нужно знать перед тем, как продолжить

  1. Предоставляю пошаговые инструкции по созданию моей версии проекта; однако я не буду вдаваться в подробности некоторых шагов (я буду ссылаться на вспомогательные инструкции или документацию)
  2. Это сложный проект. Это «многопрофильная марка», требующая следующих навыков:

    • IDE Arduino
    • AWS - вам понадобится учетная запись и понимание S3, Lambda и Node JS.
    • Пайка
    • 3D печать
  3. Есть дополнительные «надстройки» для улучшения проекта с целью получения информации о календаре и фитнесе. Функциональность включена в кодовую базу; однако вам придется создавать «приложения» в облаках Azure и Google для поддержки этих функций.
  4. Это в конечном итоге настраивается … вы можете заменить датчик тока другим перышком. Вы можете использовать другую комбинацию перо / Wi-Fi.

Запасы

Электронные компоненты

  • Adafruit ESP32 Huzzah Feather
  • Мини-набор Adafruit Featherwing Tripler
  • 12-клавишный емкостный сенсорный датчик Adafruit
  • Adafruit TFT FeatherWing - 3,5-дюймовый сенсорный экран 480x320
  • Adafruit BME680 - Датчик температуры, влажности, давления и газа
  • Гнездо для крепления на панели постоянного тока 2.1 (2)
  • Литий-ионный полимерный аккумулятор - 3,7 В, 500 мАч
  • Пьезо-зуммер
  • USB-кабель Mirco и зарядное устройство на 5 В (подойдет обычное USB-зарядное устройство для телефона)
  • Лента из медной фольги с клеем
  • Необязательно - Adafruit INA219 Featherwing
  • Дополнительно - штекеры 2.1 - (для использования с датчиком тока INA219)

Ссылка на все электронные компоненты, кроме штекеров 2.1:

Компоненты 3D-волокна и дополнительные компоненты для окраски / шлифования

  • Proto Pasta Conductive PLA
  • Дополнительные 3D-нити - я использовал 4 цвета - серый, черный, бирюзовый (голубой) и белый.
  • Сопла 0,25 и 0,4 мм (для надписей я использовал 0,25).

Компоненты и инструменты для сборки оборудования

  • Винты M2x5 и M3x5
  • Прямые и прямоугольные булавки заголовков (ссылки см. В списке желаний Adafruit)
  • Паяльник (и катушка с припоем, тонировщик для жала, присоска для припоя и т. Д.)
  • Набор отверток с головкой Philips
  • Термоусадочная пленка
  • Многожильный провод 22AWG - пять или шесть цветов
  • Solid Wire 22AWG - пять или шесть цветов
  • Тиски для печатных плат и вспомогательные руки (необязательно, но упрощают пайку)
  • Кусачки для диагональной проволоки
  • Инструмент для зачистки проводов
  • Xacto Knife (для снятия опор с деталей 3D-принтера)
  • 3D-принтер (если вы планируете печатать самостоятельно)
  • Замазка или скотч (чтобы прикрепить батарею к внутренней стороне распечатанного футляра)
  • Цифровые штангенциркули
  • Крейзи Клей
  • Дополнительно - нитриловые одноразовые перчатки
  • Необязательно - паяльный коврик (необязательно, но защищает поверхности)

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

Программное обеспечение

  • IDE Arduino
  • Редактор Node JS (например, Microsoft Code)
  • Аккаунт AWS
  • Необязательно - учетная запись Google Cloud (для информации о фитнесе)
  • Необязательно - учетная запись Microsoft Azure Cloud (для информации календаря)
  • Шаг 1. Загрузите, измените файлы и распечатайте 3D-файлы

    Скачивание, изменение файлов и печать 3D-файлов
    Скачивание, изменение файлов и печать 3D-файлов
    Скачивание, изменение файлов и печать 3D-файлов
    Скачивание, изменение файлов и печать 3D-файлов
    Скачивание, изменение файлов и печать 3D-файлов
    Скачивание, изменение файлов и печать 3D-файлов
    Скачивание, изменение файлов и печать 3D-файлов
    Скачивание, изменение файлов и печать 3D-файлов

    Вы можете отправить файлы в службу 3D-печати (например, в 3D Hubs) или распечатать свои собственные. Файлы доступны на PrusaPrinters.org.

    Этот чехол представляет собой ремикс на будильник Py Portal, размещенный на сайте Adafruit. В моем проекте используется аналогичный TFT, поэтому я смог свести к минимуму объем дизайнерских работ, необходимых для того, чтобы корпус работал с моими аксессуарами.

    Для печати я использовал следующие настройки:

    • Передняя и задняя - печать с высотой слоя 0,2 мм с соплом 0,4 мм, без опор
    • Номер стороны - напечатано с высотой слоя 0,10 мм с соплом 0,25 мм, без опор
    • Ключи - напечатаны с толщиной слоя 0,2 мм с помощью сопла 0,4 мм. Вам нужно будет напечатать 7, и вам нужно будет напечатать с помощью проводящей нити Proto-Pasta.
    • Корпус - напечатан с высотой слоя 0,2 мм.

      Подставки нужны, но нужны не везде (только по бокам и посередине, где расположена клавиатура

    Вам следует знать несколько вещей:

    1. Prusa MK3 позволяет изменять цвета на разной высоте слоя. Я использовал эту особенность для фигурки с боковым номером.
    2. Также, что касается номера на боку:

      • Съемочная группа Star Trek TNG посыпала реквизит пасхальными яйцами. Если вы внимательно посмотрите на различные таблички и панели, вы увидите имена людей, тексты песен и т.д. образована в 1906 г.), и "OUCOE", что относится к моей альма-матер (Университет Оклахомы, инженерный колледж).
      • Я создал "пустую" часть side_number, которую вы можете изменить, чтобы создать свой собственный номер и текст.

    Шаг 2: Припаяйте / соберите компоненты - Часть А (клавиатура и боковой номер)

    Припаять / собрать компоненты - Часть А (клавиатура и боковой номер)
    Припаять / собрать компоненты - Часть А (клавиатура и боковой номер)
    Припаять / собрать компоненты - Часть А (клавиатура и боковой номер)
    Припаять / собрать компоненты - Часть А (клавиатура и боковой номер)
    Припаять / собрать компоненты - Часть А (клавиатура и боковой номер)
    Припаять / собрать компоненты - Часть А (клавиатура и боковой номер)
    Припаять / собрать компоненты - Часть А (клавиатура и боковой номер)
    Припаять / собрать компоненты - Часть А (клавиатура и боковой номер)

    Сначала мы прикрепим боковой номер. Нанесите небольшое количество клея, чтобы поставить номер на место.

    Далее соберем клавиатуру

    1. Вам нужно будет отрезать 7 кусков многожильного провода - каждый длиной 10–12 дюймов. Они будут подключены к контактам 0-6 емкостного сенсорного датчика. Я предлагаю вам использовать разные цвета (и записать цвета / сопоставление контактов, так как эта информация вам понадобится позже). Я использовала следующую цветовую комбинацию:

      • Желтый - контакт 0 / кнопка 1
      • Серый - контакт 1 / кнопка 2
      • Красный - контакт 2 / кнопка 3
      • Синий - контакт 3 // кнопка 4
      • Зеленый - контакт 4 // кнопка 5
      • Белый - контакт 5 // кнопка 6
      • Черный - контакт 6 // кнопка 7
    2. Зачистите 1/2 дюйма с конца каждой проволоки.
    3. Отрежьте 7 кусков токопроводящей ленты (каждый шириной около 1/2 дюйма) и припаяйте провода к медной стороне ленты.
    4. Снимите липкую подложку и приклейте их к нижней части клавиш. Возможно, вам придется обрезать часть медной ленты.

    Примечание: ключи можно приклеить либо снизу (чтобы они были на одном уровне с верхом), либо сверху (чтобы они «плавали» на несколько мм сверху). Я решил приклеить свой сверху.

    После того, как вы закончите все 7, с помощью небольшого количества клея прикрепите клавиши к клавиатуре. Мне легче:

    • Сначала проденьте проволоку в замочную скважину.
    • Затем нанесите небольшое количество клея на выступ / край ключа.
    • Быстро вставьте ключ на место.

    Примечание. Krazy Glue здесь работает лучше всего; вы можете использовать перчатки, чтобы снизить риск несчастных случаев и раздражения кожи.

    Шаг 3: Припайка / сборка компонентов - Часть B (Featherwings и датчики)

    Припаять / собрать компоненты - Часть B (Featherwings и датчики)
    Припаять / собрать компоненты - Часть B (Featherwings и датчики)
    Припаять / собрать компоненты - Часть B (Featherwings и датчики)
    Припаять / собрать компоненты - Часть B (Featherwings и датчики)
    Припаять / собрать компоненты - Часть B (Featherwings и датчики)
    Припаять / собрать компоненты - Часть B (Featherwings и датчики)

    Следующим шагом будет подготовка и сборка компонентов оборудования. В конечном итоге это означает пайку контактов и проводов разъема для последующего использования. В этом руководстве предполагается, что вы умеете паять; в противном случае ознакомьтесь с этим «Руководством по превосходной пайке» от Adafruit.

    Сначала подготовим материалы. Для этого шага вам понадобятся:

    • TFT 3.5 Featherwing
    • ESP32 Перо
    • INA219 Featherwing
    • Тройное перьекрылое
    • Емкостный сенсорный датчик MPR121
    • Датчик BME680
    • Прямые и угловые штыри заголовка
    • Одножильный и многожильный провод
    • Паяльные инструменты и руки помощи
    • Кусачки для диагональной проволоки и устройства для снятия изоляции
    • Суппорта

    Примечание: я предлагаю вам сначала прочитать этот шаг и отрезать все провода и разъемы, прежде чем приступать к пайке. Таким образом, вам не придется останавливаться, чтобы измерить / отрезать.

    Подготовьте TFT 3.5 Featherwing

    TFT готов к использованию сразу после одной настройки. Вам нужно будет припаять провод между контактной площадкой «Lite» и контактной площадкой для пайки. Наш код использует вывод 21 ESP32 для управления TFT lite. Расположите TFT «длинным» способом, с кнопкой сброса внизу. Контакт 21 будет нижним левым контактом.

    Отрежьте кусок многожильного провода диаметром 40 мм. Зачистите концы так, чтобы на каждом конце было несколько миллиметров проволоки. Используя паяльник, аккуратно припаяйте к обоим контактам.

    Примечание: вам понадобится всего около 35 мм длины… так что вы можете обрезать провод по мере необходимости. Кроме того, я считаю, что добавление припоя к контактной площадке, затем к проводу, а затем припаивание провода к контактной площадке - самый простой подход. Напоследок - эти панели маленькие… если вам неудобно, вы всегда можете пропустить этот шаг: он предназначен только для выключения TFT с помощью клавиатуры.

    Подготовьте перо ESP32

    Вам нужно будет припаять стандартные штыри разъема к ESP32. Ваш ESP32 должен поставляться с заголовками, хотя вам может потребоваться обрезать их, чтобы получить правильную длину (16 контактов на длинной стороне; 12 контактов на короткой стороне). Штифты жатки сделаны так, чтобы они «отщеплялись», поэтому вы можете использовать диагональные резаки, чтобы обрезать жатки до нужной длины. Опять же, у Adafruit есть отличные инструкции о том, как это сделать, так что проверьте их, если вам нужно руководство.

    ДОПОЛНИТЕЛЬНО - Подготовьте INA219 Featherwing

    Сначала припаяйте штыревые разъемы к перьям (используя те же инструкции, что и для ESP32). Затем отрежьте четыре куска многожильного провода длиной 20 мм. Я бы сделал 2 ЧЕРНЫХ, а остальные другого цвета. Я использовал СЕРЫЙ и СИНИЙ для выбора цвета.

    Зачистите концы проволоки так, чтобы на каждом конце оставалось по 3-4 мм медной проволоки. Вы припаяете по одному к каждому проводу, как показано ниже:

    • СЕРЫЙ -> V + (плюс)
    • СИНИЙ -> V- (минус)
    • ЧЕРНЫЙ -> GND (земля)
    • ЧЕРНЫЙ -> GND (земля)

    Оставьте на это время другие концы проводов; в конечном итоге мы припаяем их к разъемам DC 2.1.

    Присоедините пьезо-зуммер

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

    Пьезо подключается к контакту 13 ESP32; это соответствует контакту рядом с контактом USB на перышке (стрелки см. на рисунке). Другой пьезоэлемент подключается к земле. Пьезные штифты достаточно длинные, чтобы припаять их прямо к перышку… вам просто нужно согнуть штифты в форме «кривоногого человека» (см. Изображение). После того, как вы установите штыри на место, удерживайте пьезоэлемент руками (или изолентой) и припаяйте его с нижней стороны крыла пера.

    Примечание. Если вы не используете INA219, вам необходимо припаять пьезоэлемент непосредственно к плате с фиксатором.

    Подготовить Тройное перьекрылое

    Перьекрыло избавляет нас от необходимости пайки; он может удерживать 3 пера / перья… поэтому мы будем использовать его для электрических соединений между TFT, ESP32, INA219 (а также пьезо и выводом TFT Lite).

    Чтобы правильно выполнить соединения, нам нужно припаять две пары штабелируемых разъемов и одну пару стандартных штыревых разъемов.

    • Обычные штыревые разъемы будут находиться в «верхнем» месте, но будут припаяны к нижней стороне тройника.
    • Два соединительных разъема будут припаяны в точках 2 и 3 на верхней стороне Tripler.

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

    Подготовьте датчик BME 680 и емкостный датчик касания MPR121

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

    Датчик BME прикреплен под углом 90, так что я могу выровнять датчик по отверстию в корпусе (чтобы датчик мог фиксировать температуру, газ, влажность). Вам нужно будет припаять прямоугольные штыри к отверстиям. Посмотрите изображения, чтобы убедиться, что вы правильно их выровняли.

    Датчик емкостного касания прост - просто припаяйте прямые штыри штекерного разъема, как описано здесь. Примечание. НЕ СЛЕДУЕТ припаивать контакты к контактам емкостного сенсорного экрана (0-11).

    Присоедините датчики BME 680 и MPR121 к плате Tripler

    Оба датчика обмениваются данными через I2C… что означает, что нам нужно всего лишь 4 соединения между коммутационными платами и Featherwing. Для простоты пропаял все соединения между платами.

    BME 680

    Для этого датчика я использую Helping Hands и тиски для печатной платы, чтобы удерживать оба компонента на месте (см. Изображение выше). Датчик BME680 следует разместить на конце крыла. См. Изображения выше, чтобы подтвердить размещение.

    Процесс пайки соединений утомителен, поэтому не торопитесь. Я использую одножильный провод для соединений:

      • ЧЕРНЫЙ - ЗЕМЛЯ
      • КРАСНЫЙ - VIN
      • ЖЕЛТЫЙ - SCL (контакт SCK на датчике к
      • ОРАНЖЕВЫЙ - SDA (вывод SDA на датчике)

    Примечание. Контакты SCL и SDA необходимы для обоих датчиков, поэтому может быть проще использовать контакт SCL или SDA на другой части Featherwing.

    MPR121

    Помогают также руки-помощники при пайке этого датчика на место (подойдет и скотч). Код использовал I2C для связи с ESP32, поэтому вы будете подключать контакты SCA и SDA.

    Шаг 4: Припайка / сборка компонентов - часть C (клавиатура для емкостного датчика и крыло в футляре)

    Припайка / сборка компонентов - Часть C (клавиатура для емкостного датчика и крылышко в футляре)
    Припайка / сборка компонентов - Часть C (клавиатура для емкостного датчика и крылышко в футляре)
    Припайка / сборка компонентов - Часть C (клавиатура для емкостного датчика и крылышко в футляре)
    Припайка / сборка компонентов - Часть C (клавиатура для емкостного датчика и крылышко в футляре)
    Припайка / сборка компонентов - Часть C (клавиатура для емкостного датчика и крылышко в футляре)
    Припайка / сборка компонентов - Часть C (клавиатура для емкостного датчика и крылышко в футляре)

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

    • Желтый - контакт 0 / кнопка 1
    • Серый - контакт 1 / кнопка 2
    • Красный - контакт 2 / кнопка 3
    • Синий - контакт 3 / кнопка 4
    • Зеленый - контакт 4 / кнопка 5
    • Белый - контакт 5 / кнопка 6
    • Черный - контакт 6 / кнопка 7

    Как только пайка будет завершена, удерживайте провода на месте с помощью спиральной стяжки.

    Далее прикручиваем TFT-экран к "передней" части. Вы будете использовать винты M3 (всего четыре). Как только TFT встанет на место, прикрутите переднюю часть к корпусу. Опять же, вы будете использовать винты M3 (два).

    Затем подключите Featherwing Tripler со всеми подключенными компонентами к TFT.

    Примечание. Если вы планируете использовать аккумулятор, обязательно подключите его к порту ESP32-JST перед тем, как вставлять TFT. Используйте скотч, чтобы прикрепить аккумулятор к внутренней нижней части корпуса.

    Шаг 5: ДОПОЛНИТЕЛЬНО - Припайка / сборка компонентов - Часть D (перо INA219)

    ДОПОЛНИТЕЛЬНО - Пайка / сборка компонентов - Часть D (перо INA219)
    ДОПОЛНИТЕЛЬНО - Пайка / сборка компонентов - Часть D (перо INA219)
    ДОПОЛНИТЕЛЬНО - Пайка / сборка компонентов - Часть D (перо INA219)
    ДОПОЛНИТЕЛЬНО - Пайка / сборка компонентов - Часть D (перо INA219)
    ДОПОЛНИТЕЛЬНО - Пайка / сборка компонентов - Часть D (перо INA219)
    ДОПОЛНИТЕЛЬНО - Пайка / сборка компонентов - Часть D (перо INA219)
    ДОПОЛНИТЕЛЬНО - Пайка / сборка компонентов - Часть D (перо INA219)
    ДОПОЛНИТЕЛЬНО - Пайка / сборка компонентов - Часть D (перо INA219)

    Если вы используете датчик INA219, то здесь вы подключаете провода к вилкам постоянного тока.

    1. Вставьте штекеры постоянного тока в заднюю крышку и прикрутите их.
    2. Используйте паяльник для соединения проводов INA219.

      • Черные провода должны идти к ЗАЗЕМЛЕНИЮ каждой вилки постоянного тока.
      • Серый провод должен идти к разъему INPUT DC.
      • Синий провод должен идти к ВЫХОДНОЙ вилке.

    Шаг 6: прикрутите заднюю крышку и подключите USB

    Последним этапом сборки оборудования является установка задней крышки на место с помощью винтов M2 (4). Оттуда подключите USB-кабель, подключите его к компьютеру и переходите к шагам программного обеспечения!

    Шаг 7. Подготовьте среду AWS

    Подготовить среду AWS
    Подготовить среду AWS

    Как я сказал во вступлении, предпосылка решения такова:

    1. Терминал, работающий на ESP32, использует соединение MQTT (через Wi-Fi) для связи с облаком AWS.
    2. Облако AWS выполняет основную часть обработки и служит связующим звеном между монитором и запрошенными сервисами.

    На этом этапе нам нужно сделать несколько вещей:

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

    После того, как вы пройдете этот шаг, вам нужно будет создать несколько сервисов, поэтому войдите в консоль AWS.

    Создать вещь и скачать ключи

    AWS IoT Core упрощает обмен данными между облаком AWS и дисплеем. Вам нужно будет создать «вещь» и загрузить сертификаты для поддержки связи.

    [Примечание: большая часть этих инструкций была взята из руководства, написанного Мохибом Зара, евангелистом AWS]

    1. Откройте консоль AWS и выберите AWS IoT Core.
    2. В консоли AWS IoT выберите Зарегистрировать новую вещь, Создать одну вещь.
    3. Назовите новую вещь "starTrekESP32". Оставьте для остальных полей значения по умолчанию. Выберите "Далее".
    4. Выберите Создать сертификат. Для подключения ESP32 необходимы только сертификат, закрытый ключ и загрузка Amazon Root CA 1. Загрузите и сохраните их в безопасном месте, так как они используются при программировании устройства ESP32.
    5. Выберите «Активировать», «Прикрепите политику».
    6. Пропустите добавление политики и выберите «Зарегистрировать вещь».
    7. В боковом меню консоли AWS IoT выберите Безопасность, Политики, Создать политику.
    8. Назовите политику AllowEverything. Выберите вкладку «Дополнительно».
    9. Вставьте следующий шаблон политики.
    10. {{"Версия": "2012-10-17", "Заявление": [{"Эффект": "Разрешить", "Действие": "iot: *", "Ресурс": "*"}]}
    11. Выберите "Создать". (Примечание: это рекомендуется только для начала работы. После того, как вы научитесь, что все работает, вернитесь и измените это на что-то более ограничительное.)
    12. В консоли AWS IoT выберите Безопасность, Сертификация.
    13. Выберите созданный для вашего устройства и выберите Действия, Подключить политику.
    14. Выберите Разрешить все, прикрепить.
    15. Перед тем как уйти, нажмите «Настройки» (в меню слева). Будет показана ваша «Настраиваемая конечная точка»; сохраните это в текстовый файл … он вам понадобится при настройке ESP32.

    Создайте пустой файл лямбда

    Лямбда - это форма бессерверных вычислений, поэтому нам не нужно беспокоиться о каком-либо оборудовании. В конечном итоге именно здесь мы разместим наш обновленный код (что мы сделаем за несколько шагов). На данный момент мы просто хотим создать заполнитель, поэтому …

    1. Снова войдите в консоль AWS (если вы вышли из системы) и нажмите Lambda.
    2. Щелкните по кнопке «Создать функцию».
    3. На следующей странице введите основное имя, например starTrekDisplay.
    4. Выберите Node.js 12. X
    5. Под разрешениями:

      • Если вы хорошо разбираетесь в Lambda и знакомы с ней, вы можете выбрать любой вариант, который имеет смысл. Вам потребуются разрешения на CloudWatch, IotCore, S3 (чтение и запись).
      • Если вы не уверены в разрешениях, выберите «Создать новую роль с базовыми разрешениями Lambda». Запишите название роли. Позже мы изменим разрешения.
    6. Щелкните Создать функцию.
    7. Через минуту вы перейдете на новый экран с фрагментом кода "hello world". Прокрутите вниз до раздела "Основные настройки" и нажмите "Изменить".
    8. Измените тайм-аут с 3 секунд на 2 минуты 0 секунд. Примечание: ваш код никогда не должен работать дольше 5-10 секунд … однако нам потребуется более длительный тайм-аут для вашей первоначальной аутентификации в Microsoft (для функций календаря). После аутентификации вы можете изменить это значение на 20 секунд.
    9. Нажмите "Сохранить".

    Создать Iot-правило

    1. Оставайтесь в консоли Lambda и прокрутите вверх. Выберите «Добавить триггер».
    2. Выберите AWS IoT. Затем выберите «Пользовательское правило».
    3. Выберите «Создать новое правило».

      • Имя правила: Подключение ESP
      • Оператор запроса правила: "SELECT * FROM 'starTrekDisplay / pub'
    4. Нажмите "Добавить".

    Создание корзины и папки S3

    1. Перейдите в Консоль AWS и выберите S3.
    2. Вам понадобится корзина и папка для хранения файлов аутентификации. Эта папка должна быть частной. Я предлагаю вам использовать любую корзину, которая у вас уже есть, и назвать папку для создания «starTrekDisplay». Примечание. Если у вас нет ведра, создайте его, следуя приведенным здесь инструкциям.

    Разрешения на обновление - если вы разрешили Lambda создать для вас роль, вам нужно будет выполнить этот шаг

    1. Войдите в консоль AWS и выберите IAM.
    2. Щелкните РОЛИ, затем выберите имя роли, которое вы создали ранее.
    3. Нажмите на присоединить политики, затем выберите следующие политики:

      • AWSIoTFullAccess
      • AmazonSNSFullAccess
      • CloudWatchFullAccess
      • AmazonS3FullAccess

    Шаг 8. Загрузите программные ключи и настройте сторонние службы

    Загрузите программные ключи и настройте сторонние службы
    Загрузите программные ключи и настройте сторонние службы

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

    1. Worldtime API - на время
    2. API национальной метеорологической службы - для погоды
    3. Microsoft Graph API для доступа к моему календарю
    4. API Google Fitness для доступа к фитнес-информации

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

    Worldtime API - на время

    Этот API не требует ключа, поэтому никаких действий для его работы не требуется.

    API национальной метеорологической службы - для погоды

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

    ДОПОЛНИТЕЛЬНО - Microsoft Graph API и Google Fitness API

    Это самая сложная часть настройки кода. У нашего устройства нет полноценной клавиатуры … поэтому мы используем что-то под названием OAUTH for Limited Devices для доступа к нашему календарю. К сожалению, вам нужно создать «приложение» Azure и приложение Google, чтобы код мог использовать OAUTH для ограниченных устройств.

    Инструкции по созданию приложения здесь для Microsoft и здесь для Google. Вот несколько вещей, которые вам следует знать:

    • Вам нужно будет создать учетную запись в облаке Azure и Google. Это бесплатно, и с вас ничего не будет взиматься плата.
    • Microsoft:

      • Вам будет предложено указать, какие пользователи могут использовать приложение. Я предлагаю вам выбрать «Учетные записи в любом каталоге организации и личные учетные записи Microsoft». Это позволит вам использовать личные учетные записи Microsoft и корпоративные учетные записи (в большинстве случаев).
      • Вы захотите выбрать приложения «Мобильные и настольные», однако вам не нужно заполнять всю информацию (поскольку это личное приложение). Это означает, что вы не можете сделать свое приложение доступным для всего мира…. но в этом случае это нормально
      • После того, как ваше приложение будет настроено, вам нужно будет выбрать необходимые разрешения. Я попросил разрешения, связанные с профилями и календарями (полный список разрешений см. На изображении в галерее). Вам нужно будет выбрать тот же набор. Если вы добавите больше разрешений, вам нужно будет соответствующим образом изменить область на следующем шаге.

    Шаг 9. Измените и загрузите код AWS

    Предполагается, что вы знакомы с разработкой Node.js и Lambda. Загрузите связанный файл и внесите изменения для обновления:

    • Информация о приложении и клиенте Microsoft
    • Ключ Google
    • Адрес электронной почты для отслеживания Национальной метеорологической службы
    • Имя сегмента S3
    • Имя папки S3
    • Конечная точка AWS

    Вам также необходимо загрузить следующие библиотеки узлов:

    1. aws-sdk
    2. часовой пояс момента
    3. акценты

    После внесения этих изменений загрузите код в созданную ранее лямбду-заполнитель.

    Шаг 10: Подготовьте IDE Arduino и загрузите библиотеки

    Это руководство также предполагает, что вы знакомы с Arduino. Вам нужно будет убедиться, что ваша IDE настроена для работы с Adafruit ESP32. Следуйте инструкциям здесь, если вам нужна помощь.

    После этого загрузите следующие библиотеки:

    • Adafruit_GFX (от менеджера библиотеки)
    • Adafruit_HX8357 (от менеджера библиотеки)
    • TFT_eSPI (из диспетчера библиотеки)
    • TFT_eFEX (https://github.com/Bodmer/TFT_eFEX)
    • PubSubClient (из диспетчера библиотеки)
    • ArduinoJson (от менеджера библиотеки)
    • Adafruit_STMPE610 (от менеджера библиотеки)
    • Adafruit_MPR121 (от менеджера библиотеки)
    • Adafruit_INA219 (от менеджера библиотеки)
    • Adafruit_Sensor (от менеджера библиотеки)
    • Adafruit_BME680 (от менеджера библиотеки)
    • Tone32 (https://github.com/lbernstone/Tone)

    Далее нам нужно будет изменить несколько библиотек:

    1. Откройте папку PubSubClient (в папке Arduino / Library) и откройте «PubSubClient.h». Найдите значение MQTT_MAX_PACKET_SIZE и измените его на 2000.
    2. Затем откройте папку TFT_eSPI и откройте файл «User_Setup_Select.h». Закомментируйте любые строки «includes users_setup…» и добавьте эту строку:

    #включают

    После этого загрузите связанный файл Custom_Tricorder.zip и извлеките файл «.h» в папку «TFT_eSPI / User_Setups» в папке с библиотеками Arduino. я

    Теперь мы можем перейти к обновлению кода Arduino.

    Шаг 11: Обновите и установите код Arduino и присоединяйтесь

    Обновите и установите код Arduino и участвуйте!
    Обновите и установите код Arduino и участвуйте!

    Код Arduino

    Загрузите и распакуйте связанный файл с кодом Arduino. Перейдите на вкладку secrets.h. Вам нужно будет обновить следующее:

    • WIFI_SSID = обновите свой Wi-Fi SSID
    • WIFI_PASSWORD = обновите свой пароль Wi-Fi
    • TIMEZONE = обновить часовой пояс из этого списка
    • LAT (вы можете использовать такую службу, как "https://www.latlong.net", чтобы найти свои широту и долготу
    • СПГ
    • AWS_IOT_ENDPOINT = вы должны были сохранить это раньше. Он должен выглядеть так: "dx68asda7sd.iot.us-east1-amazonaws.com"
    • AWS_CERT_CA
    • AWS_CERT_CRT
    • AWS_CERT_PRIVATE

    Вы также загрузили сертификаты с предыдущего шага. Затем откройте в редакторе заметок (например, в блокноте) и вставьте текст между 'R "EOF (' и ') EOF";'. Не забудьте включить "----- BEGIN CERTIFICATE -----" или "----- BEGIN RSA PRIVATE KEY -----".

    Файлы изображений

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

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

    Привлекать

    Загрузите окончательный код Arduino, и все готово!

    Примечание. Название Star Trek и изображения Star Trek принадлежат CBS / Paramount. У них довольно мягкая политика в отношении косплея и фанфиков - пожалуйста, прочтите здесь, если у вас есть вопросы.

    Конкурс фэндомов
    Конкурс фэндомов
    Конкурс фэндомов
    Конкурс фэндомов

    Первый приз в конкурсе фэндомов

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