\r\n\r\n

nodemcuを使ってWi-fi制御の照明を追加する

nodemcuといくつかの基本的なプログラミングで構成されるdiy-Wi-fi制御のneopixシステムを構築して、あなたのコンピュータケースを活気づける方法を学びます...

デスクトップPCのタワーは、灰色のプラスチック製のタワーが机の下に隠されていた時代から、ずいぶん進歩したものです。PCケースは機能別だけでなく、美しさも追求され、ガラスパネルで構成されたディスプレイや、近未来的で力強いデザインは、ギークのデスクで主役となります。

LEDユニットの普及が進んでいます。12VのシンプルなRGBストリップは1メートルあたり1ドル程度で購入でき、ケースの内部を(他のほとんどのものと一緒に)非常によく照らすことができます。

でも、それよりももう少し特別なことをしたかったんです!」。今日は、ピクセルLEDを使って、オーダーメイドのIFTTT(If This Then That)通知でWi-Fi制御可能な筐体照明を作る予定です。システム全体の電源は、タワーにある予備のモレックスコネクタを使用し、完全に自己完結しています。なんといっても、このプロジェクトは全部で10ドル以下なんです。

このチュートリアルは、ビデオ形式でご覧いただけますが、引き続き書面でもご覧いただけます。

脳を持つランプ

このプロジェクトでは、個別にアドレス指定可能なLEDを使用する予定です。ここで使用したLEDは、1メートルあたり約4ドルのWS2812Bストリップです。

それらを制御するためにNodeMCUボードを使用する予定です。Arduinoと互換性のあるWi-Fiボードなら何でも使えますが、Arduino**としてはNodeMCUがお気に入りです。

必要なもの

  1. 1 x 5v ピクセルLEDストリップ、Neopixel/WS2811/12/12B
  2. NodeMCU 1個(AliExpressで3ドル)。
  3. 220-500Ω抵抗×1
  4. 100-1000マイクロファラッドコンデンサ×1個
  5. 1 x トグルスイッチまたはサーキットブレーカー
  6. 1 x モレックスコネクター、メスネジ
  7. テストプレート1枚
  8. 5V電源×1(テスト用)
  9. 試作基板1枚と配線(回路実装用)
  10. 各種接続ケーブル
  11. はんだごて、はんだ

この中で唯一目立つのは、モレックスコネクターです。現在、多くのPCユーザーはCDドライブを全く使用しないが、それでも電源は接続されている。この予備の電源ケーブルを活用すればいいのです。たった0.30ドルなのに、古いディスクドライブからネガ型コネクターを取り出したのです。

回路を組む

今回は、余計な突っ込みを避けるため、外部電源を使ってテストします。実験台をこのように片付けます。

この種のLEDを初めてセットアップする場合は、まずArduinoでこれらのストリップを使用するための詳細なガイドを確認することをお勧めします。

このスイッチは、NodeMCUを回路から切り離すだけです。今回はスイッチの代わりにシンプルなサーキットブレーカーを使用します。その機能は、USB接続時にボードのVIN端子を分離することです。LEDの消費電力は比較的小さいのですが、USB経由での消費電力が大きくなりすぎないようにすることが大切です。

実験ボードのセットアップが完了すると、このような状態になります。

私の場合、回路は同じですが、コンデンサと抵抗は古いプロジェクトから引き取ったものなので、すでにプロトボードにあります。

ハードウェアの設定ができたので、コードを作ってみましょう。

外科手術用脳

ArduinoIDEを使用して、ノードMCUのコーディングを行うことになります。今回の例では、メインスイッチとメール受信時の通知信号の2つの動作モードを設定することにします。IoTデバイスのWebサービスであるBlynk [brokenurl Removed]を使って、ボードと通信することにします。

Blynkの紹介記事をまだ利用したことがない方は、ぜひチェックしてみてください。

Blynkアプリケーションで、新規プロジェクトを立ち上げ、ボードとしてNodeMCUを選択します。Blynkに登録されたメールアドレスに認証コードが送信されます。3つのボタンと3つのスライダーを追加します。

これらのボタンやスライダーは、仮想ピンV0-V5に値を送るように設定してください。 テスト」ボタンは、一時的にメール通知のテストを行います。他の2つのボタンに「Power」と「Auto/Manual」などのラベルを付け、3つのスライダーに「Red」「Green」「Blue」のラベルを付けます。

