control.py の詳細

以下のプロジェクトをよりよく理解するために、Cloud4RPiによって提供される公式のサンプルコードを見てみましょう。

注釈

このセクションを表示する前に、前のセクション Cloud4RPiのクイックガイド を完了してください。

control.py ファイルを開きます。

cd cloud4rpi-raspberrypi-python
sudo nano control.py

Cloud4RPiはそれぞれにDEVICE_TOKENを設定します。対応するデバイスに接続するには、変数DEVICE_TOKENに正しいDEVICE_TOKENを入力する必要があります。

DEVICE_TOKEN = '556UfPaRw6r6rDKYfzx5Nd1jd'

variable は2次元辞書であり、その各キーに対応する値も辞書です。

variables 辞書のキーは 'Room Temp''LED On''CPU温度''STATUS''Location'、これはすべてコントロールパネルのウィジェットに表示されるデータです。

variables 辞書の各キーの値も辞書であり、これらの辞書のキーは同じです。ここで、'bind' キーの値は、転送されたコンテンツを返すことができる関数です。 、および 'type' は転送されたコンテンツのデータ型です('numeric' は数値型、'string' は文字列型、'bool' はブール型であり、'location' は2つの辞書を含むリストです)。

variables ディクショナリの分析を通じて、Cloud4RPiが variables ディクショナリのキーを読み取り、そのキーに対応する値をコントロールパネルに表示することがわかります。 もちろん、variables ディクショナリのキーを変更することはできませんが、キーの値('bind' ディクショナリの値)を変更して、widgetに必要なコンテンツを表示させることはできます。

たとえば、湿度値をCloud4RPiに送信する場合、variables ディクショナリに新しいキーを追加することはできませんが、'Room Temp' キーなどのキーを借用してから、 対応する 'bind' キーに湿度値を返す関数を記述します。

variables = {
    'Room Temp': {
        'type': 'numeric' if ds_sensors else 'string',
        'bind': ds_sensors[0] if ds_sensors else sensor_not_connected
    },
    'LED On': {
        'type': 'bool',
        'value': False,
        'bind': led_control
    },
    'CPU Temp': {
        'type': 'numeric',
        'bind': rpi.cpu_temp
    },
    'STATUS': {
        'type': 'string',
        'bind': listen_for_events
    },
    'Location': {
        'type': 'location',
        'bind': get_location
    }

vdiagnostics は、Raspberry Piに関する情報を保存し、誤接続を検証および防止するために使用されます。

vdiagnostics = {
    'CPU Temp': rpi.cpu_temp,
    'IP Address': rpi.ip_address,
    'Host': rpi.host_name,
    'Operating System': rpi.os_name,
    'Client Version:': cloud4rpi.__version__,
}