【貂蝉がプログラミングを学ぶ】MicroPythonハンズオン(31) - モノのインターネットの簡単IoT

1. モノのインターネットの誕生
アメリカのコンピューター大手マイクロソフト(Microsoft)の創設者であり、世界一の富豪であるビル・ゲイツ氏は、2016年に出版された著書『未来への道』の中で「モノのインターネット」について言及した。 1995年。1998 年にマサチューセッツ工科大学は、当時 EPC システムと呼ばれていたモノのインターネットのアイデアを提案しました。2005年11月、国際電気通信連合は「ITUインターネットレポート2005:モノのインターネット」を発表し、モノのインターネット時代の到来を正式に提唱した。
モノのインターネット (IoT) という用語は、1999 年にプロクター・アンド・ギャンブルでの講演中にケビン・アシュトンによって造られました。彼は MIT Auto-ID Lab の共同創設者です。彼は、サプライ チェーン管理における RFID (バーコード検出器用) の使用の先駆者です。彼はまた、エネルギー感知および監視技術を製造する会社 Zensi を設立しました。そこで、2009 年に RFID Journal にこの記事を書いた Kevin Ashton の言葉を紹介することから始めましょう。これは、IoT を本質的に理解するのに役立ちます。

私たちの助けを借りずに収集したデータを使用して、すべてを認識するコンピューターがあれば、すべてを追跡して計算し、無駄、損失、コストを大幅に削減できるでしょう。私たちは、いつ交換、修理、リコールが必要か、またそれらが新しいか古いかを知っています。コンピューターが世界を自由に見たり、聞いたり、嗅いだりできるように、独自の情報収集手段をコンピューターに提供する必要があります。

上記の Kevin のアプリケーションは、モノのインターネットの開発の背後にあるイデオロギーのアイデアを提供します。IoT を根本的に理解するために、この用語をさらに単純化してみましょう。この後は、IoT の利点を見ていきます。

ここに画像の説明を挿入
2. モノのインターネットとは何ですか?
モノのインターネットと聞いて、どのような印象を思い浮かべますか? モノのインターネットとは英語でInternet of Things、略してIoTといいますが、ここでいう「モノ」とは、身の回りにあるネットワークに接続できるあらゆるものを指します。例えば、あなたが着ている服、身につけている時計、家にある家電や車、家そのもの、あるいは読んでいる本など、ネットワークに接続できればすべてです。モノのインターネットにおける「モノ」。

モノのインターネット (略して IoT) は、インターネットや従来の電気通信ネットワークなどに基づく情報媒体であり、オンラインにあるすべてのオブジェクトの相互接続を実現します。私たちがインターネットを使って相互に情報をやりとりするのと同じように、モノのインターネットとは、「モノ」がインターネットに接続することで情報を共有し、有益な情報を生成し、人間の管理なしで動作する仕組みです。彼らはお互いを感知し、通信することができます。次に、無生物が人間の介入なしに感知し、相互作用できるかどうかを想像してください。すごいと思いませんか?

ここに画像の説明を挿入
3. IoT アーキテクチャ

現在、IoTのアーキテクチャは知覚層、ネットワーク層、アプリケーション層の3層に分かれるのが一般的ですが、4層アーキテクチャ、5層アーキテクチャ、7層アーキテクチャなどもありますが、私たちは一般的に使われている3層アーキテクチャを使用しています。 -レイヤーアーキテクチャはここで説明します。回路図は以下の通りです:

(1) 知覚層

環境と対話するセンサー、アクチュエーター、エッジデバイス

知覚層はモノのインターネットの皮膚や顔の特徴であり、物体を識別し、物体を感知し、情報を収集し、自動制御するために使用されます。たとえば、エアコンに取り付けられた温度センサーは、室内の温度が高いことを認識します。 30度以上 情報収集後、自動で電源ON エアコンは冷凍を行っており、このレベルには様々な識別技術、情報収集技術、制御技術が含まれます。さらに、これらの技術は複合的に利用されており、さまざまな知覚は単一のものもあれば、ロボットがさまざまな知覚システムを統合するなど、包括的なものもあります。この層で最も一般的なのは、企業情報化のプロセスで使用される RFID や QR コード テクノロジなど、人間の感覚を置き換えたり拡張して物理世界の認識を完成させるために使用されるさまざまなセンサーです。

