MKR1000温度および湿度センサー
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 |
アプリとオンラインサービス
> |
| |||
| ||||
|
このプロジェクトについて
Paul DeCarloが、ParticlePhotonからMicrosoftAzureへの気象データの送信に関する優れた記事を掲載しています。これを新しいArduinoMKR1000で複製したかったのです。
Photonは、Webhookを使用してParticleクラウドからAzureにデータを送信します。 MKR1000はHTTPSをサポートしているため、データをAzureに直接送信できます。このガイドでは、MKR1000をAzureに接続し、Microsoft Connect theDotsプロジェクトのサーバー側コードの多くを再利用します。
ハードウェア
DHT22センサーは、温度と湿度を測定するために使用されます。 DHT11センサーをサポートするようにコードを変更することもできます。ブレッドボードにDHTセンサーを配線します。 MKR1000から最初のピンに3.3ボルトを送ります。 3.3Vからピン2に10,000Ωのプルアップ抵抗を配置します。ピン3をグランドに接続します。 DHT22のピン2からMKR1000のピン6まで配線します。
<図>DHT22の詳細については、AdafruitのDHTチュートリアルを参照してください。
Arduino IDE
ArduinoIDEを開きます。ボードマネージャーを使用して、MKR1000ボードを取り付けます。ライブラリマネージャーを使用して、WiFi101ライブラリをインストールします。
HTTPS
Arduino MKR1000はHTTPSをサポートしていますが、アクセスするサイトの証明書を手動でインストールする必要があります。デバイスのメモリが限られているため、これが必要です。これは2段階のプロセスです。最初にボードにスケッチをロードし、次にコンピューターでプログラムを実行して証明書をアップロードします。
Arduino IDEを使用して、Firmware UpdaterSketchをボードにロードします。
WiFi101ファームウェアアップデータをダウンロードします。アーカイブを解凍し、winc1500-uploader-gui.exeを実行します。
AzureイベントハブのHTTPS証明書はservicebus.windows.netに発行されるため、すべてのサービスバスのURLが機能するはずです。テキストフィールドにctd-ns.servicebus.windows.netと入力します。 COMポートを選択し、証明書をアップロードします。
<図>
Arduinoスケッチ
Arudinoスケッチをhttps://github.com/don/MKR1000-Azureから複製またはダウンロードします。 ssidタブを編集し、 ssid []
を変更します および password []
ネットワーク設定に一致させます。スケッチをMKR1000ボードにアップロードします。
エラーが発生した場合は、Arduinoライブラリマネージャー([スケッチ]-> [ライブラリを含める]-> [ライブラリの管理...])を使用して、「DHTセンサーライブラリ」、ArduinoJson、またはRTCZeroライブラリをインストールする必要があります。
Arduinoシリアルモニターを開き([ツール]-> [シリアルモニター])、データがAzureへの送信を開始することを確認します。
<図>
スケッチは、connect thedotsプロジェクトのイベントハブを再利用します。これは、既存のAzureWebアプリを使用してデータを表示できることを意味します。ブラウザでhttp://connectthedotsdx.azurewebsites.net/を開きます。 MKR1000からのデータが表示されます。これは「パブリック」イベントハブであるため、センサーデータは他のセンサーと混合されます。複数の人がこのMKR1000コードを実行している場合は、 displayname
を変更することをお勧めします。 または guid
createJSON
で 機能。
独自のイベントハブを作成する
既存のイベントハブに対して実行することは問題ありませんが、データ用に独自のイベントハブを作成することもできます。これには、VisualStudioとAzureサブスクリプションが必要です。無料のVisualStudio 2015Communityエディションは正常に機能します。無料のAzureトライアルサブスクリプションにサインアップすることもできます。
Connect theDotsプロジェクトのコードを使用します。プロジェクトをgitで複製するか、Githubページの[Zipをダウンロード]ボタンを使用します。
git clone https://github.com/Azure/connectthedots.git
Microsoftの指示に従って、Azureリソースを作成することができます。これには時間がかかりますが、これらの要素がどのように組み合わされているかを深く理解できます。複製されたリポジトリのAzurePrepプロジェクトを使用して、これらのリソースを自動的に作成することをお勧めします。
Visual Studioを使用して、connectthedots \ Azure \ AzurePrepからAzurePrepソリューションを開きます。 AzurePrepプロジェクトをリリースモードで実行します 。
アプリケーションはいくつかのウィンドウを開き、Azureにログインして、リソースにアクセス許可を付与するように求めます。その後、ターミナルでたくさんの質問に答えて、リソースを作成します。
リソースの名前を選択する必要があります。ドットを接続するドキュメントでは、ctd(ドットを接続する)+イニシャルという名前をお勧めします。たとえば、「ctddc」を選択しました。
Visual Studioに戻り、AzurePrepからCreateWebConfigターゲットを実行して、Webサイトの構成ファイルを作成します。ログインし、プロンプトに従います。 web.configファイルがデスクトップに書き込まれます。
デスクトップからconnectthedotsWebサイトプロジェクト、connectthedots \ Azure \ WebSite \ ConnectTheDotsWebSiteにweb.configをコピーします。
VisualStudioのconnectthedots \ Azure \ WebSiteからConnectTheDotsWebsiteソリューションを開きます。
新しいweb.configファイルをプロジェクトに追加する必要があります。ソリューションエクスプローラーでソリューションを右クリックします。メニューから[追加]-> [既存のアイテム...]を選択します。 ConnectTheDotsWebSiteに移動し、web.configを追加します。
<図>MicrosoftEdgeでプロジェクトを実行します。 MKR1000のスケッチを更新するまで、データは表示されません。
Arduinoスケッチには、AzureリソースにアクセスするためのSASキーが必要です。 Sandrino DiMattiaのEventHubs Signature Generatorツールを使用して、正しい形式でキーを生成します。 https://github.com/sandrinodimattia/RedDog/releasesからダウンロードします。ツールを解凍し、RedDog.ServiceBus.EventHubs.SignatureGeneratorを起動します。
前に作成した名前空間を使用してUIに入力します。 Azureリソースの作成時にctddcを使用したため、名前空間はctddc-nsです。ハブ名はehdevicesです。パブリッシャーと送信者のキー名は両方ともD1である必要があります。トークンTTLを1年間(525,600分)に設定しました。署名は、デバイスの寿命が尽きるまで有効である必要があります。
<図>送信者キーを取得するには、Azureポータルにログインする必要があります。左側のメニューから[参照]を選択し、フィルターを使用してイベントハブを検索します。
<図>イベントハブは、古いAzureポータルに新しいウィンドウを開きます。
- 作成したネームスペースをクリックします。
- イベントハブを選択
- デバイスを選択してください
- 構成を選択
- 一番下までスクロールして、D1の主キーをコピーします
署名ジェネレータツールに戻り、キーを送信者キーフィールドに貼り付けます。 [生成]ボタンをクリックして、署名を生成します。
<図>生成された署名をコピーします。
ArduinoIDEでMKR1000-Azureスケッチを再度開きます。 hostname []
を置き換える必要があります および authSAS []
新しいイベントハブ設定の変数。生成された署名を char authSAS []
に貼り付けます 分野。ホスト名と一致するようにホスト名フィールドを編集します。例えば char hostname [] ="ctddc-ns.servicebus.windows.net";
スケッチを保存して、MKR1000にアップロードします。必要に応じて、シリアルモニターを開き、データがAzureに送信され始めることを確認します。
<図>Alt + Tabキーを押して、MicrosoftEdgeで実行されているドットWebサイトに接続すると、デバイスからのデータの表示が開始されます。
<図>
IoTハブ
Azure IoTハブはイベントハブよりも新しく、プロジェクトにより適している場合があります。 IoT Hubは、デバイスからクラウドへのメッセージング(このプロジェクトなど)とクラウドからデバイスへのメッセージングをサポートしています。
Azureポータルを使用して新しいIoTハブを作成します。
<図>デバイスエクスプローラーは、IoTハブにアクセスするための署名を生成するために使用されます。 https://github.com/Azure/azure-iot-sdks/releasesからSetupDeviceExplorer.msiをダウンロードします。
Azureポータルに戻り、新しいIotハブを開きます。キーアイコンをクリックし、iothubowner行を選択して、主キーの接続文字列をコピーします。
<図> <図> <図>デバイスエクスプローラーを開き、接続文字列を貼り付けて、[更新]をクリックします。
<図>[管理]タブをクリックします。 [アクション]の下の[作成]ボタンをクリックします。デバイスIDとしてD1を入力し、[作成]をクリックします。
<図>D1行を強調表示し、[SASトークン]ボタンをクリックして、新しいトークンを生成します。
<図>ArduinoIDEでMKR1000-Azureスケッチを開きます。
hostname []
を置き換えます IoTハブ名+「。azure-devices.net」を使用します。 authSAS []
を更新します デバイスエクスプローラで生成された値を使用します。必ず、SASトークンの「SharedAcessSignature =」の後の部分のみをコピーしてください。 IoTハブを指すようにURIを調整します。
char hostname [] ="hacksterdemo.azure-devices.net"; char authSAS [] ="SharedAccessSignature sr =hacksterdemo.azure-devices.net%2fdevices%2fD1&sig =jnyTV8j2%2bY9BJ9fyEdb7zu3eAVphRyul1b 1490944761 "; String deviceName =" D1 "; String uri =" / devices / "+ deviceName +" / messages / events?api-version =2016-02-03 ";
有効な応答をチェックするsendEvent関数のコードを編集します。イベントハブは、成功を示すためにHTTP201を送信します。 IoTハブはHTTP204を送信します。
変更
if(response.startsWith( "HTTP / 1.1 201")){
宛先
if(response.startsWith( "HTTP / 1.1 204")){
Arduino IDEを使用して、スケッチをArduinoMKR1000にアップロードします。
デバイスエクスプローラーの[データ]タブを切り替えます。モニターボタンをクリックして、イベントハブに送信されているデータを表示します。
<図>このプロジェクトはデバイスからクラウドにデータを送信しているため、HTTPPOSTを使用してデータを送信しています。 AzureIoTハブでデータを送受信するためのライブラリもあります。残念ながら、IMOはまだArduinoのようではなく、ユーザーフレンドリーでもありません。デバイスがAzureからデータを受信するようにしたい場合は、ライブラリがより役立つ場合があります。または、IoTハブからMKR1000へのデータ送信に関するMohanPalanisamyのブログ投稿を確認してください。
この投稿では、センサーデータをMRK1000からAzureイベントハブとIotハブに送信する方法を示しました。既存のコードビューを使用してデータをグラフ化しました。 Azureでデータを保存、操作、表示するためのコードを作成するその他の方法については、connect thedotsプロジェクトをご覧ください。
完了したら、使用していないリソースをシャットダウンまたは削除して、請求される金額を制限することをお勧めします。 AzurePrepソリューションには、Azureサービスの削除に役立つClearResourcesプロジェクトがあります。
コード
デバイスエクスプローラー
IoTハブ用のツール。 SetupDeviceExplorer.msihttps://github.com/Azure/azure-iot-sdks/releasesをダウンロードしますドットを接続する
Azureサンプルコードhttps://github.com/Azure/connectthedotsMKR1000-Arduino
Arduinoソースコードhttps://github.com/don/MKR1000-AzureWiFi101ファームウェアアップデータ
TLS証明書をMKR1000に追加するためのツールhttps://github.com/arduino-libraries/WiFi101-FirmwareUpdater/releases/latestイベントハブ署名ジェネレーター
MKR1000のAzureクレデンシャルを生成するツールhttps://github.com/sandrinodimattia/RedDog/releases 回路図
MKR1000フリッツ部分がないので写真を投稿します。配線の詳細については、記事のテキストを参照してください。 製造プロセス