ここでArduino IDEを開きます。このプロジェクトにはBlynkとFastLEDのライブラリが必要なので、この2つのライブラリがインストールされていることを確認してください。Arduino IDEを使い始めたばかりの方は、Arduinoビギナーズガイドをご覧ください。

ここではコードを分割して説明しますが、もし全コードをダウンロードしたい場合は、GitHubで見つけることができます。

この場合、スクリプトに独自のWi-Fi詳細、認証コード、関連するNodeMCUのピン番号とインジケータ番号を追加してください。これからコードを勉強する人は、各パーツの仕組みを理解するために、最初のほうから始めるといいと思います。これは、コーディングに親しむための多くの方法の一つです。

新しいスケッチを作成し、適切な名前を付けて保存します。Tools> Boards and Tools> Ports メニューから、正しいボードとポートを選択したことを確認します。まず、関連するBlynkとFastLEDの名前空間を含めることから始めます。

#define BLYNK_PRINT Serial#include <ESP8266WiFi.h>#include <BlynkSimpleEsp8266.h>#include "FastLED.h"

次に、FastLEDの定義をいくつか追加します。

//---FastLED definiti*** and CRGB---#define LED_PIN 3 // GPIO pin for RGB LEDs.#define NUM_LEDS 44 // Number of LEDs connected.#define BRIGHTNESS 64 // Default LED brightness.#define LED_TYPE WS2812B#define COLOR_ORDER GRBCRGB leds[NUM_LEDS];

次に、RGBの値、Auto/Manualモード、メインスイッチの変数を宣言します。また、後で使用するFastLEDプリセットに必要なベースカラーの値も追加しています。

//---variables for our RGB values (0-1023) ---int r = 500;int g = 500;int b = 500;//---variables for On/Off, and Auto/Manual toggleint masterSwitch = 1;int autoMode = 1;//--- int/byte for automatic hue incrementation---uint8_t gHue = 0; // rotating "base color" used by many of the patterns

Blynkの情報を追加する場合は、必ずここにご自身のWi-Fiの情報を入力してください。

//---Blynk auth code and wifi details---char auth[] = "YourAuthCode";//Blynk authorisationchar ssid[] = "YourWifiName";char pass[] = "YourWifiPassword";

セットアップ機能を使って、FastLEDにLEDを追加し、Blynkとの通信を確立しました。