(2) ネットワーク層

ネットワーク経由でアプリケーション層と連携してデバイスを検出、接続、切り替えます。

ネットワーク層は主に情報伝送、ルーティング (情報の伝送方法の決定)、および制御 (情報の伝送方法の制御) を実装します。ネットワーク層は 2 つの部分に分かれており、1 つの部分はモノのインターネットの通信技術であり、もう 1 つの部分はモノのインターネットの通信技術です。モノのインターネットの通信プロトコル 通信のためにオブジェクトとオブジェクトを物理的にリンクする責任を負い、通信プロトコルは通信ルールと統一フォーマットを確立する責任を負います。

IoT 通信プロトコルには、MQTT、DDS、AMQP、XMPP、JMS、REST、CoAP、OPC UA など、通信テクノロジーと同じくらい多くの種類があります。ネットワーク層は人間の脳や神経中枢に相当し、主に知覚層で得られた情報の伝達と処理を担当します。

(3) アプリケーション層

ユーザーに専門的なサービスと機能を提供するためのデータ処理と保管

さまざまなモノのインターネット通信プロトコルのサポートにより、モノのインターネットによって形成されたデータはマクロレベルで分析され、認識層にフィードバックされて、オブジェクト間の連携やオブジェクト間の自己適応の制御など、特定の制御機能を実行します。物と環境、人と物のコラボレーション。アプリケーション層についての個人的な理解は 2 つの部分に分けることができます。1 つの部分は、クラウド プラットフォーム上に構築された一般的な IoT プラットフォームであり、IAAS/PASS/SAAS の 1 つまたは組み合わせになります。現在、Shugen Internet、Baidu Yuntiangong、Tencent QQ IoT Intelligent Hardware Open Platform、Alibaba Link IoT Platform、SAP Leonardo、Amazon AWS、Microsoft Azure、Google Cloud IoT Coreなど、多くの企業がIoTプラットフォームを立ち上げています。もう 1 つの部分は、この一般的なモノのインターネット プラットフォーム上で特定のアプリケーションを生成することです。これらのアプリケーションはモバイル アプリに似ており、これらのオブジェクトの制御方法、情報の収集方法、およびオブジェクトの制御方法が含まれます。

これらの特定のアプリケーション シナリオには次のものが含まれます:
個人用アプリケーション: ウェアラブル デバイス、スポーツおよびフィットネス、健康、エンターテイメント アプリケーション、スポーツ、おもちゃ、親子、高齢者の介護; スマート ホーム: ホーム オートメーション、インテリジェント ルーティング、セキュリティ モニタリング、スマート キッチン、
家庭ロボット、センシング 検出、スマート ペット、スマート ガーデン、追跡
デバイス、スマート交通機関: 車両のインターネット、スマート自転車/オートバイ (ヘルメット装備)、無人運転、ドローン、宇宙探査、エンタープライズ アプリケーション
: ヘルスケア、小売、決済/クレジット カード、スマート オフィス、現代農業、建築建設、
産業用インターネット: スマート製造、エネルギー産業、サプライ チェーン、産業用ロボット、産業用ウェアラブル デバイス (スマート ヘルメットなど)、アプリケーション
レベルから見ると、モノのインターネットは次のことが可能です。本当にどこにでも行けます いいえ、どこにでもあります。モノのインターネットの最終目標は、いつでもどこでもあらゆるオブジェクトのリンクを実現し、人間が物理世界に対して「包括的な認識能力、完全な認知能力、インテリジェントな処理能力」を獲得できるようにすることです。

ここに画像の説明を挿入
4. Easy IoT とは何ですか?
Easy IoT は、ネットワーク化されたセンサー/アクチュエーターのデータをリアルタイムで監視およびフィードバックし、データを収集および分析できる国際的な IoT サービス プラットフォーム http://iot.dfrobot.com.cn/ です。データを受信し、制御効果を達成するためにセンサー/アクチュエーターにデータを送信します。

Easy IoT を使用する理由 ——Easy IoT PC とモバイル

