カテゴリー別アーカイブ: ESPresso Lite

ESPresso Lite V2のIPアドレスを固定にする

ESPertで用意されているクラウドサービスを利用することにより、温度・湿度の送信を行うことができます。しかし、クラウドサービスを利用すると全世界に温度・湿度を公開することになり、プライバシーの侵害になってしまいます。プライバシーの問題は別として、LAN内で使う分には、インターネットに公開する必要もないでしょう。

そこで、ESPertのサンプルスケッチを見ると、
_0090_Ajax
というのがありました。
これは、
ESPresso Lite V2がHTTPサーバー(Webサーバー)になり、ブラウザーソフトに対して、Ajaxでデータを送信します。

IPアドレスは、ルーターのDHCPにより、取得し、設定されます。しかし、電源を入れ直すたびにIPアドレスが変わってしまう可能性があり、不便ですので、IPアドレスを固定にしたほうが使い勝手がいいでしょう。ESPertのライブラリーには、IPアドレスを固定にする関数が用意されていませんので、Arduinoのwifiライブラリーに含まれている関数を利用します。

下記のサイトを参考にしました。
https://github.com/esp8266/Arduino/issues/1959
このサイトでは、ESP8266の例ですが、ESPresso もESP8266を使用しているため同様です。

下記の部分で無線LANルーター(アクセスポイント)のSSID、パスワードを設定します。

const char* ssid = “SSID”;
const char* password = “1234567890123”;

下記の部分でIPアドレスを設定します。ルーターが割り当てるIPアドレスと同じ体系にします。若いアドレスは、ルーターがDHCPで割り当てるアドレスに使用することが多いので200前後の大きい値にしたほうがいいでしょう。gateway にルーターのIPアドレスを設定します。

IPAddress ip(192, 168, 1, 190); //任意のIPアドレス
IPAddress gateway(192, 168, 1, 1); //ルーターのIPアドレス
IPAddress subnet(255, 255, 255, 0);

ポート番号は、下記のところで設定しています。通常、HTTPサーバーは、80ですが、変更することもできます。一つのグローバル固定IPアドレスで複数のESPresso Lite (Webサーバー)をインターネットに公開したい場合は、これを変えることにより対応できます。

server = new ESP8266WebServer(80); //ポート番号

パソコンのブラウザーソフトを使って、設定したIPアドレス、上記の例で
http://192.168.1.190
にアクセスすると、下記のように表示されます。

ESPresso_Ajax.pn

 

もとのサンプルスケッチでは、温度のみの表示でしたので湿度も追加しました。単位の℃がうまく表示されないので、C のみに変更しました。
初めの
String indexPage =
に代入する部分でページに表示される内容を変更することができます。

ESPresso Lite V2 ESPert MQTTブローカー

ESPertが提供しているクラウドサービスを利用することにより、インターネットに接続されたESPresso Lite V2の温度・湿度センサーの値を遠隔地のパソコン等で見ることができます。

ESPresso Lite V2 の初期状態では、このMQTT機能がインストールされています。

ESPresso Lite V2をインターネットに接続します。

参照
ESPRESSO LITE V2.0 をインターネットに接続する

ESPresso Lite V2.0 をインターネットに接続する

パソコンで下記のサイトにアクセスします。
http://www.espert.io/mqtt/index.html

Host、Port、ClientID は、自動的に表示されます。
その他も表示された通りの空欄、数値でけっこうです。
その状態でConnect ボタンをクリックします。ESPert021

ホストに接続されると、connected と表示されます。
Add New Topic Subscription ボタンをクリックします。

ESPert022

Topic に
ESPert/XXXXXXXX/#
を入力(XXXXXXXXの部分は、OLEDに表示の固有のID ) を入力し、Subscribeボタンをクリックします。
ESPert023

Messages に指定したIDのESPresso Lite V2の温度・湿度が表示されます。

ESPert024

うまく表示されない場合は、UC00A USB・UARTコンバーターを接続し、Arduino IDEのシリアルモニターで状態を確認すると状況がわかりやすいです。
ESPert025
センサーの値が正しく読み出され、ホストへの送信がうまくできている状態では、
{“temperature”:”25.80″, “humidity”:”54.00″, “name”:”ESPert-XXXXXXXX”}
と表示されます。

ESPert: Failed to read temperature from DHT sensor!
ESPert: Failed to read humidity from DHT sensor!
と表示される場合は、センサーからの値を読み出せない状態です。センサーの接続・接触を確認してください。

ESPresso Lite V2のクラウドサービスESPertのアカウントを作成する

 

ESPertでは、無料で使えるクラウドサービスを提供しています。
固定グローバルIPアドレスがなくてもインターネットからESPresso Lite V2に対してアクセスすることができます。

アカウントの登録

下記にアクセスします。
http://www.espert.io/

ESPert010

右上の Login をクリックします。
ESPert011
Click here to register をクリックすると、下記のようなページが開きますので、ユーザー名(任意のもの)、Eメールアドレス、パスワード、パスワード確認、名前、性別を入力して、I agree with the Terms and Conditionsのチェックボックスにチェックをつけ、Resister をクリックします。
ESPert013
入力されたEメールアドレスあてに確認のEメールが届きますので、そのURLにアクセスすると登録が完了します。

 

Arduino IDEをESPresso Lite V2.0に対応させる方法

 

Arduino(Genuino)の開発に使う開発環境(IDE)でESPresso Lite V2.0 のプログラムを開発することができます。

