モバイル投票ボックス
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 3 |
アプリとオンラインサービス
> |
| |||
|
このプロジェクトについて
背景
私は、私たち一人一人が情報を処理し、結論を出す方法がどれほど異なっているかに魅了されています。私は、仲間からの圧力や集団思考が人の反応にどのように影響するか、または完全に変化するかに等しく魅了されています。
それで、匿名の群衆とランダムな群衆のグループに質問をする能力を私に与える機械を作ることができたらどうなるだろうかと思いました。それは威圧的ではなく(単純で)、仲間からの圧力や他の外部の影響を受けない環境にある必要があります。
このプロジェクトは、チャレンジに対する私のMVPであり、私はそれをモバイル投票ボックスと呼んでいます。私の最初の実験では、シンプルでありながら情熱を呼び起こす質問をしました。
モバイル投票ボックスをシカゴとラスベガス周辺のランダムな場所に配置しました。ここで全員の回答を見ることができます。
<図><図>
モバイル投票ボックスはバッテリーで動作し、すべての投票を携帯電話で送信するため、設定と忘れが非常に簡単です。部品の価格は約50ドルですが、AliExpressからすべてを調達した場合は、6ドルという低価格で製造できます。
セルラー接続はHologram.ioから無料です。彼らの開発者プランでは、無料のグローバルSIMカードと1か月あたり1 MBの無料データ(1か月あたり約2,000の無料投票データパケットに相当)を取得できます。今すぐ無料のDeveloperSIMを注文し、プロモーションコード BUDS-WITH-BENSTR を使用してください 送料無料と数ドルのクレジットが必要です。
**完全な開示:私はホログラムで働いているので、セルラー接続に基づいてIoTのタットをたくさん作っているのを見ることができます。**
<図> <図>アイデアを繰り返して、最終的には、世界中に数百のモバイル投票ボックスを配置し、毎日新しい質問をしてデータを公開できるほど堅牢な設計に到達するのは素晴らしいことです。
モバイル投票ボックスの作成方法
高レベルから、逆方向に作業します。つまり、出口から始まり、入口に向かって進みます。
- まず、IFTTTアプレットを作成して、データをGoogleスプレッドシートにプッシュします。
- 次に、SIMをアクティブ化し、データルートを設定し、モックデータで確認します。
- 最後に、ハードウェアを配線してデバイスをフラッシュします。
- 興味をそそる質問をして、箱を公共の場所に置きます。
データの行き先を理解する。
投票が記録されるたびに、デバイスはデータ文字列をホログラムデータルーターに送信します。データルーターは、文字列をJSONオブジェクトに拡張/操作し、IFTTTWebhookに送信します。 IFTTTは各投票をGoogleスプレッドシートに追加します。
一見過剰に見えるかもしれませんが、各要素はユニークで重要な役割を果たします。
- ホログラムデータストア SIMComモジュールからクラウドにデータを送信する複雑さを抽象化する優れた仕事をするために使用されます。
- ホログラムデータルーター 最小限の文字列データをIFTTTが必要とするJSON形式に操作するのに最適なために使用されます。また、デバイスコードを変更することなく、他の統合を自由に追加できます。
- IFTTT 複雑な統合を他のクラウド(この場合はGoogleスプレッドシート)に抽象化するのに優れているため、が使用されます。
- Googleスプレッドシート 理由だけで使用されます。
1. IFTTT <図> <図> <図>
- IFTTTに移動し、ログインするか、アカウントを作成します
- 新しいアプレットを作成する
- 1/6: Webhook を選択します サービス
- 2/6: Webリクエストの受信を選択します トリガーし、イベントに「投票」という名前を付けます "そしてトリガーを作成します。
- 3/6: Googleドライブを選択します サービス
- 4/6:アクションスプレッドシートに行を追加を選択します
- 5/6:アクションフィールドに入力し、下の画像を確認してください(これを無視しても、すべて正常に機能します)。
- 6/6:アプレットを終了します!
- 重要 -Webhookキー(URLの最後の部分)をコピーします。ここで独自のIFTTTWebhookキーを見つけてください:https://ifttt.com/services/maker_webhooks/settings
2.ホログラム
新しいデバイスを作成する
- Hologram.ioにアクセスし、ログインするか、アカウントを作成します
- SIMを有効にするか、既存のデバイスを選択します
- 注:新しいSIMを有効にすると、新しいデバイスが自動的に作成されます
- デバイスに任意の名前を付けます。おそらく投票Btn#1
新しいデータルートを作成する
- 左側のナビゲーションで[ルート]を選択し、新しいルートを追加します
- IN:トピック「投票」を入力してください "
- OUT:IFTTT MakerWebhookを選択
- Webhookキー:IFTTT Webhookキーをこのフィールドに貼り付けます(上記のIFTTT手順の最後のステップ)
- イベント:投票
- データ:
{"value1": "ピザ:シカゴまたはニューヨークスタイル?"、 "value2": "<
>"}
- ルートの作成
3.ルートとWebhookをテストします
- [デバイス]に移動>デバイスを選択> [メッセージング]> [デバイスからシミュレート]
- データを送信シカゴ トピックに投票
- ホログラムコンソールがポップアップし、成功したルートが表示されます
- Googleドライブに移動してスプレッドシートを開くと、新しいエントリが表示されます。
- エラーがある場合、またはデータが届かない場合は、上記の詳細を確認してください。
- 動作させられない場合は、https://community.hologram.ioでサポートを依頼してください
4.ハードウェア
- ホログラムダッシュボードからデータルーターデバイスキーを取得します。
- デバイス>デバイスの選択>構成> CSR資格情報の表示
- 以下の回路図とスケッチコードを確認してください。
- グローバル変数のデバイスキーを必ず置き換えてください。
お楽しみください!
コード
- モバイル投票ボックスArduinoコード-v1
モバイル投票ボックスArduinoコード-v1 C / C ++
HologramSIMCOMライブラリをArduinoIDEに手動で追加する必要があります-https://github.com/hologram-io/hologram-SIMCOM#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 "########" // SIMキーで置き換えます#defineCONNECT_LED 12#define VOTE1_BTN_PIN 6# VOTE1_LED_PIN 7#define VOTE2_BTN_PIN 9#define VOTE2_LED_PIN 10HologramSIMCOM Hologram(TX_PIN、RX_PIN、RESET_PIN、HOLO_KEY);を定義します。 // HologramStringをインスタンス化します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); //ボーを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); }}
回路図
製造プロセス