簡単に始められ、すぐに使える
PC端末とモバイル端末があり、国内外いつでもどこでも利用可能
多様なハードウェアに対応
HTTPまたはMQTT通信に対応
提供サポートハードウェア (Obloq)、ライブラリファイル、サンプルプログラム
完全な使用例ドキュメントにより、
初心者がすぐに始めることができます IoT プロジェクトの実践

ここに画像の説明を挿入
5. Easy IoTアカウントを登録する

中国サーバー: http://iot.dfrobot.com.cn
グローバルサーバー: http://iot.dfrobot.com

ここに画像の説明を挿入

6. Easy IoT にログインし、ワークショップに参加します

http://iot.dfrobot.com.cn/worksh … 0ae94e9e08b04f34604
新しいデバイスを追加

ここに画像の説明を挿入

7. Easy IoT プラットフォームの概要
(1) ユーザーパスワード領域、ユーザーとパスワードは自動的に生成され、変更することはできません. 制御ボードのユーザーとパスワードは、プラットフォームのユーザーとパスワードと一致する必要があります。
(2) ユーザー名とパスワードを再生成し、右目をクリックしてユーザー名とパスワードを表示します。
(3) テーマ領域。各テーマは異なる種類のコマンドを表します。プラットフォームがこのテーマのコマンドを発行すると、受信側はこのテーマに対応するプログラムを実行します。テーマ名は自動的に生成され、変更できません。「送信」をクリックします。テーマを入力して注文を送信するメッセージ。
(4) 新規テーマは最大 5 つまで追加できます。

ここに画像の説明を挿入

メッセージを送信するためにクリックすると、次のインターフェイスが表示され、そこから文字列を制御ボードに送信します。

ここに画像の説明を挿入

8. Easy IoT プラットフォームをテストしてメッセージを送信する
#MicroPythonDo it Yourself (31) - Easy IoT のモノのインターネット
#Easy IoT プラットフォームをテストしてメッセージを送信する

#MicroPython动手做(31)——物联网之Easy IoT
#测试Easy IoT平台发送消息

from mpython import *
import network
from umqtt.simple import MQTTClient
import music
import time
from machine import Timer
import ubinascii

my_wifi = wifi()

my_wifi.connectWiFi("zh", "zy1567")

mqtt = MQTTClient("664fa81baa7fe777", "182.254.130.180", 1883, "qlZ0uezGR", "3_W0uezGgz", keepalive=30)

mqtt.set_last_will("TvkJXezMR", "I am offline")

try:
    mqtt.connect()
    print('Connected')
except:
    print('Disconnected')

def mqtt_topic_54766b4a58657a4d52(_msg):
    rgb[1] = (int(102), int(0), int(0))
    rgb.write()
    time.sleep_ms(1)
    oled.invert(0)
    oled.DispChar((str(_msg)), 0, 0, 1)
    oled.show()

def mqtt_topic_5a6c423074575a4d67(_msg):
    rgb[2] = (int(51), int(51), int(255))
    rgb.write()
    time.sleep_ms(1)
    oled.fill_rect(0, 16, 128, 16, 0)
    oled.DispChar((str(_msg)), 0, 16, 1)
    oled.show()

def mqtt_callback(topic, msg):
    try:
        topic = topic.decode('utf-8', 'ignore')
        _msg = msg.decode('utf-8', 'ignore')
        eval('mqtt_topic_' + bytes.decode(ubinascii.hexlify(topic)) + '("' + _msg + '")')
    except: print((topic, msg))

mqtt.set_callback(mqtt_callback)

mqtt.subscribe("TvkJXezMR")

def timer14_tick(_):
    mqtt.ping()

tim14 = Timer(14)
tim14.init(period=20000, mode=Timer.PERIODIC, callback=timer14_tick)

mqtt.subscribe("ZlB0tWZMg")


music.play('D5:1')
rgb[0] = (int(0), int(102), int(0))
rgb.write()
time.sleep_ms(1)
mqtt.publish("TvkJXezMR", "hello")
mqtt.publish("ZlB0tWZMg", "world")
while True:
    mqtt.wait_msg()

ここに画像の説明を挿入

mPython X 実験的グラフィックス プログラミング

ここに画像の説明を挿入

2台の端末がメッセージを受信する様子
ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_41659040/article/details/132074974