Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Компоненты и материалы

Arduino 101×1
Intel Edison×1
Logitech c270 HD Webcam×1
Pololu Carrier с Sharp GP2Y0D815Z0F (цифровой датчик расстояния 15 см)×2
Adafruit Square FSR (Interlink 406) — датчик силы×1
Adafruit Si7021 — датчик температуры и влажности (I2C)×1
Seeed Grove Starter Kit Plus, Intel IoT Edition×1
Конденсатор 47 мкФ×2
Резистор 1 кОм×1
Adafruit Terminal Block 2-pin 3.5mm (упак. 5 шт.)×1
Adafruit Compact Switching Power Supply 3-12VDC×1
Adafruit Perma-Proto Quarter-sized Breadboard PCB×1
Перемычки (набор)×1

Инструменты

Приложения и сервисы

О проекте

«Это для птиц!» — переосмысление эко-мониторинга с Arduino 101

Введение и мотивация

Здоровье экосистемы оценивают по разнобразию фауны. С 1987 г. Корнельская лаборатория орнитологии проводит Project FeederWatch — зимний учёт птиц на кормушках по Северной Америке. Данные показывают изменения в ареалах и численности видов. Мы захотели совместить мейкинг, природу и участие в проекте — создали IoT-кормушку на Arduino 101.

Arduino 101 идеален: простота IDE, встроенный BLE, множество датчиков. Встроили в самодельную кормушку: 2 ИК-датчика расстояния (птицы на жерди), FSR (уровень корма), Si7021 (погода). Arduino 101 — BLE-периферия, шлёт данные центральному устройству. Питание — 4 АА батареи. Всё в 3D-печатном корпусе.

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Intel Edison на Arduino Breakout Board — BLE-центральное устройство и интернет-шлюз. Logitech c270 веб-камера по USB делает фото при срабатывании ИК-датчиков, сохраняет на SD-карту. Wi-Fi Edison используется для PubNub (реальное время) и Cloudinary (изображения в облаке).

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

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

Сборка проекта

Arduino 101 — встроенная кормушка

Основа — Arduino 101 в кормушке. Нужна беспроводная передача в реальном времени на небольшое расстояние — BLE идеален.

Схема на Fritzing, но были проблемы:

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Остальное просто: Si7021 на I2C (3.3В), питание от 4хАА батарейного отсека под корпусом. Датчики припаяны к Perma-Proto платам, закреплены на Arduino 101 двухсторонним скотчем. Пакет выжил в мороз, дождь и снег.

Скетч Arduino 101

Главная задача — опрос датчиков и отправка по BLE. Данные в BLE — байты. Для float (температура, влажность) используем union:

union { float t; unsigned char bytes[4]; } tempData;
union { float h; unsigned char bytes[4]; } humidityData;
union { int f; unsigned char bytes[2]; } feedData;

Записываем float в union — байты готовы для setValue() характеристик.

Избегаем delay() — останавливает процессор и мешает BLE. Используем неблокирующие таймеры (метод Bill Earl / Adafruit). Объект устройства, интервалы опроса, функция Update(), вызываемая в loop():

void Update() {
 currentPerchMillis = millis();
 if ((currentPerchMillis - previousPerchMillis) > perchInterval) {
   previousPerchMillis = currentPerchMillis;
   currentLeftPerch = digitalRead(LEFT_PERCH);
   currentRightPerch = digitalRead(RIGHT_PERCH);
   if ((currentLeftPerch == 0) && (previousLeftPerch == 1)) {
     perchCharacteristic.setValue(1);
     Serial.println("LEFT PERCH ACTIVITY");
     previousLeftPerch = 0;
   }
   // ... аналогично для правого, температуры, влажности, корма
 }
}
void loop() {
 blePeripheral.poll();
 birdFeeder.Update();
}

Intel Edison и Arduino Breakout Board

Самое сложное — настройка Edison. Лучший туториал: Vincent Wong «Intel Edison and Intel XDK IoT Edition 101». После настройки Wi-Fi ставим библиотеки:

npm install noble
npm install pubnub
npm install cloudinary

USB-веб-камера

Logitech c270 — UVC-совместима. В Yocto Linux (на Edison) нужен модуль uvcvideo. Инструкции:

vi /etc/opkg/base-feeds.conf
# добавить репозитории
opkg update
opkg install kernel-module-uvcvideo
ls -l /dev/video*  # должно появиться /dev/video0
opkg install fswebcam
# тест: fswebcam -r 1280x720 --jpeg 100 -D 3 -S 13 "test.jpg"

Также нужен переключатель USB на плате в сторону USB-порта и внешний блок питания (Adafruit 1448). SD-карта в слот, проверка cd /media/sdcard && ls. Bluetooth: rfkill unblock bluetooth && bluetoothctl -> scan on.

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

В Intel XDK создаём проект, заменяем index.js на наш код (из GitHub), загружаем. При включённом Arduino 101 должно обнаружиться устройство «bird».

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Код на Edison (Node.js)

Используем noble.js для BLE. UUID сервиса и характеристик (без дефисов!):

