Pythonを使用したIoT温度計
コンポーネントと消耗品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
|
このプロジェクトについて
<図>
Zerynthアプリ
Zerynthアプリは、 Android 向けのモバイルアプリケーションです。 および iOS これにより、ラピッドプロトタイピングが可能になります グラフィカルインターフェイス IoTプロジェクト 。
Zerynthアプリを使用すると、任意のモバイルをコントローラーに変えて、スマートオブジェクトを表示できます。 および IoTシステム !特に、Zerynthでプログラムされた接続デバイスを管理および制御して、デバイスとモバイル間の双方向通信チャネルを有効にすることができます。
このチュートリアルでは、シンプルでありながら強力な IoT温度計を開発する方法を見ていきます。 、Zerynth搭載のシングルボードマイクロコントローラーとZerynthアプリをリモートディスプレイとして使用します。
必要な材料
まず、ボードが必要です。 Zerynthでサポートされている32ビットマイクロコントローラーデバイスの1つを選択できます。 Microchipによる32ビットAT91SAM3X8E など、人気のあるArduinoプラットフォームと同じ属性の多くを共有するMikroelektronikaによるFlip&Clickを選択しました。 ArduinoDueのコア。
温度を測定するために、HTS221温度および相対湿度センサーを搭載したTemp&HumClickを選択しました。
ボードをインターネットに接続するために、MRF24WB0MA – 2.4GHz、IEEEstdを備えたWiFiPLUSClickを選択しました。 802.11 – Microchip の準拠モジュール 、およびオンボードTCP / IPスタックと802.11接続マネージャーを備えたMCW1001コンパニオンコントローラー。
最後になりましたが、必要なものは次のとおりです。
- ゼリンススタジオ 、IoTを可能にするPythonの組み込みプログラミング用の強力なIDE。ここからダウンロードできます。
- ゼリンスアプリ 。ここからダウンロードできます。
IoT温度計の組み立て
Flip&ClickはArduinoの両面のいとこです。一方では、Arduinoです。しかし反対側には、会社が「クリックボード」と呼んでいるもののための4つの開いたmikroBUSソケットがあります。基本的に、これらはArduinoシールドに似たアドオンモジュールですが、問題なくフリップ&クリックで同時にいくつかを装着できるように縮小されています。 ボードのスロットAとBで、それぞれTemp&HumとWifiPlusのクリックを追加するだけです。
Pythonを使用してIoT温度計をプログラムする方法
例のクローンを作成する
Zerynth Studioをインストールし、Zerynthユーザーを作成したら、「 Zerynth App Oscilloscope 」の例のクローンを作成できます。 「。例のクローンを作成する方法については、こちらをご覧ください。
<図>「 main.py 」の元のコードを見てみましょう 」ファイル:ここで、 Python のロジックを開発します 脚本。元のコードから始めて、スクリプトを編集して特定のプロジェクトを開発します。
############################################ ##################################### IoT温度計############ #################################################### ################### fromwireless importwifi#この例はParticle Photon#に基づいています。次の行を変更して、broadcom.bcm43362 importbcm43362からwifi_driverimportstreamsimportとして別のwifiドライバーを使用します。 adc#zerynthappからZerynthAPPライブラリをインポートするimportzerynthapp streams.serial()sleep(1000)print( "STARTING ...")try:#デバイスUIDとトークンはADMパネルで作成できますzapp =zerynthapp.ZerynthApp( "DEVICE UID "、" DEVICE TOKEN "、log =True)#wifiネットワークに接続します(以下にSSIDとパスワードを設定します)wifi_driver.auto_init()for i in range(0,5):try:wifi.link(" SSID " 、wifi.WIFI_WPA2、 "PASSWORD")break例外を除くe:print( "Ca n't link"、e)else:sleep( "Impossible to link!") #Zerynthアプリインスタンスを起動します! #クローンを作成した「テンプレート」フォルダの下にあるファイルを使用してテンプレートを作成することを忘れないでください#それをADMにアップロードし、接続されたデバイスに関連付けますzapp.run()#ADCを読み取り、値をADMに送信しますTrue:sleep( 1000)x =(adc.read(A4)* 100)// 4096 zapp.event({"data":x})x> 95の場合:#モバイル通知を送信するADMサンドボックス上のデバイス)zapp.notify( "ALARM!"、 "値が95より大きい!")e:print(e)
としての例外を除く
この簡単な例では、接続されたボードからのデータを使用して、Zerynthアプリによってグラフィカルオシロスコープが視覚化されています。データは、「アナログ」ピンA4によってアナログセンサーから取得されます。
適切なwifiドライバーとセンサーライブラリをインポートします
コメントでわかるように、この例は、ParticlePhotonボードとそのwifiドライバーに基づいています。 WiFi Plus Clickを使用したいので、次の行を変更する必要があります。
from Broadcom.bcm43362 import bcm43362 as wifi_driver
from microchip.mcw1001a import mcw1001a as wifi_driver
および
wifi_driver.auto_init()
wifi_driver.init(SERIAL2、D24)#スロットB
次に、Temp&HumClickの温度センサーを使用します。そのため、ドキュメントで読むことができるように、ライブラリをインポートしてセンサーを設定するには、次の行を追加する必要があります。
#stm.hts221からHTS221ライブラリをインポートしますimport hts221 temp_hum =hts221.HTS221(I2C0、D21)#スロットA
センサーを読み取るには、必要に応じて次の行を入力します。
tmp、hum =temp_hum.get_temp_humidity()#tmpとhumを読み取る
SSID名とパスワードを設定する
もちろん、ボードに接続するWi-FiネットワークのSSID名とパスワードも編集して、次の行を編集する必要があります。
wifi.link( "SSID"、wifi.WIFI_WPA2、 "PASSWORD")
接続されたデバイスを作成してセットアップする
次に、「接続されたデバイス」を作成し、「zerynthapp」インスタンスをそれにリンクする必要があります。以下に、必要な手順を含むスクリーンショットをいくつか示します。技術的な詳細については、このドキュメントをご覧ください。
<図>デバイスのクレデンシャル( UID およびトークン )Zerynth Studio(ADMパネル)から直接コピーして貼り付けることができます。 「IP」は、ZerynthADMのIPアドレスです。この引数は、この場合のように、ネットワークドライバーがホスト名解決をサポートしていない場合に使用されます。
<図>
テンプレートを作成、アップロード、設定
Zerynthアプリを使用すると、 HTML を使用して美しいレスポンシブなグラフィカルユーザーインターフェイスを実行できます。 、 CSS および JavaScript 。 AndroidまたはiOSコードは必要ありません!
各デバイスのグラフィカルインターフェイスはZerynthADMサンドボックスでホストされ、アプリに読み込まれて表示されるHTML5、Javascript、CSS、および画像ファイルのセットで構成されています。テンプレートにADMJavascriptライブラリを追加すると、アプリはメッセージの受信と送信の両方で接続されたデバイスと対話できるようになります。
テンプレートは、それぞれの「プラス」アイコンをクリックして追加できます。
<図>次に、専用フォルダーからテンプレートをアップロードします。テンプレートが定義されているファイルは「 index.html 」と呼ばれることに注意してください。 」と、好きなように編集できます。この場合、そのままにしておいてかまいません。
<図>
スクリプトをアップリンクする
数回編集すると、コードは次のようになります。
############################################ ##################################### IoT温度計############ #################################################### ################### fromwireless import wififrom microchip.mcw1001a import mcw1001a as wifi_driverimport Streamsimport adc streams.serial()#ZerynthAPPライブラリをzerynthappからインポートするimportzerynthapp#HTS221をインポートするlibraryfrom stm.hts221 import hts221 temp_hum =hts221.HTS221(I2C0、D21)#slot A sleep(1000)print( "STARTING ...")try:#デバイスUIDとトークンはADMパネルで作成できますzapp =zerynthapp。 ZerynthApp( "DEVICE UID"、 "DEVICE TOKEN"、ip ="178.22.65.123"、log =True)#Wi-Fiネットワークに接続します(以下にSSIDとパスワードを設定します)wifi_driver.init(SERIAL2、D24)#スロットB for i in range(0,5):try:wifi.link( "SSID"、wifi.WIFI_WPA2、 "PASSWORD")break breakリンクすること!") Trueの場合:sleep(1000)#Zerynthアプリインスタンスを起動します。 #クローンした「テンプレート」フォルダの下にあるファイルを使用してテンプレートを作成することを忘れないでください#それをADMにアップロードし、接続されたデバイスに関連付けますzapp.run()#センサーを読み取り、値をADMに送信しますTrue:sleep (1000)tmp、hum =temp_hum.get_temp_humidity()#tmpとhumを読み取るprint( "Temp is:"、tmp、 "Humidity is:"、hum)try:tmp})zapp.event({" eとしての例外:print(e)tmp>
30の場合:#モバイル通知を送信する#(温度(ADMサンドボックスのデバイスごとに1分あたり1回の通知に制限があります)! ")eとしての例外を除く:print(e)eとしての例外を除く:print(e)
「デバイスUID」、「デバイストークン」、「SSID」、「パスワード」は、独自のパラメータに合わせて編集する必要があることに注意してください。
この時点で、スクリプトをデバイスにアップリンクできます。
ZerynthアプリでIoT温度計ダッシュボードを表示する方法
この非常に簡単なチュートリアルで読むことができるように、Zerynthアプリを開いてログインし、特定のデバイスを選択するだけで、IoT温度計ダッシュボードが表示されます。最後に、Zerynthアプリはプッシュ通知を受信することもできます 接続されたデバイスから。この場合、温度がしきい値を超えると通知が表示されます。
<図>ご不明な点がございましたら、Zerynthコミュニティフォーラムで遠慮なくディスカッションを開いてください。
お楽しみください!
コード
- IoT温度計
IoT温度計 Python
################################################# ################################## Zerynth App Oscilloscope ############# #################################################### ################# fromwireless import wififrom microchip.mcw1001a import mcw1001a as wifi_driverimport Streamsimport adc streams.serial()#ZerynthAPPライブラリをzerynthappからインポートするimportzerynthapp#HTS221ライブラリをstmからインポートする.hts221 import hts221 temp_hum =hts221.HTS221(I2C0、D21)#slot A sleep(1000)print( "STARTING ...")try:#デバイスUIDとトークンはADMパネルで作成できますzapp =zerynthapp.ZerynthApp( "DEVICE UID"、 "DEVICE TOKEN"、ip ="178.22.65.123"、log =True)#Wi-Fiネットワークに接続します(SSIDとパスワードを以下に設定します)wifi_driver.init(SERIAL2、D24)#スロットB for i in range(0,5):try:wifi.link( "SSID"、wifi.WIFI_WPA2、 "PASSWORD")break break例外を除くe: "el:" t " ! ") while True:sleep(1000)#Zerynthアプリインスタンスを起動します。 #クローンした「テンプレート」フォルダの下にあるファイルを使用してテンプレートを作成することを忘れないでください#それをADMにアップロードし、接続されたデバイスに関連付けますzapp.run()#センサーを読み取り、値をADMに送信しますTrue:sleep (1000)tmp、hum =temp_hum.get_temp_humidity()#tmpとhumを読み取るprint( "Temp is:"、tmp、 "Humidity is:"、hum)try:tmp})zapp.event({" eとしての例外:print(e)tmp> 30の場合:#モバイル通知を送信する#(温度(ADMサンドボックスのデバイスごとに1分あたり1回の通知に制限があります)! ")eとしての例外を除く:print(e)eとしての例外を除く:print(e)
回路図
製造プロセス
- 温度計
- Raspberry piを使用したTMP006温度センサーPythonライブラリ、
- PythonとRaspberryPiの温度センサー
- PSoC 6PioneerボードとPioneerIoTアドオンシールドの使用
- IoTが私たちの周りの世界をどのように混乱させているか
- Windows に Python をインストールする方法 [Pycharm IDE]
- Python で os.rename() を使用してファイルとディレクトリの名前を変更する
- Python を使用した Facebook ログイン:FB ログインの例
- Python Average:Python でリストの AVERAGE を見つける方法
- Python を使用して文字列をタイトル ケースに変換する
- Python - SMTP を使用して電子メールを送信する