Оглавление:

Light Bamboo (подключенная лампа): 3 шага
Light Bamboo (подключенная лампа): 3 шага

Видео: Light Bamboo (подключенная лампа): 3 шага

Видео: Light Bamboo (подключенная лампа): 3 шага
Видео: 3 идеи для дома: декоративный фонарь - клетка, конфетки - магниты и подвеска в финском стиле 2024, Ноябрь
Anonim
Light Bamboo (подключенная лампа)
Light Bamboo (подключенная лампа)

Привет и добро пожаловать!

Light bamboo - это подключенная лампа, которая загорается при получении уведомления на смартфоне Android, к которому он подключен. Цель этого руководства - показать вам этап проектирования проекта: от аппаратной архитектуры до соединения Bluetooth Low Energy (BLE) и создания приложения для Android.

Для нашей лампы мы выбрали пластиковое растение для классного декора. В этом проекте отображаются уведомления из следующих приложений: звонки, смс / ммс, facebook, мессенджер, instagram, WhatsApp и Gmail. Каждому типу уведомлений присваивается один светлый цвет.

Для этого проекта вам понадобятся:

  • UC со встроенным модулем BLE: nFR51822 RedBearLab
  • 3 кольца NeoPixel (12 светодиодов RGB)
  • Смартфон Android
  • Android Studio

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

Смартфон, на котором мы разработали приложение, - это Samsung Galaxy A5.

Шаг 1: аппаратная часть

Аппаратная часть
Аппаратная часть

Наша архитектура довольно проста.

Подключите контакты NeoPixel Ring к плате nRF51822 следующим образом:

  • Inout Вывод данных кольца NeoPixel Ring на порт 3 микроконтроллера.
  • Vcc кольца NeoPixel Ring к 3.3V микроконтроллера.
  • GND кольца NeoPixel к заземлению uC.

Вы можете заметить, что мы не используем вывод выходных данных кольца NeoPixel. Это связано с тем, что все контакты входных данных трех колец NeoPixel, которые мы используем в этом проекте, подключены к одному и тому же порту платы nRF51822 (контакт 3).

Шаг 2: программная часть

Программная часть
Программная часть
Программная часть
Программная часть
Программная часть
Программная часть

1. Связь Bluetooth с низким энергопотреблением:

В BLE-коммуникации сервер (в нашем случае это uC) и клиент (смартфон) обмениваются данными с помощью транзакций GATT. В этих транзакциях данные организованы иерархически в разделы, называемые службами, которые группируют концептуально связанные части пользовательских данных, называемые характеристиками. В нашем случае инкапсуляция данных проста, поскольку у нас есть только одна информация, которую нужно передать от клиента к серверу (см. Изображение выше).

  • на стороне сервера: чтобы иметь возможность использовать плату nrf51822 в качестве сервера BLE, сначала установите библиотеку «BLEPeripheral.h» в IDE Arduino. Эта библиотека предоставляет готовые функции для создания услуг, характеристик и рекламы.
  • на стороне клиента: чтобы начать связь BLE в Android Studio, сначала настройте разрешения BLE в файле манифеста. Затем в файле activity_main.xml добавьте 4 кнопки: сканирование, остановка сканирования, подключение и отключение, которые позволят приложению сканировать ближайшие устройства BLE, останавливать сканирование, подключаться и отключаться от устройства. В файле main_activity.java реализуйте функции, связанные с предыдущими кнопками: startScanning (), stopcanning (), connectToDeviceSelected (), disconnectDeviceSelected (). Наконец, реализуйте функции обратного вызова, которые вызываются при изменении состояния клиента..

2. Управление уведомлениями

  • на стороне клиента (в Android Studio): чтобы прослушивать уведомления, поступающие со смартфона, реализуйте прослушиватель уведомлений, который активируется при появлении уведомления в строке состояния. Этот прослушиватель уведомлений отправит «сообщение», называемое намерением, основному действию, когда уведомление будет отправлено или удалено. Это «сообщение» содержит код уведомления, который помогает идентифицировать приложение, отправившее уведомление. Чтобы обработать уведомление в основном действии, создайте широковещательный приемник, который будет получать сообщение от прослушивателя уведомлений. Затем, в зависимости от кода уведомления, на сервер отправляется другой символ.
  • на стороне сервера (в Arduino IDE): отображается уведомление с наивысшим приоритетом.

Шаг 3: Шаг 3: Приложения

Здесь вы найдете весь исходный код.

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