var LOCAL_NAME = 'bird';
var SERVICE_UUID = '917649a0d98e11e59eec0002a5d5c51b';
var PERCH_UUID = '917649a1d98e11e59eec0002a5d5c51b';
var TEMPERATURE_UUID = '917649a2d98e11e59eec0002a5d5c51b';
var HUMIDITY_UUID = '917649a3d98e11e59eec0002a5d5c51b';
var FEED_UUID = '917649a4d98e11e59eec0002a5d5c51b';

Сканирование, подключение, обнаружение сервиса/характеристик, подписка на уведомления (notify(true)). Ключевой момент: в новых версиях noble событие данных — 'data', а не 'read'. Функция transformRawData(uuid, data) обрабатывает входящие данные.

При активности на жерди — вызываем fswebcam через child_process.execFile, сохраняем фото на SD.

PubNub и Cloudinary: В той же функции загружаем 3 последних фото в Cloudinary, получаем URL, формируем JSON с данными (уровень корма, темп., влажность, счётчики посещений, URL фото) и публикуем в PubNub. Никакого своего сервера не нужно!

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

index.html (UI)

Подключаем PubNub SDK и eon.js для графиков. Подписываемся на канал feederview, парсим JSON, обновляем изображения и виджеты.

<script src="https://cdn.pubnub.com/sdk/javascript/pubnub.4.5.0.js"></script>
<script src="https://pubnub.github.io/eon/v/eon/1.0.0/eon.js"></script>
var pubnub = new PubNub({ subscribeKey: "your_subscribe_key" });
pubnub.subscribe({channels: ['feederView']});
pubnub.addListener({
 message: function(m) {
   var msg = m.message;
   var imageIndex = msg.imageIndex;
   if (msg.latestView) {
     document.getElementById("myImage"+imageIndex).src = msg.latestView;
   }
   // обновление графиков eon.js ...
 }
});

Корпус и кормушка

Кормушка: 2-литровая бутылка, срез 11 см от дна, отверстия под жердь (3 см). Электроника внутри, проверка размера. Верхняя часть: отверстия под провод навески, 4 отверстия разной высоты для птиц и запаха корма. Соединяем части скотчем (не перекрывая датчики). Насыпаем корм, вешаем.

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

3D-печатный корпус: измерен диаметр бутылки (~105 мм). Корпус под Arduino и две платы, крышка с ручкой, отсек для батарей с экономией филамента. Крепление площадки FSR. Собранный комплект компактный и рабочий.

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Тестирование

Проверка BLE через nRF Master Control App. Приём сигналов за пределами дома. Пошаговая отладка. При садящихся батареях первым теряется BLE. Калибровка FSR: с площадкой получилась линейная зависимость в рабочем диапазоне. Настроили min/max и цвета на eon.js gauge.

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Галерея развёртывания

Лучшее — фото птиц! За пару часов тысячи кадров. Просмотр в Cloudinary или на SD.

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Seeed Grove Kit

Перешли на Seeed Grove Starter Kit: Base Shield питает оба Sharp IR без конденсаторов! Макет сильно упростился. Стандартный ИК-датчик Seeed отличается — припаяли монтажные провода к GND, Vin, SIG для совместимости.

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары
Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Соответствие Project FeederWatch и заключение

Методика FeederWatch: за 2 дня фиксируют макс. число птиц вида одновременно. Наши счётчики жердей не совпадают, но параметры среды и расход корма — да. Фото помогают идентифицировать и документировать редких птиц. Потенциал стриминга через PubNub огромен: данные и фото в реальном времени для классов и любителей по всему миру. Хотим попробовать Clarifai блок PubNub для автораспознавания птиц, Cloudinary блок для улучшения фото. Какие ещё Grove датчики добавить?

Проект принес много радости: наблюдение за птицами вживую, «около сокровищничества» просмотр фото, график расхода корма. Arduino, Edison, Grove, PubNub, Cloudinary, 3D-печать — отличный вызов. Надеемся, вы вдохновитесь и присоединитесь к FeederWatch. В конце концов — это для птиц!

Код

Все файлы на GitHub: https://github.com/lachendeKatze/ItsForTheBirds

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

.stl файлы для кормушки в бутылке: GitHub/3DBuild

Схемы

Схема встроенной в кормушку электроники (Arduino 101 + датчики):

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Часть с Edison проста, фрицинг-компонента для веб-камеры нет — фото реальной сборки:

Полный стартовый набор Arduino и Intel Edison: датчики, веб-камера и аксессуары

Производственный процесс

  1. Компактный breakout для DHT температуры и влажности на Raspberry Pi — ATtiny85 и DHT22/DHT11
  2. Подключение ультразвукового датчика HC-SR04 к Raspberry Pi — практическое руководство
  3. Лучшие аксессуары для раскрытия полного потенциала Raspberry Pi
  4. SIGHT: умные очки для слабовидящих на Raspberry Pi
  5. Intel и Udacity запускают сертифицированную программу по Edge AI разработке
  6. Выбор правильного датчика наполнения: точность, надежность и рентабельность
  7. Продвинутая сенсорная плёнка TOMOPLEX для мониторинга аэрокосмических аппаратов в реальном времени
  8. Точный WiFi RSSI трекинг для датчиков МКС
  9. Революционный математический фреймворк помогает инженерам выбирать оптимальные авиационные сенсоры
  10. Интеграция метода 5S в Industry 4.0: преодоление вызовов внедрения