注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
5. @MQTTを使用したクラウド呼び出しシステム
Message Queuing Telemetry Transport(MQTT)はシンプルなメッセージングプロトコルです。 また、IoT(Internet of Things)の最も一般的なメッセージングプロトコルでもあります。
MQTTプロトコルは、IoTデバイスがデータを転送する方法を定義します。 これらはイベント駆動であり、Pub/Subモデルを使用して相互接続されています。 送信者(Publisher)と受信者(Subscriber)は、トピックを介して通信します。 デバイスが特定のトピックでメッセージを公開すると、そのトピックに登録されたすべてのデバイスがメッセージを受け取ります。
このセクションでは、Pico W、HiveMQ(無料の公開MQTTブローカーサービス)、および4つのボタンを使用してサービスベルシステムを作成します。 4つのボタンはレストランの4つのテーブルを意味し、顧客がボタンを押すとHiveMQでどのテーブルのゲストがサービスが必要かが表示されます。
1. 必要なコンポーネント
このプロジェクトには、以下のコンポーネントが必要です。
全体のキットを購入するのが確かに便利です、リンクはこちら:
名前 |
このキットに含まれるアイテム |
リンク |
|---|---|---|
Kepler Kit |
450以上 |
以下のリンクから個別にも購入できます。
SN |
コンポーネント |
数量 |
リンク |
|---|---|---|---|
1 |
1 |
||
2 |
Micro USBケーブル |
1 |
|
3 |
1 |
||
4 |
数本 |
||
5 |
4(10KΩ) |
||
6 |
4 |
||
7 |
1 |
||
8 |
18650バッテリー |
1 |
|
9 |
バッテリーホルダー |
1 |
2. 回路を組み立てる
警告
図に示されているようにLi-po充電モジュールが接続されていることを確認してください。それ以外の場合、短絡が原因でバッテリーや回路が壊れる可能性があります。
3. HiveMQにアクセス
HiveMQは、IoTデバイスへの迅速かつ効率的な信頼性の高いデータ転送を可能にするMQTTブローカーおよびクライアントベースのメッセージングプラットフォームです。
ブラウザで HiveMQ Web Client を開きます。
クライアントをデフォルトの公開プロキシに接続します。
新しいトピックの購読を追加 をクリックします。
フォローしたいトピックを入力し、 購読 をクリックします。ここで設定するトピックは、他のユーザーからメッセージを受け取らないように、より個別化されるべきです。また、大文字と小文字に注意してください。
4. MQTTモジュールのインストール
プロジェクトを開始する前に、Pico W用のMQTTモジュールをインストールする必要があります。
既に書いた
do_connect()をShellで実行してネットワークに接続します。注釈
以下のコマンドをShellに入力し、
Enterを押して実行します。もしPico Wに
do_connect.pyとsecrets.pyスクリプトがない場合は、 1. ネットワークへのアクセス を参照して作成してください。
from do_connect import * do_connect()
成功したネットワーク接続の後、シェルで
mipモジュールをインポートし、MicroPython用の簡易化されたMQTTクライアントであるumqtt.simpleモジュールをmipでインストールします。import mip mip.install('umqtt.simple')
インストールが完了したら、
umqttモジュールがPico Wの/lib/パスにインストールされていることがわかります。
5. スクリプトを実行する
kepler-kit-main/iotのパス下で5_mqtt_publish.pyファイルを開きます。現在のスクリプトを実行する ボタンをクリックするか、F5キーを押して実行します。
再度 HiveMQ Web Client に戻って、ブレッドボード上のボタンのいずれかを押すと、HiveMQ上でメッセージプロンプトが表示されます。
このスクリプトが起動できるようにしたい場合、それをRaspberry Pi Pico Wに
main.pyとして保存できます。
動作の仕組みは?
Raspberry Pi Pico Wは、 1. ネットワークへのアクセス で説明されているように、インターネットに接続する必要があります。このプロジェクトではそのまま使用します。
from do_connect import *
do_connect()
4つのボタンピンを初期化します。
sensor1 = Pin(16, Pin.IN)
sensor2 = Pin(17, Pin.IN)
sensor3 = Pin(18, Pin.IN)
sensor4 = Pin(19, Pin.IN)
MQTTブローカーに接続するために使用する URL と client ID を保存するための2つの変数を作成します。
公開ブローカーを使用しているので、 client ID は必須ではありません。
mqtt_server = 'broker.hivemq.com'
client_id = 'Jimmy'
MQTTエージェントに接続し、1時間保持します。失敗した場合は、Pico Wをリセットします。
try:
client = MQTTClient(client_id, mqtt_server, keepalive=3600)
client.connect()
print('Connected to %s MQTT Broker'%(mqtt_server))
except OSError as e:
print('Failed to connect to the MQTT Broker. Reconnecting...')
time.sleep(5)
machine.reset()
変数 topic を作成します。これは、購読者がフォローする必要があるトピックです。それは上記の 2. HiveMQに訪れる の ステップ4 で記入したトピックと同じでなければなりません。
ちなみに、ここでの b は、MQTTがバイナリベースのプロトコルであるため、文字列をバイトに変換します。
topic = b'SunFounder MQTT Test'
各ボタンに割り込みを設定します。ボタンが押されたら、 topic の下にメッセージが投稿されます。
def press1(pin):
message = b'button 1 is pressed'
client.publish(topic, message)
print(message)
sensor1.irq(trigger=machine.Pin.IRQ_RISING, handler=press1)