説明

私は、ボタンを押すだけで何が欠けているかを記録できるデバイスを作成することにしました。 デバイスは、不足している製品に関する情報を電話機に送信し、何かが購入された場合に応答します。
この記事では、このことをどのようにまとめるか、どのような困難に遭遇し、どのように状況から抜け出したかについてお話したいと思います。
作業実演
リマインダーストーリー
壁に買い物リストを作成したのは私が初めてではありません。 アメリカでは20世紀初頭にも同じものが使われていました。 ホステスは、製品名の前の穴にペグを挿入することで終了したことに気づきました。 キッチンヘルパーは必要なものを購入し、ペグを引き出しました。 これらのリマインダーは次のようになりました。

私はこの考えを21世紀に移すことが絶対に必要であることに気づき、仕事に取り掛かりました。
システム構成
システムは3つのコンポーネントで構成されています。
- ボタン付きボード
- リクエスト処理サーバー
- iOSアプリ
ボタンが押されると、ボードはサーバーにリクエストを送信します。 サーバーは状態を保存し、Appleプッシュ通知を使用してアプリケーションに通知します。 アプリケーションはサーバーにステータスを要求し、そこで購入した製品に関する更新を送信します。 5分ごとに、ボードはサーバーからステータスを更新します。
ボタン付きボード
このシステムは、STM32F051マイクロコントローラーに基づいています。 接続と操作が簡単なため使用しています。
Wi-Fiモジュールとして、 RN-XV WiFlyを選択しました 。 このモジュールは、プログラムと使用が非常に簡単です。必要なのは、電源、リセット、UART接続だけです。
ボードには固定されていない35個のボタンがあります(つまり、ボタンを押すのは指を押している間だけです)。 各ボタンには小さなLEDがあります。
TL1265ボタンを使用しました 。 各ボタンは個別のトランジスタを介して接続します。 これは、シフトレジスタの最大電流強度を超えないようにするために必要でした。

ボタン(およびそのLED)は、シフトレジスタを使用して接続されます。 ボタンの状態を読み取るための74HC165A :

LEDを制御するための74HC594 :

残念ながら、Eagle CADプログラムの無料版では、1つの回路のサイズが制限されています。 そのため、ボタン、メインコントロールモジュールを使用していくつかの小さな回路を作成し、すべてを配線する必要がありました。

一方、メインレイヤーは次のようになります。

以前はハウスサーキットを毒殺していましたが、今回はOSH Parkに注文することにしました。 スキームは10日で作成されました。 品質に関する苦情はありません:

家は、スルーホールに設置された多くの古いトランジスタと抵抗器でいっぱいで、ほとんどすべてがこのプロジェクトに行きました。

リクエスト処理サーバー
おそらくこれが最も簡単な部分だった。 サーバーはPHPで作成され、MySQLを使用して状態を保存し、
stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', ...)
を使用してAppleプッシュ通知を送信します。
iOSアプリ
ここでも複雑なことはありません。 2つの画面、1つは完成品、もう1つは完全なリスト:
本体組立
アマチュアプロジェクトのきちんとしたケースが本当に好きです。 このプロジェクトのボディの基礎は、通常のフォトフレームでした。 固体ガラスは、カスタムカットされた透明プラスチックに交換する必要がありました。

碑文では、問題はより複雑でした。 きちんと署名したり、ボタンホルダーをきちんと切り取ったりすることができませんでした。 その結果、私には非常にエレガントな解決策のように思えました。 レーザーカッターを使用して、最初にボタン用の穴を開けました。 それから、より低い力で、私は手紙のために溝を切り取りました。 ペンと白インクで溝を埋めました。 作業プロセスは次のとおりです。
だから私は3つの層を得た:
結果
結果は次のとおりです。
これは部屋でどのように見えるかです:
このことについての質問に喜んでお答えします。 また、何を改善できるか、何に注意を払うべきかについての意見を聞くことは素晴らしいことです。
いずれにせよ、今では、このようなことで、冷蔵庫に入れたビールの戦略的供給が尽きることはないと確信しています!