注釈
こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Communityへようこそ!Facebook上で、仲間と一緒にRaspberry Pi、Arduino、ESP32をさらに深く探求しましょう。
なぜ参加するのか?
専門的なサポート:購入後の問題や技術的な課題をコミュニティやチームの助けを借りて解決。
学びと共有:スキルを向上させるためのヒントやチュートリアルを交換。
限定プレビュー:新製品発表や予告編に早期アクセス。
特別割引:最新製品の特別割引を楽しむ。
フェスティブプロモーションとプレゼント:プレゼントやホリデープロモーションに参加。
👉 私たちと一緒に探索と創造を始める準備はできましたか?[ここ]をクリックして、今すぐ参加しましょう!
レッスン48: ThingSpeakを使用したウェザーモニター
このプロジェクトでは、大気圧センサーを使用して温度と気圧のデータを収集します。収集されたデータは、ESP8266モジュールとWi-Fiネットワークを介して、一定時間間隔でThingSpeakクラウドプラットフォームに送信されます。
必要なコンポーネント
このプロジェクトでは、以下のコンポーネントが必要です。
一式キットを購入するのが便利です。こちらのリンクをご覧ください:
Name |
ITEMS IN THIS KIT |
LINK |
---|---|---|
Universal Maker Sensor Kit |
94 |
以下のリンクから別々に購入することもできます。
Component Introduction |
Purchase Link |
---|---|
Arduino UNO R3 or R4 |
|
- |
|
- |
配線
ThingSpeakの設定
ThingSpeak ™は、クラウドでライブデータストリームを集約、可視化、分析できるIoT分析プラットフォームサービスです。ThingSpeakは、デバイスから投稿されたデータを即座に可視化する機能を提供します。MATLAB®コードをThingSpeakで実行できるため、データが到着するたびにオンラインで分析および処理を行うことができます。ThingSpeakは、分析が必要なIoTシステムのプロトタイピングおよび概念実証によく使用されます。
1) ThingSpeakアカウントの作成
まず最初に、ThingSpeakのアカウントを作成する必要があります。MATLABとの連携により、MathWorksの資格情報を使用して|link_thingspeak|にログインできます。
アカウントをお持ちでない場合は、MathWorksのアカウントを作成し、ThingSpeakアプリケーションにログインする必要があります。
2) チャンネルの作成
ログイン後、「Channels」>「My Channels」に進み、「New Channel」をクリックして新しいチャンネルを作成し、データを保存します。
このプロジェクトでは、「 Weather Monitor 」というチャンネルを作成し、 Field 1 に「 Temperature 」、 Field 2 に「 Atmospheric Pressure 」を設定する必要があります。
コード
universal-maker-sensor-kit\arduino_uno\Lesson_48_Iot_Weather_Monitor``のパスにある ``Lesson_48_Iot_Weather_Monitor.ino
ファイルを開くか、このコードを Arduino IDE にコピーします。使用するWiFiの
mySSID
とmyPWD
を入力する必要があります。String mySSID = "your_ssid"; // WiFi SSID String myPWD = "your_password"; // WiFi Password
また、ThingSpeakチャネルAPIキーを使用して
myAPI
を修正する必要があります。String myAPI = "xxxxxxxxxxxx"; // API Key
ここには あなたのユニークなAPIキーが表示され、これは秘密にしておく必要があります 。
正しいボードとポートを選択した後、 アップロード ボタンをクリックします。
シリアルモニタを開き(ボーレートを 9600 に設定)、接続成功などのプロンプトが表示されるのを待ちます。
コード解析
初期化とBluetooth設定
// Set up Bluetooth module communication #include <SoftwareSerial.h> const int bluetoothTx = 3; const int bluetoothRx = 4; SoftwareSerial bleSerial(bluetoothTx, bluetoothRx);
まず、Bluetooth通信をサポートするためにSoftwareSerialライブラリをインクルードします。次に、BluetoothモジュールのTXおよびRXピンを定義し、Arduinoのピン3および4に割り当てます。最後に、Bluetooth通信のための``bleSerial``オブジェクトを初期化します。
LEDピンの定義
// Pin numbers for each LED const int rledPin = 10; //red const int yledPin = 11; //yellow const int gledPin = 12; //green
ここでは、LEDが接続されているArduinoのピンを定義しています。赤色LEDはピン10、黄色はピン11、緑色はピン12に接続されています。
setup()関数
void setup() { pinMode(rledPin, OUTPUT); pinMode(yledPin, OUTPUT); pinMode(gledPin, OUTPUT); Serial.begin(9600); bleSerial.begin(9600); }
setup()``関数では、LEDピンを ``OUTPUT
として設定します。また、Bluetoothモジュールおよびデフォルトのシリアル(コンピュータに接続されている)とのシリアル通信をボーレート9600で開始します。Bluetooth通信のためのメインループ
void loop() { while (bleSerial.available() > 0) { character = bleSerial.read(); Serial.println(character); if (character == 'R') { toggleLights(rledPin); } else if (character == 'Y') { toggleLights(yledPin); } else if (character == 'G') { toggleLights(gledPin); } } }
メインの
loop()
内では、Bluetoothモジュールからデータが利用可能かどうかを継続的にチェックします。データを受信した場合、その文字を読み取り、シリアルモニタに表示します。受信した文字(R、Y、またはG)に応じて、toggleLights()
関数を使用して対応するLEDを点灯します。LED切り替え関数
void toggleLights(int targetLight) { digitalWrite(rledPin, LOW); digitalWrite(yledPin, LOW); digitalWrite(gledPin, LOW); digitalWrite(targetLight, HIGH); }
``toggleLights()``関数は、まずすべてのLEDを消灯します。すべてが消灯していることを確認した後、指定されたターゲットLEDを点灯させます。これにより、常に1つのLEDのみが点灯するようにします。