まず、esp8266 は mqtt を通じてメッセージを公開し、WeChat アプレットは mqtt を通じてメッセージをサブスクライブします。アプレットがサブスクライブすると、esp8266 によって送信されたメッセージをリアルタイムで受信できます。 2番目は、温度と湿度のテストですここではD4ポートが使用されます。 このデモはArduino IDEを使用して開発されています。Arduino IDEのESP8266環境設定の詳細については、以下を参照してください。環境設定: クリックしてジャンプ ライブラリのインストールこの例では、ESP8266 で動作する非常にシンプルで使いやすい Simple DHT センサー ライブラリを使用します。ライブラリは、Arduino IDE ライブラリ マネージャーを通じて簡単にインストールできます。 テスト手順: #include <SimpleDHT.h> // DHT11の場合、 // VCC: 5V または 3V // GND: GND // データ: 2 ピンDHT11 = D4; シンプルDHT11 dht11(pinDHT11); void セットアップ() { シリアル.begin(115200); } void loop() { // 作業を開始します... Serial.println("====================================="); Serial.println("サンプルDHT11..."); // サンプルなしで読み取ります。 バイト温度 = 0; バイト湿度 = 0; int err = SimpleDHTErrSuccess; if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) { Serial.print("DHT11の読み取りに失敗しました、err="); Serial.println(err);delay(1000); 戻る; } Serial.print("サンプルOK: "); Serial.print((int)温度); Serial.print(" *C, "); Serial.print((int)湿度); Serial.println(" H"); // DHT11 のサンプリング レートは 1HZ です。 遅延(1500); } 正常に動作する場合、次の図に示すように、シリアル ポートは正常に出力されます。 3番目に、温度と湿度をクラウドにプッシュする前のステップの温度と湿度を読み取って出力できれば、前のバージョンに基づいてデータをクラウドにアップロードできます。 ボタンコントロールが追加され、データが # で囲まれているため、アプリは文字列の切り取りを使用してデータを分離できます。#23#80#on、つまり #温度#湿度#ボタンの状態。ミニプログラムは、# で分割された文字列に従って値を取得し、表示します。 アップロードされたデータが温度と湿度だけではない場合は、# 記号の後に &msg=#23#80#data1#data2#data3#data4#\r\n を追加し続けることができます。アプリが文字列を分割するときは、アップロードされたデータに従って分割する必要があります。 アップグレード版をダウンロード: クリックしてダウンロードしてください https://cloud.bemfa.com/zip/mqtt/dht11_led.zip 変更が必要な点 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Bafa MQTT デバイス クラウド コンソールで 2 つの新しいトピックを作成します。トピック名は任意です。たとえば、temp004 は温度と湿度の送信に使用され、led002 は LED の制御に使用されます。この例では、temp004 と led002 を使用します。サンプル コードを使用する場合は、独自のトピック名に変更する必要があります。トピック名は、文字、数字、または文字と数字の組み合わせにすることができます。 UID はユーザーの秘密鍵であり、 Buffa Maker Cloud Consoleに登録してログインすると取得できます。 注: MQTT デバイス クラウドでトピックを作成します。 ログインすると、図に示すように、コンソールに秘密鍵の UID が表示されます。 WIFI 名はルーターの WIFI 名であり、大文字と小文字が区別されます。間違って入力すると、ネットワークに接続できなくなります。 この例では、データは 3 秒ごとにアップロードされます。 long now = millis(); //現在のタイムスタンプを取得します。 if (now - lastMsg > timeval) { //3秒に達したら、データをアップロードします。 lastMsg = now; // サンプルなしで読み取ります。 バイト温度 = 0; バイト湿度 = 0; int err = SimpleDHTErrSuccess; if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) { Serial.print("DHT11の読み取りに失敗しました、err="); Serial.println(err); delay(1000); 戻る; } String msg = "#" + (String)temperature + "#" + (String)humidity + "#" + ledstatus; //データ パッケージ#温度#湿度#スイッチ ステータス# client.publish(dhttopic, msg.c_str()); //データのアップロード} ルーターにネットワーク アクセスがある場合、データは自動的にアップロードされます。アップロードされたデータを確認するには、Bafa MQTT デバイス クラウドの Web ページを更新します。次の図に示すように: データはアップロード時に # でカプセル化されます。27 は温度、24 は湿度、オフはアップロードされたライトの状態です。 4. WeChatアプレットの開発WeChat パブリック プラットフォームでミニ プログラム アカウントを登録し、ミニ プログラムの appid を取得して、右側の [開発] -> [開発管理] -> [開発設定] ----> [開発者 ID] をクリックします。次のように表示されます: wx34a2063de5cec04b。これは、以下のプロジェクトをインポートするときに使用されます。 右側で、「開発」>「開発管理」>「開発設定」>「サーバー ドメイン名」をクリックします。以下のサーバー ドメイン名で [変更] をクリックし、リクエストの法的ドメイン名とソケットの法的ドメイン名にそれぞれドメイン名 https://api.bemfa.com と wss://bemfa.com を追加して、保存して送信します。下記の通りです。 Baidu からダウンロードできる WeChat 開発者ツールをダウンロードしてインストールします。 デモプログラムをダウンロードしてください。ダウンロードアドレス: クリックしてダウンロード WeChat 開発者ツール、ミニプログラム プロジェクトを開き、プロジェクトをインポートします。ディレクトリにダウンロードして解凍したデモ プログラムを選択し、 AppID にミニ プログラムの AppID を入力して、下の [インポート] をクリックします。下記の通りです。 このサンプルプログラムは非常にシンプルです。 さまざまな機能を開発して追加したり、背景を追加したり、色を最適化したりすることができます。 単純に使用するだけであれば、/pages/index/index.js ファイル内の uid と topic 情報を独自のものに変更するだけで済みます。 ここでの uid と topic は、esp8266 によって入力された uid と topic と同じである必要があります。 ここには、温度と湿度を送信するためのトピックと、LED を制御するためのトピックの 2 つがあります。下記の通りです。 データ: { uid:"4d9ec352e0376f2110a0c601a2857225",//BAFAC Cloud Console によって取得されたユーザー キー ledtopic:"led002",//mqtt コンソールによって作成された制御 LED トピック dhttopic:"temp004",//コンソールによって作成された温度と湿度の送信トピック device_status:"offline",//LED がオンラインかどうかを示す文字列、デフォルトはオフライン ledOnOff:"off", チェック済み: false, // LED のステータス。デフォルトの LED はオフです。wendu:"", // 温度値、デフォルトは空です。shidu:"", // 湿度値、デフォルトは空です。ledicon:"/utils/img/lightoff.png", // LED アイコンのステータスを表示します。デフォルトではステータスアイコンクライアントを閉じます: null、//mqttクライアント、デフォルトは空です}、 変更が完了したら、Ctrl + S を押して変更を保存します。以下に示すように、左側の画面のボタンをクリックしてデバッグすることができます。 コンソールではアプレットのデバッグ情報を表示できます。デフォルトでは、esp8266 のステータス情報を確認するために、3 秒ごとにサーバーにデータを自動的に要求します。開くまたは閉じるボタンをクリックして、esp8266 シリアル ポート デバッグ アシスタントを開き、esp8266 がコマンドを受信したかどうかを確認します。最初のステップで esp8266 がインターネットに接続されている場合は、情報を受信できます。 インターフェースやその他の機能が開発されれば。以下に示すように、WeChat 開発者ツールの上にあるアップロード ボタンをクリックできます。 アップロードが成功したら、登録したWeChatパブリックプラットフォームにログインします。バージョン管理セクションで、アップロードしたミニプログラムを確認できます。レビューに提出します。通常、約1日後に承認されます。合格したら、WeChatパブリックプラットフォームにログインしてリリースに提出します。自分で使う場合は、特定の文字列が正しいかなどを確認するログイン認証機能を追加してください。そうしないと、ミニプログラム起動後に他の人が勝手に制御できてしまいます。 WeChat アプレット + mqtt、esp8266 温度と湿度の読み取りに関するこの記事はこれで終わりです。WeChat アプレット esp8266 温度と湿度の読み取りに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: kubernetes1.5.2 から kubernetes1.10 にアップグレードする際の主要な設定変更記録
>>: MySQLのINサブクエリによってインデックスが使用できなくなる問題を解決する
Windows フォームと同様の効果を得るには、中央をドラッグして div の位置を変更し、端をド...
ページ内のテーブルの幅を width="600px" に設定した後も、幅が固定さ...
目次js 呼び出しメソッドアンドロイド1.jsはネイティブを呼び出す2. ネイティブコールjs iO...
mysql は大文字と小文字を区別しないように設定されていますウィンドウズmysqlがインストールさ...
バックアップがあれば、非常に簡単です。最新のバックアップ データを生成し、mysqlbinlog を...
目次1. 一意の値をフィルタリングする2. 短絡評価2.1 シナリオ例3. ブール変換4. 文字列を...
この記事の例では、WeChatアプレットでテキストスクロールを実装するための具体的なコードを参考まで...
目次1. JDKをダウンロードする(例としてjdk1.8.0を使用する) 2. JDK をインストー...
1. 単一の矢印への複数の呼び出し単一の矢印を実装したら、二重矢印を実装するのは簡単です。上では、単...
この記事では、参考までに、簡単な抽選機能を実装するためのjsの具体的なコードを共有します。具体的な内...
まとめDocker-compose は複数の Docker コンテナ サービスを簡単に組み合わせるこ...
ハロウィーンではありませんが、Linux の不気味な側面に注目する価値はあります。幽霊、魔女、ゾンビ...
px(ピクセル)ピクセルという言葉は皆さんもよくご存知だと思います。次に、この単位に関するちょっとし...
多くの友人が、Docker でプロジェクトを実行する方法をずっと知りたがっていました。今日は、自分の...
今日、CSDN で HTML テキスト エスケープのちょっとしたトリックを見ましたが、とても簡単です...