ESP8266に基づくWi-Fiを備えたクリスマススター





何年もの間、私は新年の木に珍しい星を作ろうとしました。 最初のオプションは、UV LEDを備えたスターでした。 チップなしで輝いていました。 星の2番目のバージョンはLEDストリップ付きでした。 繰り返しますが、興味深いものはありません-ただ静的な輝きです。 モードを終了するアイデアはありましたが、時間がありませんでした。



私は、2015年のお祝いに前もって準備し、新年の1か月前に新しい星の開発を開始することにしました。 新しいペニー($ 3)SoC ESP8266の最初のバッチを受け取りました。 あなたがそれから来たものに興味があるなら、猫をお願いします。



ESP8266はかなり新しいプラットフォームですが、HabréとGictimesに関するこのトピックに関する記事がすでにいくつかあります。たとえば、 「ESP8266:IoTの世界での革命」「ESP8266の使用:コンパイラーの作成と最初のファームウェアの作成」です。



最後のリンクは、ESP8266のファームウェアを作成するための環境のセットアップに関する小さなハウツーです。



まず、デバイスから何を取得するかを決めました。

主な要件は次のとおりです。

1. HTTPプロトコルを介してツリー全体をオン/オフにする機能。

2. HTTPプロトコルを介して星の各光線の色を設定する機能。

3.星のさまざまな「準備完了」モードの存在。



星の光を際立たせるために、LPD6803チップ上でピクセルガーランドを使用することにしました(既に持っていました)。



デバイスを作成するための2つのオプションがありました。



最初のオプションは、ATファームウェアとArduino Pro MiniでESP8266バンドルを使用することです。 この場合、作業のロジックを登録するだけで済みます。Arduinoの下のすべてのライブラリはすでに存在しています。 また、Arduino Pro Miniに搭載されている電圧レギュレーターは既に入手可能です。 しかし、これは面白くない...



そこで、私は2番目の方法で、ArduinoなしでESP8266のみを使用しました。

ESP8266モディフィケーション01(最も人気のある)を入手できました。 以下がその1つです。







この変更には2つの出力GPIOポートがあり、さらにポートUART_RXおよびUART_TXをGPIOモードにできます。 私のクラフトでは、LPD6803のDATAとCLK、およびツリー全体のオン/オフリレーを制御するポートの3つのGPIOポートが必要です。



ESP8266のプログラミングには、PL2303チップに基づくUSB-UARTコンバーターを使用することにしました(ebayまたはaliexpressで数ドルで簡単に購入できます)。 このコンバータには4つのピンがあります:+ 5V、GND、RX、TX。 問題は、ESP8266が3.3Vで動作し、5Vを許容しないことです。 この理由から(そして便宜上)、ESP8266の開発ボードと同様のことをすることにしました。







このボードは、LM317レギュレータを使用して電圧を3.3Vに下げ、GPIO、UART、GND、3.3V、5V、およびDIPスイッチを出力するピンを備えており、ESP8266をファームウェアモードにします(GPIO0からGND、GPIO2から3.3V)。



実装について少し説明します。 プロジェクト全体の主要部分は、LPD6803のドライバーです。 Arduino AdaFruitライブラリから移植しました。 この記事では、LPD6803の動作原理については説明しません。 材料は別の記事を引き出します。



興味のある方のために、いくつかの便利なリンクを提供します。



-Datashit

-github.comのコードはESP8266の下にあります



私の実装では、GPIO0を使用してDATA LPD6803に接続し、GPIO2をCLKに接続します。 リレーの場合、別のGPIO出力を取得する必要がありました。 ダーティハックを使用する必要はなかったため、UART_RXをGPIOに再割り当てしました(とにかく、ファームウェアはユーザーからの入力をサポートしていません)。 次のコード行は、UART_RXをGPIO3に変換します。



PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);
      
      





Webサーバーとして、友人Sprite_tmのコード使用しました。 私の知る限り、このWebサーバーはESP8266のほぼすべてのアマチュアプロジェクトで使用されています。 デバイスをホームネットワークに接続する機能は、このWebサーバーに既に含まれています。 デフォルトでは、デバイスはアクセスポイントとして機能します。 このアクセスポイントに接続した後、ユーザーは10.10.10.1/wifiでブラウザーに入ることができます。 このページでは、接続するネットワークを選択できます(必要に応じて、非表示のネットワークを選択してパスワードを指定できます)。 すべてのWebサーバーの応答はJSON形式で受信できるため、さまざまなシステムやアプリケーションへの統合に非常に便利です。



ソフトウェアの部分に関しては、これ以上言うことはありません。 ファームウェアコードはgithub.comで入手できます



次に、鉄の実装について少し説明します。 身体から始めましょう。 彼のために、グロープラグがかつて立っていた古い星を選びました。 ケースは次のようになります。







幸運だったのは LPD6803チップを搭載したRGB LEDは、白熱灯のクリップに完全に適合します。







ESP8266モジュールをスターに直接配置することにしました。 ツリーの上部のWi-Fi信号の品質は、その下よりも高くなります。



ツリーの下に、12V電源とこの種の自家製ボードを取り付けました。







ご覧のとおり、2つの電圧レギュレータがあり、5Vと3.3Vを出力します。 5ボルトはLPD6803によって使用され、3.3ボルトは既に上で述べたように、ESP8266を食べます。 レギュレータに加えて、12Vリレーがボード上にあります。 トランジスタを介してけいれん。 ツリーの下のボックスから星まで、4線ケーブルがあります:3.3V、5V、GND、およびリレー制御チャネル。



現時点では、ESP8266スタックのTCP \ IPラッパーのバグに関連するこのスターに問題があります。

この問題を解決するには、ラッパーなしでlwipを直接使用するように切り替える必要があります。



プロジェクト開発計画には2つのことがあります。

1. MQTTプロトコルを介して作業を実装します。

2. OpenHabでスターの友達を作りましょう



そして最後に、ビデオ作品。 Androidアプリケーションは制御に使用されます(未加工なので、ソースコードを投稿しません)。 彼の妻の声:






All Articles