#author("2017-01-31T13:21:51+09:00","default:nari","nari")
#author("2017-01-31T13:22:48+09:00","default:nari","nari")
[[FrontPage]]

* WeatherStationDemoのインストール方法 [#z31cee3b]

** 概要 [#zda533ff]

- WeatherStationDemoはESP8266_Weather_Stationライブラリのexamplesに含まれるプログラム
- 128x64dot モノクロOLEDに時刻、天気と気温、3日分の天気予報などを表示します。
- HSES-NODE-OLEDで動作させるための修正内容を説明します。

&ref(./170131a0.jpg,25%);
&ref(./170131a1.jpg,25%);
&ref(./170131a2.jpg,25%);
CENTER:WeatherStationDemoExtended の画面

** 入手方法 [#q7534868]

- ESP8266 Weather Station ライブラリに付属します。
-- ライブラリマネージャからインストール可能です。
-- GitHubの下記ページからもダウンロード/git clone可能です。
--- [[squix78/esp8266-weather-station: New version of the ESP8266 Weather Station:https://github.com/squix78/esp8266-weather-station]]

- ライブラリがインストールできたら、Arduino-IDEのメニューバーから ファイル→スケッチの例→ESP8266 Weather Station→ WeatherStationDemo で開き、適当な場所に保存してください。

** WeatherStationDemo/Extended/DSTの違い [#fbde1382]

- よく似た名前の3つのサンプルスケッチがあります。
-- 中身も似てますので、おなじような修正で、それぞれ動かせます。
- 違いは
-- WeatherStationDemo:  SSID/パスワードはプログラムに埋め込み
-- WeatherStationDemoExtended: SSID/パスワードはスマホ等で設定、画面下部の表示内容が増える
-- WeatherStationDemoExtendedDST: 表示が6面、温湿度センサーも接続?

** Wunderground API keyの入手 [#s9a21749]

- このプログラムを動作させるにはWunderground のAPI Keyが必要です。
-- [[Wunderground API keyの入手方法]]

** プログラムの修正箇所 [#gec1e142]

- WeatherStationDemoExtendedの例で説明します。

*** SSD1306WireをSSD1306Spiに [#ab94ec0d]

- HSES-NODE-OLEDではSPI接続のOLEDを使用しているので、SSD1306WireをSSD1306Sp@iに変更します。
- 36行あたり
 -#include "SSD1306Wire.h"
 +#include "SSD1306Spi.h"

- 79行あたり
 -SSD1306Wire     display(I2C_DISPLAY_ADDRESS, SDA_PIN, SDC_PIN);
 +#define OLED_RST	16
 +#define OLED_DC		15
 +#define OLED_CS		 2
 +SSD1306Spi     display(OLED_RST, OLED_DC, OLED_CS);

*** 時差、Wundergroundの設定 [#t2c1f416]

- 64行あたり
 -const float UTC_OFFSET = 2;
 +const float UTC_OFFSET = 9;
  
  // Wunderground Settings
  const boolean IS_METRIC = true;
 -const String WUNDERGRROUND_API_KEY = "API_KEY";
 +const String WUNDERGRROUND_API_KEY = "<取得したAPI_KEY>";
  const String WUNDERGRROUND_LANGUAGE = "EN";
 -const String WUNDERGROUND_COUNTRY = "CH";
 -const String WUNDERGROUND_CITY = "Zurich";
 +const String WUNDERGROUND_COUNTRY = "Jp";
 +const String WUNDERGROUND_CITY = "ご希望の都市名";

- どの都市名が使用できるかは、[[wunderground:https://www.wunderground.com/]]の検索box/Search Locationsで検索してみるとわかります。

*** ThingSpeak関連処理の削除 [#r834fa8b]

- [[ThingSpeak:https://thingspeak.com/]]を経由して室温湿度等を表示する機能があります。
- そのままですと、どこかの部屋の温度・湿度が表示されるだけなので削除します。
- 121行あたり
 -FrameCallback frames[] = { drawDateTime, drawCurrentWeather, drawForecast, drawThingspeak };
 -int numberOfFrames = 4;
 +FrameCallback frames[] = { drawDateTime, drawCurrentWeather, drawForecast};
 +int numberOfFrames = sizeof(frames)/sizeof(frames[0]);

- 265行あたり
 -  drawProgress(display, 80, "Updating thingspeak...");
 -  thingspeak.getLastChannelItem(THINGSPEAK_CHANNEL_ID, THINGSPEAK_API_READ_KEY)

*** コンパイルしプログラムを書き込む [#hf2ba932]

- ArduinoIDEの「マイコンボードに書き込む」ボタンをクリックし、プログラムを書き込んでください。

** WiFi ManagerでWiFiの設定を入力 [#y795870d]

- このプログラムは WiFi Managerを使用しており、無線LANのssidとパスワードをROMの専用領域に保存し使用するようになっています。
- これらの情報が未設定あるいは接続できない場合、プログラムはWiFiアクセスポイントとして動作し、スマホ、ノートパソコン等で接続、ブラウザでssidとパスワードを入力します。

- 参考:
-- [[ESP8266 Wi-Fi SSID、パスワードのオンライン設定 - IoTラボ:http://takehikoshimojima.tumblr.com/post/138820924644/esp8266-wi-fi-ssid%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AE%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E8%A8%AD%E5%AE%9A]]
-- [[ESP8266 がアクセスポイントとなってSSID・パスワードの初期設定をする - Qiita:http://qiita.com/hotchpotch/items/eec0260b8b1938dda696]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS