Sistem Pemilihan Portabel dengan Konektivitas GSM
Komponen dan Perlengkapan
| Arduino UNO |
1 |
| Adafruit FONA mini GSM breakout |
1 |
| Solderless Breadboard Full Size |
1 |
| Adafruit Colorful Round Tactile Button Switch |
2 |
| LED (umum) |
3 |
Aplikasi dan Layanan Online
| Hologram Data Router |
| IFTTT Maker service |
Tentang Proyek Ini
Latar Belakang
Saya terpesona dengan cara masing-masing dari kita memproses informasi dan sampai pada kesimpulan. Saya sama terpesonanya dengan cara tekanan teman sebaya dan berpikir kelompok mempengaruhi atau sepenuhnya mengubah respons seseorang.
Jadi saya bertanya, bagaimana jika saya bisa membuat mesin yang memberiku kemampuan untuk menanyakan pertanyaan kepada kelompok orang anonim dan acak? Ini harus tidak menakutkan (sederhana) dan dalam lingkungan bebas dari tekanan teman sebaya atau pengaruh eksternal lainnya.
Proyek ini adalah MVP saya untuk tantangan ini, saya menyebutnya Kotak Suara Seluler. Untuk percobaan pertama saya saya bertanya pertanyaan sederhana namun memicu semangat.
Saya meletakkan Kotak Suara Seluler di tempat acak di Chicago dan Las Vegas. Anda dapat melihat semua respons di sini.
Kotak Suara Seluler berjalan pada baterai dan mentransmisikan setiap suara melalui seluler, membuatnya sangat mudah untuk setting-and-forget. Biaya bagian sekitar $50 tetapi dapat dibangun se murah $6 jika Anda mencari semua melalui AliExpress.
Konektivitas seluler gratis dari Hologram.io. Rencana Developer mereka memungkinkan saya untuk mendapatkan SIM gratis global plus 1MB data gratis per bulan (yang setara dengan sekitar 2.000 paket data suara gratis per bulan). Pesan SIM Developer gratis Anda hari ini, gunakan kode promo BUDS-WITH-BENSTR untuk pengiriman gratis dan beberapa $$ kredit.
**Pengungkapan penuh: Saya bekerja untuk Hologram jadi Anda akan melihat saya membuat banyak tutorial IoT berdasarkan konektivitas seluler.**
Akan luar biasa untuk mengembangkan ide ini dan akhirnya sampai pada desain yang cukup kuat sehingga kita bisa memiliki ratusan Kotak Suara Seluler di seluruh dunia, menanyakan pertanyaan baru ke dunia setiap hari dan membuat data tersedia untuk umum.
Bagaimana kita akan membangun Kotak Suara Seluler
Dari tingkat tinggi kita akan bekerja mundur - mulai dari egress, bekerja jalan kita menuju ingress.
- Pertama kita akan membuat Applet IFTTT untuk mendorong data ke Google Spreadsheet.
- Selanjutnya kita akan mengaktifkan SIM, menyiapkan rute data, dan memverifikasi dengan data tiruan.
- Terakhir, kita akan merangkai hardware dan memflash perangkat.
- Sekarang tanyakan pertanyaan yang menarik dan letakkan kotak di tempat umum.
Memahami kemana data pergi.
Setiap kali suara dicatat perangkat kami mengirim data String ke Hologram Data Router. Data Router mengembang/manipulasi String menjadi objek JSON dan mengirimkannya ke IFTTT Webhook. IFTTT menambahkan setiap suara ke Google Sheet.
Pada pandangan pertama mungkin terlihat berlebihan tetapi setiap elemen melayani peran unik dan penting.
- Hologram Data Store digunakan karena bekerja bagus mengabstraksi kompleksitas mengirim data dari modul SIMCom ke cloud.
- Hologram Data Router digunakan karena bekerja bagus memanipulasi data String minimal saya ke format JSON yang diperlukan IFTTT. Ini juga memberi saya kebebasan untuk menambahkan integrasi lain tanpa perlu memodifikasi kode perangkat saya.
- IFTTT digunakan karena hebat mengabstraksi integrasi kompleks ke cloud lain, dalam kasus kami Google Sheets.
- Google Sheets digunakan hanya karena.
1. IFTTT
- Pergi ke IFTTT, login atau buat akun
- 1 dari 6: Pilih layanan Webhook
- 2 dari 6: Pilih pemicu Receive a Web Request, beri nama acara “vote” dan buat pemicu.
- 3 dari 6: Pilih layanan Google Drive
- 4 dari 6: Pilih aksi Add Row to Spreadsheet
- 5 dari 6: Lengkapi bidang aksi, lihat gambar di bawah ini (jika Anda mengabaikan ini semuanya akan tetap berfungsi baik).
- 6 dari 6: Selesaikan Applet!
- PENTING - Salin kunci webhook Anda (bagian terakhir dari URL). Temukan kunci webhook IFTTT unik Anda di sini: https://ifttt.com/services/maker_webhooks/settings
2. Hologram
Buat perangkat baru
- Pergi ke Hologram.io, login atau buat akun
- Aktifkan SIM Anda atau pilih Perangkat yang ada
- Catatan: mengaktifkan SIM baru akan secara otomatis membuat perangkat baru
- Nama perangkat apa pun yang Anda inginkan, mungkin Vote Btn #1
Buat Rute Data baru
- Di navigasi kiri pilih Rute dan tambahkan Rute Baru
- IN: masukkan topik “vote”
- OUT: pilih IFTTT Maker Webhook
- Webhook Key: tempel kunci webhook IFTTT Anda ke bidang ini (langkah terakhir dalam petunjuk IFTTT di atas)
- Data:
{"value1": "Pizza: Chicago or New York Style?", "value2": "<<decdata>>"}
3. Uji Rute dan Webhook
- Pergi ke Perangkat > pilih perangkat Anda > Pesan > Simulasi dari Perangkat
- Kirim data chicago ke topik vote
- Konsol hologram akan muncul dan menunjukkan rute yang berhasil
- Jika Anda pergi ke Google Drive dan buka spreadsheet, entri baru harus muncul.
- Jika Anda memiliki kesalahan atau data tidak tiba maka tinjau detail di atas.
- Jika Anda tidak dapat membuatnya bekerja minta bantuan di https://community.hologram.io
4. Hardware
- Ambil Kunci Perangkat Rute Data Anda dari dasbor Hologram.
- Perangkat > pilih perangkat > Konfigurasikan > Tampilkan Kredensial CSR
- Perhatikan skematik dan kode sketsa di bawah ini.
- Pastikan untuk mengganti Kunci Perangkat dalam variabel global.
Selamat bersenang-senang!
Kode
Mobile Vote Box Arduino code - v1C/C++
#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 "########" //replace w/your SIM 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); // Instantiate Hologram String VOTE1_VALUE = "chicago"; String VOTE2_VALUE = "newYork"; String HOLOGRAM_TOPIC = "vote"; void setup() { Serial.begin(19200); while(!Serial); // Start modem and connect to Hologram's global network Hologram.debug(); //set modes for used pins 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); // set baud to 19200 and start server on port 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); // send to the Hologram Data Router if(Hologram.send(VOTE_VALUE, HOLOGRAM_TOPIC)) { // blink LED if vote was successful // this is crappy code, consider refactoring 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); } }
Skematik