Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Sistema de votación portátil con conectividad GSM

Componentes y materiales

Arduino UNO × 1
Adafruit FONA mini GSM breakout × 1
Protoboard sin soldadura (tamaño completo) × 1
Pulsadores táctiles redondos coloridos (Adafruit) × 2
LED (genérico) × 3

Aplicaciones y servicios online

Sobre este proyecto

Antecedentes

Me fascina cómo cada uno de nosotros procesa la información y llega a conclusiones de manera diferente. Igualmente me fascina cómo la presión de grupo y el pensamiento colectivo influyen o cambian directamente la respuesta de una persona.

Así que me pregunté: ¿qué pasaría si pudiera construir una máquina que me diera la capacidad de hacer preguntas a grupos de multitudes anónimas y aleatorias? Necesitaba que fuera poco intimidante (simple) y en un entorno libre de presión de grupo u otras influencias externas.

Este proyecto es mi MVP (Producto Mínimo Viable) para ese desafío, lo llamo la "Caja de Votación Móvil". Para mi primer experimento hice una pregunta simple pero que genera pasión.

Coloqué la Caja de Votación Móvil en lugares aleatorios de Chicago y Las Vegas. La caja funciona con batería y transmite cada voto a través de la red celular, lo que la hace extremadamente fácil de configurar y dejar funcionando. El costo de los componentes es de unos $50, pero podría construirse por tan solo $6 si se obtienen los componentes en AliExpress.

La conectividad celular es gratuita desde Hologram.io. Su Plan de Desarrollador me permite obtener una tarjeta SIM global gratuita más 1MB de datos gratis al mes (equivalente a unos 2,000 paquetes de datos de votos gratis al mes). Pide tu SIM de desarrollador gratis hoy, usa el código promocional BUDS-WITH-BENSTR para envío gratis y unos dólares de crédito.

Divulgación completa: Trabajo para Hologram, así que verás que hago muchos tutoriales de IoT basados en conectividad celular.

Sería increíble iterar sobre la idea y eventualmente llegar a un diseño lo suficientemente robusto para tener cientos de Cajas de Votación Móvil alrededor del mundo, haciendo una nueva pregunta cada día y haciendo los datos públicamente disponibles.

Cómo construiremos la Caja de Votación Móvil

Desde un nivel alto trabajaremos hacia atrás: empezando desde la salida de datos, avanzando hacia la entrada.

  1. Primero crearemos un Applet de IFTTT para enviar datos a una Hoja de Cálculo de Google.
  2. Luego activaremos nuestra SIM, configuraremos la ruta de datos y verificaremos con datos de prueba.
  3. Finalmente, cablearemos el hardware y flashearemos el dispositivo.
  4. Ahora haz una pregunta intrigante y coloca la caja en un lugar público.

Entendiendo a dónde van los datos

Cada vez que se registra un voto, nuestro dispositivo envía una cadena de datos al Enrutador de Datos de Hologram. El Enrutador infla/manipula la cadena en un objeto JSON y la envía a un Webhook de IFTTT. IFTTT añade cada voto a una Hoja de Google.

Aunque a primera vista parezca excesivo, cada elemento cumple un rol único e importante:

1. Configuración de IFTTT

  1. Ve a IFTTT, inicia sesión o crea una cuenta
  2. Crea un nuevo Applet
  3. Selecciona el servicio Webhook
  4. Selecciona el disparador Receive a Web Request, nombra el evento "vote" y crea el disparador
  5. Selecciona el servicio Google Drive
  6. Elige la acción Add Row to Spreadsheet
  7. Completa los campos de la acción
  8. Finaliza el Applet
  9. IMPORTANTE: Copia tu clave de webhook (última parte de la URL). Encuentra tu clave única en: https://ifttt.com/services/maker_webhooks/settings

2. Configuración de Hologram

Crear un nuevo dispositivo:

Crear una nueva Ruta de Datos:

3. Probar Ruta y Webhook

4. Hardware

¡Disfruta!

Código

#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 "########" // Reemplaza con tu clave SIM
#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);
  
  // Iniciar módem y conectar a la red global de Hologram
  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);
  
  // Enviar al Enrutador de Datos de Hologram
  if(Hologram.send(VOTE_VALUE, HOLOGRAM_TOPIC)) {
    // Parpadear LED si el voto fue exitoso
    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);
  }
}

Nota: Necesitarás añadir manualmente la librería HologramSIMCOM a tu Arduino IDE desde https://github.com/hologram-io/hologram-SIMCOM

Esquemático

Consulte la imagen del esquemático de conexiones en el proyecto original.

Proceso de manufactura

  1. La Revolución del Brick de Jugo: Historia, Diseño e Impacto Ambiental
  2. Cajas negras de vuelo: de los primeros prototipos a diseños integrados futuros
  3. Robot DIY inspirado en Wall‑E con Raspberry Pi y caja de CD
  4. Kit esterilizador UVC DIY: caja UV de bajo costo y fácil construcción para artículos médicos y personales
  5. UnifiedWater v1 – Kit completo de sensor de calidad de agua con Arduino
  6. Really Smart Box: Solución de Almacenamiento Inteligente IoT
  7. Estación meteorológica compacta: Arduino Nano y ESP8266 con sensor BMP280 y pantalla OLED/Nokia LCD
  8. Juego Arcade Whac-A-Mole DIY (Edición Botones) – Proyecto Arduino
  9. Corte en Caja (Box Cut) en Minería: Definición y Aplicaciones
  10. Clases en C#: Blueprint para programación orientada a objetos potente
  11. Sobrecarga de operadores en C# para tipos personalizados