itLinkedInPocketCopyラズパイを触り始めてはや数ヶ月(夜中や週末にコツコツと。)、今回初めて「みんなのラズパイコンテスト2017」に作品を応募しました!日経Linuxと日経ソフトウエア、ラズパイマガジンが主催するコンテストで、今年で4回目。例年100件を超える応募があるとか。みなさんどんな作品を作って応募されているのか興味津々です♪それでは、応募した作品を紹介していきたいと思います。ゼロから始めるMQTT生活」にすれば良かったかなと。〜」そうです、IoK「インターネット・オブ・館内放送」まさに、このサイトの趣旨、日常生活にIoTをプラスする!です。自宅hackとか、IoTガジェットに触れられている方はタイトルからお察しかと思いますが、本作品は軽量なメッセージキュープロトコルであるMQTTを使って、ラズパイベースの館内放送システムを作ってみたと言う物です。システムの全体像はコチラ。中継サーバーを介して、メッセージがラズパイに送られる↓ラズパイは受け取ったメッセージが自分宛なら音声に変換する↓スピーカーから放送するという流れです。作ろうと思ったきっかけ「そういえば、うちの会社って館内放送が無いよなー」ある時、ふと思いました。ICT機器に囲まれ、スマートフォンにもたくさんの通知が来るような環境ですが、スマートフォンやパソコンの通知では気付かないことも多く、固定電話ではその場にいないと出られません。小中高生の時代は全館でチャイムがなっていたし、何かあれば全体に呼び出しがかかっていた。自分が気付かなくても周りの人が気付いて教えてくれたりするので意外と良かったなと。Assistant、はたまたソフトバンクのPepperなどなど、語りかけてくるインターフェースがどんどん出てきているし、音声って凄く日常への親和性も高い。ことラズパイで作ってみるか!と思ったのがきっかけでした。用いたPUSH通知を行い、全端末がほぼ時間遅れなく放送を開始します。送信データは軽量なテキストメッセージだけなので通信遅れも最小限です。JTalk)届いたメッセージを日本語で読み上げてくれます。テキストメッセージが届いてから音声データを作成・再生し、スピーカーから音を出すことで放送設備になります。(3)専用回線の敷設が不要で設置が容易、高い拡張性インターネットにアクセス可能な有線/無線LANに接続し電源を供給することができれば、同じ館内でも、遠く離れた場所でも、簡単に館内放送システムを設置することができます。放送端末の数を増やしたり配置を換えたりなど構成を自由に変更できる高い拡張性を持っています。グループ、特定端末を指定して放送することができます。(5)放送事故の発生率を低減!予めテキストメッセージを入力し、送信前に一呼吸置くことができるので、読み間違いや意図しない雑音の混入(ブフッとか、ガツンとか)など、放送事故の発生率を低減できると期待されます。システム構成システムは大きく分けて3つの要素から成り立っています。(1)放送端末ラズパイに外付けスピーカーを接続しています。今回は、RSコンポーネンツ社から販売されているタッチパネル付きディスプレイと筐体セットを入手して放送端末としました。スピーカーはUSBから電源を取って動作し、オーディオ端子に接続できるタイプのものを接続しています。放送端末一式の外観はこんな感じです。使っている機材の詳細はこちらです。Z120BW)放送データを受け取って再生するプログラムはPython+paho-mqttで作成しました。(2)コントロールパネルWEBブラウザでアクセスする設定用インターフェースで、対象となる端末、端末に送信するテキストメッセージなどの設定と、音声データの確認ができます。PHPを使用しており、バックグラウンドでPythonのプログラムなどが走っています。コントロールパネルは放送端末であるラズパイやパブリッククラウド上に設置して使用します。後者の場合はスマートフォンなどから操作して遠隔で放送することもできます。(3)中継サーバー(MQTTブローカー)MQTTのメッセージ配信を担うプログラムで、ローカルネットワーク又はパブリッククラウド上に設置します。放送用データの授受を行うために専用のアカウントとトピックを設定しておきます。Platformと、HEROKUのCloudMQTTで動作を確認しました。JTalk」「パブリッククラウド」がキーポイントです。略で、HTMLより簡単にメッセージをやりとりできる仕組みだそうです。館内放送のように「今すぐみんなに伝えたい」という場合に、webとcronでポーリングして実現するシステムとか、メールを使う方法ではリアルタイム性にかけるため、LINEのようなPUSH通知が必要です。それを簡単に実現できるのがMQTTです。mosquittoが有名。コマンドを使えば簡単にメッセージをやりとりできます。Pythonならpaho-mqttで簡単に実装できます。MQTTブローカーメッセージの交換をやってくれます。これまたmosquittoが有名。他にもMeshbluなど色々あります。必要で、それぞれラズパイやパブリッククラウド上で構築しています。JTalk国産の日本語音声合成システムです。初音ミクとかゆっくろいどとかが有名ですね。JTalkはテキストを与えるだけで抑揚をつけてしゃべってくれるので、扱い方がとても楽です(漢字仮名交じり文でもOK)。詳細はこのブログの下記ページをご覧ください。AI音声アシスタントが花盛りの今日この頃。...https://iot-plus.net/make/raspi/speaker-open-jtalk-japanese-...(3)パブリッククラウドインターネット経由で提供されたクラウドコンピューティング環境です。館内放送システムをローカルネットワーク環境だけでなく、離れた施設とも繋ぎたい場合には、インターネット上のアクセスできる場所にMQTTのブローカーを設置する必要があります。VPSを借りてゼロから作っても良いのですが、お金もかかりますしセキュリティ対策など色々大変です。今回改めて調べた所、様々なサービスが無料で提供されていることがわかりました。composeで簡単に設置できる)を使い、最終的にHEROKUのアドオン「CloudMQTT」を使用しています。※その他詳しい実装方法などは長くなるので別ページにまとめて順次公開していく予定です。最近なにかと話題の音声アシスタント技術。Piをインターネットラジオ(radiko等)の再生環境にしたらとても快適だった!CUI操作編radikoやサイマルラジオを聞いてみよう!ども、まーくです。...外付けSSDをラズベリーパイに増設してデータをガンガン保存できるようにするラズパイをSDカードで動かしていると寿命とか空き領域が気になります。コメントをキャンセルメールアドレスが公開されることはありません。コメント名前メールアドレスウェブサイトこのフォームを使用することにより、このウェブサイトによるデータの保管および取り扱いに同意するものとします。5+1選!【運用編を追加】まーくお問い合わせやってみてわからなかったことなど技術的な質問は、各記事の一番下にコメント欄(ディスカッション)がありますのでそちらにお願いします。その他はtwitter(@iot_plus_net)にどうぞ。