void setup() { // power-up safety delay delay(3000); Serial.begin(9600); //--- add the LEDS to FastLED and set the brightness--- FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalSMD5050); FastLED.setBrightness(BRIGHTNESS); #define FRAMES_PER_SECOND 120 //---start communication with the Blynk server --- Blynk.begin(auth, ssid, pass);}

循環関数でif文を使用すると、配置されたモードによって異なる処理を行う。

void loop() { Blynk.run(); if(masterSwitch == 0) { for (int i = 0; i < NUM_LEDS; i++) { leds[i] = CRGB::Black; FastLED.show(); delay(30); } } if(autoMode == 0 && masterSwitch == 1) { for (int i = 0; i < NUM_LEDS; i++){ leds[i] = CRGB(r, g, b); FastLED.show(); delay(30); } } if(autoMode == 1 && masterSwitch == 1) { fill_rainbow( leds, NUM_LEDS, gHue, 7); // send the 'leds' array out to the actual LED strip FastLED.show(); // insert a delay to keep the framerate modest FastLED.delay(1000/FRAMES_PER_SECOND); EVERY_N_MILLISECONDS(20) { gHue++; // slowly cycle the "base color" through the rainbow } }}

ここで、BLYNKu WRITE機能を使って、これらの変数をBLYNKアプリケーションで選択した内容に従って変更します。

//---Master On/Off---BLYNK_WRITE(V0) { masterSwitch = param.asInt();}//--- Red slider value---BLYNK_WRITE(V1) { r = param.asInt();}//--- Green slider value---BLYNK_WRITE(V2) { g = param.asInt();}//--- Blue slider value---BLYNK_WRITE(V3) { b = param.asInt(); }//--- Toggle Auto/Manual Mode ---BLYNK_WRITE(V4) { autoMode = param.asInt();}

最後に、赤い光の繰り返しをメール通知として機能させる機能を作ります。これは何が起きても発動するように設計されているので、現在消灯していても必ず通知されることになります。

//---Email notification light---BLYNK_WRITE(V5) { int g = param.asInt(); if(g == 1) { for(int a = 0; a < 10 ; a++) { for (int i = 0; i< NUM_LEDS; i++) { leds[i] = CRGB(1023, 0, 0); FastLED.show(); delay(10); FastLED.clear(); delay(10); } } }}

完全なコードができたら、スイッチ/ブレーカーを使用してNodeMCUを回路から分離し、USB経由で**送信します。スケッチをボードにアップロードします。アップロードが完了したら、USBケーブルを外し、5V電源を接続します。問題がなければ、LEDストリップはFastLEDのポップなレインボーモードであるオートモードでスタートするはずです。テストボタンで通知信号のテストをすることができます。

このように、LEDライトをケース側面に大まかに配置し、必要な数を把握できるようにしました。私の場合は44個でしたが、ミニタワーを使ったのでもっと多くてもいいかもしれません。使用する発光ダイオードの消費電力と、コンピュータが供給できる電力を必ず考慮してください。

コンフィギュレーション ifttt

IFTTTのGmailとの統合を利用して、通知シーケンスを起動する予定です。IFTTTを使ったことがない人は、お気に入りのウェブアプリケーションを自動化する方法の多さに驚くことでしょう。

新しいアプレットをセットアップする。This」は、Gmailチャンネルから受信トレイにある任意の**メールを選択します。That」は、「Maker Webhooks」を選択し、Webリクエストを送信します。

URLの部分は、通知ピンを呼び出すところです。プロジェクトを利用するためには、URLを変更する必要があります。フォーマットはhttp://BlynkIpAddress/YourAuthCode/pin/V5。コマンドプロンプトでping Blynkと入力すると、Blynkのip-cloudを見つけることができます。

メソッドとしてPUT、コンテンツタイプとしてapplication/jsonを選択します。最後に、Bodyセクションに["1"]を追加し、Create Actionをクリックします。

これで、IFTTTに関連付けられたGmailアドレスの受信箱にメールが届くたびに、Blynkサーバーの仮想ピン5に「1」のメッセージが送信され、これが通知のトリガーとなるのです。試しに自分宛にメールを送ってみてください。時間がかかっても、我慢してください

これで、Blynkアプリケーションのテストボタンは、必要に応じて取り除くことができます。

まとめ

これですべてのテストが終了したので、次はハードウェアのインストールです。プロジェクトをテストボードからプロトタイプボードに移動します。初めてはんだ付けをする方、はんだ付けのコツを知りたい方は、「はんだ付けガイド」をご覧ください。

モレックスコネクタを基板に接続する前に、使用するピンをメモしておいてください。コンピュータの電源からつながるオスコネクターには、4本のケーブルがあります。2本の黒いケーブルは共通のグランドケーブル、黄色いケーブルは+12V、赤いケーブルは+5Vになります。 メスコネクターの対応するピンを基板に接続していることを確認してください。基板や発光ダイオードを誤って焼かないように、2本のピンしか取り付けないことにしました

プロトマザーボードを外さなくてもパソコンケースの側面が完全に取り外せるように、マザーボードとLEDの間にデュポンケーブルを接続することにしました。ケースを閉じたときにLEDが収まるかどうかを確認するために、まずはケースにLEDを載せてテープで固定することをお勧めします。

注:LEDストリップをはんだ付けする際、データ線は同じ方向に流れる必要があります。これはストリップにマークされています。

最後に、試作ボードをPCタワー内に取り付けます。今回は仮組みなので、基板の裏側を絶縁し、ケースの裏側にジップタイで固定することにしました。また、静電気による内部部品への危険にもご注意ください。

悟りを開いた

すべてうまくいけば、自動メール通知機能を備えたWi-Fiオペレーティング・ライトが完成するはずです。これで、このシステムは完成です。マザーボード上のキルスイッチを使って、USB経由でNodeMCUをセキュア**にし、コードを変更することができます。IFTTTと統合した別の通知(TwitterやFacebookの青いインジケーターなど)を追加してみたり、FastLEDライブラリのカスタム設定を使ってインジケーターに動きをつけてみたりするとよいでしょう。

コンピュータタワーに発光ダイオードを設置したことはありますか?何か素晴らしい自動化システムを構築されたのでしょうか?あなたのプロジェクトやプランについて、下のコメント欄で教えてください。

写真提供:David Brown/Flickr

  • 2021-03-14 05:31 に公開
  • 閲覧 ( 26 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