下記のサイトよりArduino IDE (開発環境)をダウンロードして、インストールします。

https://www.arduino.cc/en/Main/Software

ARDUINO 1.6.9 より古いバージョンでは、サンプルスケッチのコンパイル時にエラーが発生する可能性があります。

インストール後、下記の手順でESPertの開発環境を整えます。ESPert_ArduinoIDE001

「追加のボードマネージャのURL」に
http://arduino.esp8266.com/stable/package_esp8266com_index.json
を入力します。ESPert_ArduinoIDE002

ツール → ボード → ボードマネージャ… の順に選択します。

ESPert_ArduinoIDE003

ボードマネージャのウィンドウで
esp8266 by ESP8266 Community
を選択し、インストールします。

ESPertArdunoIDE007

ツール → ボード で ESPresso Lite 2.0 を選択します。ESPert_ArduinoIDE004

スケッチ → ライブラリをインクルード  → ライブラリを管理…
の順に選択します。ESPert_ArduinoIDE010

ライブラリマネージャ のウィンドウで
ESPert by Jimmy
をインストールします。

ESPertArduinoIDE005

同様に下記の各ライブラリをインストールします。

  • Adafruit NeoPixel by Adafruit
  • ArduinoJson by Benoit Blanchon
  • DHT sensor library by Adafruit
  • ESP8266 Oled Driver for SSD1306 display by Daniel Eichborn
  • HttpClient by Adrian McEwen
  • PubSubClient by Nick O’Leary

スケッチの例 → ESPert にESPresso Lite V2.0 のサンプルスケッチが入っています。
_2000_ESPert_workshop が出荷時に書き込まれているスケッチです。

ESPert_ArduinoIDE013

 

ESPresso Lite V2.0 をインターネットに接続する

 

ESPresso Lite V2.0 は、無線LANルーター(Wi-Fiルーター)を介し、スタンドアロンでインターネットに接続することができます。
ただし、ESPresso Lite V2.0 には、キーボード等がついていませんので、接続先アクセスポイントの設定は、Androidスマートフォン、iPhone等を使って行います。

1. 専用アプリを使う方法

Android向けに用意されているアプリを使って設定を行う方法です。
下記のアプリをGoogle Playより、Androidスマートフォン、タブレットにインストールします。
ESPert SmartConfig 1.0.0

iPhone用のアプリは、まだ用意されておりません。

ESPert_SmartConfig

ESPresso Lite V2.0の電源が入った状態でGPIO13 のボタンを5秒ほど押します。

ESPert_SmartConfig_002

LEDの点灯状態でモードを把握することができます。

遅い点滅:SmartConfig モード
消灯:Wi-Fiに接続された状態
速い点滅:AP モード (アクセスポイントモード)
通常の点滅:Wi-Fiへの接続を試みている状態
消灯:Wi-Fiへ接続されてない状態

しかし、LEDでは状態を把握しづらいので
0.96インチ有機EL(OLED)モジュール
を使用することをお勧めします。
ESP_OLED

OLEDモジュールを接続すると、下記のように表示されます。

ESPert_SmartConfig_003GPIOボタンを長押しするたびにモードが変わります。専用アプリを使用して設定を行う場合場合、このSmart Config モードを使用します。

無線LANに接続した状態でESPert SmartConfig アプリを起動します。
すると、SSID: にスマートフォンが接続している無線LANのSSIDが表示されます。
パスワードは、スマートフォンが接続している無線LANルーター(アクセスポイント)のパスワードを入力します。

ESPert_SmartConfig_004

無線LANに接続されている ESPresso Lite V2.0 が認識され、設定が終わると下記のように表示されます。

ESPert_SmartConfig_006

OLEDには、下記のように表示されます。
ESPert_SmartConfig_005

これにより設定された項目は、EEPROMに保存され、電源を入れ直しても同じ設定が反映されます。

2. ESPresso Lite V2.0をアクセスポイントにして行う方法

ESPresso Lite V2.0をアクセスポイントに設定し、PCやスマートフォンからそのアクセスポイントに接続して、設定を行う方法です。

まず、無線LANルーターを有効な状態にしておいてください。

ESPresso Lite V2.0の電源が入った状態でGPIO13 のボタンを5秒ほど押します。

ESPert_SmartConfig_002

LEDの点灯状態が速い点滅になり、OLEDには、下記のように表示されます。

ESPert_SmartConfig_007

上記の「12345678」は、各ESPresso Lite固有の番号です。

パソコン等からそのアクセスポイントに接続します。
パソコンでアクセスポイント一覧を見ると、下記のように「ESPert-固有の番号」が表示されます。
ESPert_SmartConfig_008

「ESPert-xxxxxxxx(固有の番号)」を選択し、「接続」をクリックします。

ESPert_SmartConfig_009

接続が完了したら、ブラウザーソフトでOLEDに表示されているIPアドレス(通常、192.168.4.1)にアクセスします。
SSID:のChoose a Network に無線LANルーター(アクセスポイント)の一覧が表示されますので、使用する無線LANルーターのSSIDを選択し、そのSSIDのパスワードを入力し、「Submit」を押します。
ESPert_SmartConfig_010

ESPresso Lite V2.0が無線LANに接続され、設定が完了すると、下記のように表示されます。ESPert_SmartConfig_011

OLEDには、無線LANルーターから取得したIPアドレスが表示されます。

ESPert_SmartConfig_012

これにより設定された項目は、EEPROMに保存され、電源を入れ直しても同じ設定が反映されます。