9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry Pi ✕ Google Cloud Pub/Sub = 呼び鈴

Last updated at Posted at 2018-01-05

Raspberry Pi Zero Wを入手したので、それを使ってリモート呼び鈴を作ってみました。

システム構成

今回は、Google Cloud Platform(GCP)を利用することにしました。

呼び鈴.png

:one: Webブラウザ
:two: Publisher
:three: Google Cloud Pub/Sub
:four: Subscriber
:five: 呼び鈴

Subcriber(Raspberry Pi)

Raspberry Pi の設定

Google Cloud SDK インストール

始める前に、Raspberry PiにGoogle Cloud SDK をインストールします。

ダウンロードするパッケージ
Linux(x86)

PYTHON用のクライアント ライブラリインストール

本家ドキュメントのコマンドを実行すると、「grpcio (1.8.2)がない:warning:」ってエラーが出てしまったので、1つバージョンを下げたパッケージをインストールすることにしました。

$ pip install --upgrade google-cloud-pubsub==0.30.0 --ignore-installed

※インストール環境まで結構時間かかりました(20分位)。気長に待ちましょう…:expressionless:

ついでにトピックとサブスクリプションの作成

せっかくGoogle Cloud SDKもインストールしたし、本家のドキュメントにもあるように、gvloudコマンドからトピックとサブスクリプションを作ってしまいましょう。

$ gcloud beta pubsub topics create my-topic
$ gcloud beta pubsub subscriptions create my-sub --topic my-topic

メッセージ受信

Raspberry Piは受信側にするので、メッセージ受信のサンプルコードを参考に実装します。

GoogleCloudPlatform/python-docs-samples

※メッセージ受信の様子
スクリーンショット 2018-01-06 0.11.53.png
メッセージは、Pub/Subから、Topicを選択し、「メッセージを公開」ボタンから送信することが出来ます。

メッセージの受信することができるようになりました。
次は、受けた後に呼び鈴を鳴らす仕組みを作ります。

部品

ブレッドボード

呼び鈴_raspi.png

Publisher(バックエンド)

こっちはあまり楽しくないですが。

Google Cloud Platform

:two: のパブリッシャー アプリケーションにGOOGLE APP ENGINEを利用します。ここには、スマホ(Web)から(今回は呼び鈴を鳴らす)メッセージを送信するための簡単なボタンUIと、ボタンのクリックイベントで発生させるAPIのエンドポイントを作ります。

  1. ブラウザから、https://<project-id>.appspot.com/ にアクセスする
  2. ボタンのページを表示する
呼び鈴ボタン
  1. ボタンを押す
  2. PublishするAPIを呼ぶ
  3. 成功ステータスを返す

呼び鈴_Web.png

言語、フレームワークなど

  1. Java on Google App Engine
  2. Spring Boot
  3. Thymeleaf

#完成品
IMG_0096.jpg

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?