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

Переносная система голосования с GSM-связью

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

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

О проекте

Предыстория

Автор хотел создать устройство для анонимного опроса случайных людей в публичных местах, свободное от группового давления. Так родился «Mobile Vote Box» (Переносная коробка для голосования). Устройство работает от батареи, передает каждый голос через сотовую сеть, что позволяет просто установить его и забыть. Стоимость деталей ~$50 (можно снизить до $6 при заказе в AliExpress).

Сотовая связь бесплатна от Hologram.io (Developer Plan: бесплатная глобальная SIM-карта + 1 МБ в месяц, около 2000 голосов). Промокод BUDS-WITH-BENSTR дает бесплатную доставку и кредит. Раскрытие: автор работает в Hologram.

Архитектура передачи данных

При голосовании устройство отправляет строку в Hologram Data Router. Router преобразует её в JSON и отправляет на вебхук IFTTT, который дописывает строку в Google Таблицу.

Переносная система голосования с GSM-связью

Пошаговая инструкция

1. Настройка IFTTT

  1. Зарегистрируйтесь/войдите в IFTTT, создайте новый Applet.
  2. Выберите сервис Webhooks, триггер Receive a web request, имя события — vote.
  3. Действие: сервис Google Drive, действие Add row to spreadsheet.
  4. Заполните поля (можно оставить по умолчанию).
  5. Скопируйте ваш Webhook Key (последняя часть URL): https://ifttt.com/services/maker_webhooks/settings.

2. Настройка Hologram

  1. Создайте устройство в Hologram.io (активируйте SIM). Назовите, например, Vote Btn #1.
  2. Создайте Data Route: IN — топик vote, OUT — IFTTT Maker Webhook.
  3. Вставьте Webhook Key, Event: vote, Data: {"value1": "Pizza: Chicago or New York Style?", "value2": "<>"}.

3. Тестирование маршрута

  1. В консоли Hologram: Devices → ваше устройство → Messaging → Simulate from Device.
  2. Отправьте данные chicago в топик vote.
  3. Проверьте успешность маршрута и появление строки в Google Таблице.

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

Код (Arduino)

Требуется библиотека HologramSIMCOM (установить вручную из GitHub).

#include 

#define RX_PIN 2       // SIMCom RX -> MCU TX
#define TX_PIN 3       // SIMCom TX -> MCU RX
#define RESET_PIN 4    // SIMCom reset
#define HOLO_KEY "########"  // ВСТАВЬТЕ СВОЙ КЛЮЧ УСТРОЙСТВА
#define CONNECT_LED 12
#define VOTE1_BTN_PIN 6
#define VOTE1_LED_PIN 7
#define VOTE2_BTN_PIN 9
#define VOTE2_LED_PIN 10

HologramSIMCOM Hologram(TX_PIN, RX_PIN, RESET_PIN, HOLO_KEY);

String VOTE1_VALUE = "chicago";
String VOTE2_VALUE = "newYork";
String HOLOGRAM_TOPIC = "vote";

void setup() {
  Serial.begin(19200);
  while (!Serial);
  Hologram.debug();

  pinMode(CONNECT_LED, OUTPUT);
  pinMode(VOTE1_BTN_PIN, INPUT);
  pinMode(VOTE1_LED_PIN, OUTPUT);
  pinMode(VOTE2_BTN_PIN, INPUT);
  pinMode(VOTE2_LED_PIN, OUTPUT);

  bool cellConnected = Hologram.begin(19200, 8888);
  if (cellConnected) digitalWrite(CONNECT_LED, HIGH);
}

void loop() {
  Hologram.debug();
  if (digitalRead(VOTE1_BTN_PIN) == HIGH) sendVote(VOTE1_VALUE, VOTE1_LED_PIN);
  if (digitalRead(VOTE2_BTN_PIN) == HIGH) sendVote(VOTE2_VALUE, VOTE2_LED_PIN);
}

void sendVote(String VOTE_VALUE, const int VOTE_LED) {
  digitalWrite(VOTE_LED, HIGH);
  if (Hologram.send(VOTE_VALUE, HOLOGRAM_TOPIC)) {
    // Мигание при успехе
    digitalWrite(VOTE_LED, LOW); delay(100);
    digitalWrite(VOTE_LED, HIGH); delay(100);
    digitalWrite(VOTE_LED, LOW); delay(100);
    digitalWrite(VOTE_LED, HIGH); delay(100);
    digitalWrite(VOTE_LED, LOW);
  } else {
    digitalWrite(VOTE_LED, LOW);
  }
}

Схема подключения

Переносная система голосования с GSM-связью

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

  1. Революция соковых коробок: история, дизайн и экологический след
  2. Черные ящики самолетов: от ранних прототипов к будущим интегрированным дизайнам
  3. DIY робот в стиле Wall‑E на Raspberry Pi из коробки от CD
  4. Классы в C#: определение, конструкторы, деструкторы, статические члены
  5. Перегрузка операторов в C#: пользовательские типы и кастомная логика
  6. DIY UVC-стерулизатор: бюджетный UV-коробок для медицинских и бытовых предметов
  7. UnifiedWater v1: полный набор датчиков качества воды на Arduino MKR GSM
  8. Really Smart Box: умная коробка для IoT-мониторинга запасов
  9. Компактная метеостанция: Arduino Nano + ESP8266, BMP280, OLED / Nokia 5110 LCD
  10. Ящурная разработка (Box Cut): определение и применение в горном деле