산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

GSM 연결 휴대용 투표 시스템 - 모바일 투표함 만들기

부품 및 소모품

아두이노 우노 (Arduino UNO) × 1
Adafruit FONA 미니 GSM 브레이크아웃 × 1
솔더리스 브레드보드 (풀 사이즈) × 1
원형 촉각 버튼 스위치 (컬러) × 2
LED (일반) × 3

앱 및 온라인 서비스

프로젝트 배경

사람들이 정보를 처리하고 결론을 내리는 방식, 그리고 집단 압력과 그룹씽크가 개인의 반응에 미치는 영향에 매료되어 이 프로젝트를 시작했습니다. 익명의 무작위 군중에게 질문을 던질 수 있는 기계를 만들고 싶었습니다. 위압적이지 않고(단순함), 동료 압력이나 외부 영향이 없는 환경에서 말이죠.

이것이 모바일 투표함(Mobile Vote Box)의 MVP(Minimum Viable Product)입니다. 첫 실험으로 열정적인 토론을 불러일으키는 간단한 질문을 던졌습니다.

시카고와 라스베이거스의 무작위 장소에 모바일 투표함을 설치했습니다. 배터리로 작동하며 셀룰러 네트워크를 통해 모든 투표를 전송하므로, 설치 후 방치(set-and-forget)가 매우 쉽습니다. 부품 비용은 약 $50지만, 알리익스프레스에서 부품을 조달하면 $6까지 낮출 수 있습니다.

셀룰러 연결은 Hologram.io에서 무료로 제공됩니다. 개발자 플랜으로 무료 글로벌 SIM 카드와 월 1MB 무료 데이터(약 2,000개 투표 데이터 패킷/월)를 받을 수 있습니다. 프로모션 코드 BUDS-WITH-BENSTR로 무료 배송과 크레딧 혜택을 받으세요.

공개: 저는 Hologram에서 근무하고 있어 셀룰러 연결 기반 IoT 튜토리얼을 많이 제작합니다.

전 세계에 수백 개의 모바일 투표함을 배치하여 매일 새로운 질문을 던지고 데이터를 공개하는 것이 궁극적인 목표입니다.

모바일 투표함 제작 과정

높은 수준에서 역순으로 작업합니다. 데이터 출구에서 시작해 입구로 향합니다.

  1. IFTTT 애플릿 생성 → 구글 스프레드시트로 데이터 전송
  2. SIM 활성화, 데이터 라우트 설정, 모의 데이터로 검증
  3. 하드웨어 배선 및 펌웨어 플래싱
  4. 흥미로운 질문을 정해 공공장소에 설치

데이터 흐름 이해

투표가 기록될 때마다 장치는 Hologram Data Router로 데이터 문자열을 보냅니다. 라우터는 이를 JSON 객체로 변환해 IFTTT 웹훅으로 전송하고, IFTTT는 각 투표를 구글 시트에 추가합니다.

복잡해 보이지만 각 요소는 고유한 역할을 합니다:

1단계: IFTTT 설정

  1. IFTTT 로그인/가입 → 새 애플릿 생성
  2. 트리거: Webhooks → "Receive a web request" → 이벤트명 vote
  3. 액션: Google Drive → "Add row to spreadsheet"
  4. 액션 필드 완성 (이미지 참조)
  5. 애플릿 완료 → 웹훅 키 복사 (URL의 마지막 부분)
    키 확인: https://ifttt.com/services/maker_webhooks/settings

2단계: Hologram 설정

  1. Hologram.io 로그인/가입 → SIM 활성화 또는 기존 기기 선택
  2. 새 기기 생성 (예: "Vote Btn #1")
  3. 좌측 메뉴 Routes → 새 라우트 추가
  4. IN: 토픽 vote
  5. OUT: IFTTT Maker Webhook 선택
  6. Webhook Key: IFTTT에서 복사한 키 붙여넣기
  7. Event: vote
  8. Data: {"value1": "Pizza: Chicago or New York Style?", "value2": "<>"}
  9. 라우트 생성

3단계: 라우트 및 웹훅 테스트

  1. Devices → 기기 선택 → Messaging → Simulate from Device
  2. 데이터 chicago를 토픽 vote로 전송
  3. Hologram 콘솔에서 성공적인 라우트 확인
  4. 구글 드라이브 스프레드시트에서 새 항목 확인
  5. 문제 발생 시 Hologram 커뮤니티에서 도움 요청

4단계: 하드웨어 구성

  1. Hologram 대시보드에서 Data Router Device Key 복사
    (Devices → 기기 선택 → Configure → Show CSR Credentials)
  2. 아래 회로도와 스케치 코드 참조
  3. 전역 변수 HOLO_KEY에 본인의 Device Key 입력

코드

#include 

#define RX_PIN 2       // SIMCom RX - MCU TX
#define TX_PIN 3       // SIMCom TX - MCU RX
#define RESET_PIN 4    // SIMCom 리셋
#define HOLO_KEY "########"  // 본인의 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);
  
  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)) {
    // 성공 시 LED 깜빡임
    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 연결 휴대용 투표 시스템 - 모바일 투표함 만들기

라이브러리 설치

Arduino IDE에 HologramSIMCOM 라이브러리를 수동으로 추가해야 합니다:
https://github.com/hologram-io/hologram-SIMCOM

확장 아이디어

제조공정

  1. 주스 박스 혁명: 역사, 디자인, 환경 영향
  2. 블랙박스 비행 기록 장치: 초기 시제품부터 미래 통합 설계까지
  3. DIY 월-E 영감 라즈베리 파이 CD-박스 로봇
  4. C# 클래스 마스터하기: 객체 지향 프로그래밍의 청사진
  5. C# 연산자 오버로딩 마스터하기: 사용자 정의 타입을 위한 연산자 재정의
  6. DIY UVC 살균기 키트 – 저비용, 간편 제작 UV 박스(의료/개인용품용)
  7. UnifiedWater v1 - 아두이노 MKR GSM 1400 기반 완전 수질 모니터링 센서 키트
  8. Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링
  9. 컴팩트 기상 관측소: 아두이노 나노 & ESP8266, BMP280 기압계 & OLED/노키아 LCD
  10. 박스 컷 채광(Box Cut Mining): 정의, 공정, 장단점