Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Draagbaar stemstysteem met GSM-connectiviteit

Onderdelen en benodigdheden

  • Arduino UNO (1x)
  • Adafruit FONA mini GSM breakout (1x)
  • Solderloos breadboard full-size (1x)
  • Ronde tastschakelaars (Adafruit Colorful) (2x)
  • LED's (3x)

Apps en online diensten

  • Hologram Data Router (gratis developer plan)
  • IFTTT Maker service

Over dit project

Achtergrond

Hoe beïnvloedt groepsdruk ons stemgedrag? Ik wilde een machine bouwen die anonieme, willekeurige groepen vragen kan stellen – zonder sociale druk, simpel en batterijgevoed. Zo ontstond de Mobile Vote Box.

Ik plaatste dozen in Chicago en Las Vegas met de vraag: "Pizza: Chicago or New York Style?". De doos werkt op batterij, stuurt elke stem via GSM door, en kost ongeveer $50 (of $6 via AliExpress).

Gratis GSM-data met Hologram.io

Hologram biedt een gratis Developer Plan: wereldwijde SIM-kaart + 1MB gratis data/maand (≈2000 stemmen). Gebruik promotiecode BUDS-WITH-BENSTR voor gratis verzending en extra tegoed.

Openbaarheid: Ik werk bij Hologram, dus verwacht meer IoT-tutorials over cellulair.

Doel

Uiteindelijk honderden dozen wereldwijd, elke dag een nieuwe vraag, data publiek beschikbaar.

Hoe we de Mobile Vote Box bouwen

We werken achterstevoren: van data-egress naar hardware.

  1. IFTTT-applet maken om data in Google Sheets te zetten
  2. SIM activeren, data route instellen, testen met mock data
  3. Hardware bekabelen en code flashen
  4. Een boeiende vraag bedenken en de doos in het openbaar plaatsen

Dataflow begrijpen

Elke stem → Hologram Data Router → JSON → IFTTT Webhook → Google Sheets.

  • Hologram Data Store: Vereenvoudigt versturen van SIMCom-module naar cloud
  • Hologram Data Router: Zet minimale string-data om naar JSON voor IFTTT, flexibel voor extra integraties
  • IFTTT: Abstraceert complexe cloud-integraties (Google Sheets)
  • Google Sheets: Simpele opslag en visualisatie

Stap 1: IFTTT instellen

  1. Ga naar IFTTT, maak account aan
  2. Nieuw Applet → Webhooks service → "Receive a web request" → Event naam: vote
  3. Actie: Google Drive → "Add row to spreadsheet"
  4. Velden invullen (zie afbeeldingen in originele handleiding)
  5. Kopieer je Webhook Key: https://ifttt.com/services/maker_webhooks/settings

Stap 2: Hologram instellen

  1. Ga naar Hologram.io, activeer SIM of selecteer device
  2. Routes → New Route
  3. IN: topic vote
  4. OUT: IFTTT Maker Webhook
  5. Webhook Key: plak je IFTTT key
  6. Event: vote
  7. Data (JSON): {"value1": "Pizza: Chicago or New York Style?", "value2": "<>"}
  8. Create Route

Stap 3: Testen

  1. Devices → jouw device → Messaging → Simulate from Device
  2. Stuur data chicago naar topic vote
  3. Controleer Hologram console (succes) en Google Sheets (nieuwe rij)
  4. Problemen? Hologram Community

Stap 4: Hardware

  • Haal je Device Key op: Devices → Configure → Show CSR Credentials
  • Vervang HOLO_KEY in de code met je eigen key
  • Bekabel volgens schema (zie afbeelding)

Code

Installeer de HologramSIMCOM-bibliotheek handmatig: GitHub

#include <HologramSIMCOM.h>

#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 "########"  // VERVANG MET JOUW DEVICE 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)) {
    // Knipper bij succes
    for(int i=0; i<4; i++) {
      digitalWrite(VOTE_LED, LOW); delay(100);
      digitalWrite(VOTE_LED, HIGH); delay(100);
    }
    digitalWrite(VOTE_LED, LOW);
  } else {
    digitalWrite(VOTE_LED, LOW);
  }
}

Schema

Zie afbeelding in de originele projectpagina voor het bekabelingsschema.

Uitbreidingen

  • Meer knoppen/opties toevoegen
  • OLED-scherm voor feedback
  • Zonnepaneel + lader voor langdurige autonomie
  • Verschillende vragen per locatie via configuratie

Productieproces

  1. De Sapdoos Revolutie: Geschiedenis, Ontwerp en Milieueffect
  2. Black Box Vluchtrecorders: Van Vroege Prototypen tot Toekomstige Geïntegrerde Ontwerpen
  3. DIY Wall-E Geïnspireerde Raspberry Pi CD-Doos Robot
  4. Zelfbouw UVC-sterilisatiedoos – Goedkope, makkelijke UV-box voor medische en persoonlijke items
  5. UnifiedWater v1 – Complete Arduino Waterkwaliteit Sensor Kit
  6. Really Smart Box: IoT-ingeschakelde slimme opslagoplossing
  7. Compact Weerstation: Arduino Nano & ESP8266 Met BMP280 Barometrische Sensor & OLED/Nokia LCD Display
  8. DIY Whac-A-Mole Arcade Spel (Knoppen Editie) – Arduino Project
  9. Box cut mijnbouw: definitie en toepassingen
  10. C# Klassen Beheersen: Blauwprint voor Krachtig Objectgeoriënteerd Programmeren
  11. Operator Overloading in C# Beheersen voor Aangepaste Typen