Relative Content

WeMos D1 Mini (c) web

WeMos (c10) Web Clock 2

NeoPixelを利用した、Web時計を作った。 24個のLEDを工夫して、時、分、秒を表示。 時(赤) 分(緑) 秒(白) また緑の交差LEDは、方位を示し。 ソースコードは、https://github.com/ubiclub/Esp8266_NeoPixel_clock

Wemos (c9) Sinric Switch and Alexa

WEMOS で構成するAlexaで簡単に使えるスイッチを探して、次のページが見つかった。 https://github.com/kakopappa/arduino-esp8266-alexa-wemo-switch WEMOという製品の真似をするだが、Sinricというフリーのサーバは利用できる。 Alexaから、スイッチとして認識でき、On/Offできた。  

Wemos (c8) Weather Station

IoT-Cloud-Mobile Kitに、Weather Station機能を導入する。 オリジナルのコード ThingPulse Weather Station は、温度センサーは  DHT11 を利用する、IoT-Cloud-Mobile KitはBMP280内蔵のため、修正後のコードは TokyoEC Weather Station を参照する。 I2CのOLED端子配列 I2CのOLED端子配列2種類があり: VCC,GND,SCL,SDA (Wemos, BMP180, BMP280バス直結可能) GND,VCC,SCL,SDA (NodeMcu直結可能) 1番目は、Wemos直結に適するので、試してみる。 接線 (Wiring) Wemos –> OLED Wemos 5V —> OLED Vcc Wemos GND –> OLED GND Wemos D4 —-> OLED SCL Wemos D3 —-> OLED SDA また下記のセッティングは、自分の環境に合わせて設定。 * Begin Settings const char* WIFI_SSID = “xxxx”; […]

WeMos (c7) Web Clock

TM1637 7段4桁LED表示はできたけど、もっと何かWeb関係のものができないかと考えていて、時刻の表示くらいできると思って、やってみた。 WeMos (5) TM1637 7段4桁LED表示 WiFiManagerを利用してWiFiに接続。 結線ができるだけ省けると考えて、GPIOのPinから給電を試してみた。 プログラムはこれ、D4の隣はGNDだから、D4をVCCとして利用する様にプログラミングする。 #include <TM1637Display.h> #include <time.h> #include “WiFiManager.h” const int CLK = D2; //Set the CLK pin connection to the display const int DIO = D3; //Set the DIO pin connection to the display const int VCC = D4; //Set the VCC pin connection to the display int […]

WeMos (c6) Thingspeak

数回JSON関連の実験をしたが、いざTinyWebDBのAPIの実験を始まると、また引っかかるところが多い。 色々と検索してところ、ThingspeakのAPIサンプルが見つかったので、ちょっと曲がり道して試すことに。 センサーの温度と気圧をThingspeakにアップして、動きを見て見る。 まずThingspeakのアカウントを申請して、THINGSPEAK_API_KEYを取得する。 https://thingspeak.com/users/sign_up 次はサンプルを見ながら、プログラミング。 #include <Adafruit_BMP280.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 0 // GPIO0 Adafruit_SSD1306 OLED(OLED_RESET); #define BMP_SCK 13 #define BMP_MISO 12 #define BMP_MOSI 11 #define BMP_CS 10 Adafruit_BMP280 bmp; // I2C //Adafruit_BMP280 bmp(BMP_CS); // hardware SPI //Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK); #include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> /*************************** * Begin Settings **************************/ const […]

WeMos (c5) JSON exchange rate

WeMosをRESPのクライアントとして機能するため、JSONと、HTTPClientを検証する。 前回ArduinoJsonというライブラリを使用したので、ESP8266ならではのWiFi機能を使い、インターネットから情報を取得して表示させてみる。 JSON データ形式 為替レートの情報は、 Foreign exchange rates and currency conversion JSON API から取得する。 ドル円レートの情報を取得する場合、URLはhttp://api.fixer.io/latest?base=USD&symbols=JPY 応答は下記の通り HTTP/1.1 200 OK Server: nginx/1.13.6 Date: Sat, 04 Nov 2017 13:40:46 GMT Content-Type: application/json Content-Length: 57 Connection: close Cache-Control: public, must-revalidate, max-age=900 Last-Modified: Fri, 03 Nov 2017 00:00:00 GMT Vary: Origin X-Content-Type-Options: nosniff {“base”:”USD”,”date”:”2017-11-03″,”rates”:{“JPY”:113.94}} closing connection プログラム 下記の処理をする  WiFiManagerでWiFi自動接続 […]

WeMos (c4) JSON

WeMosをRESPのクライアントとして機能するため、JSONと、HTTPClientを検証する。 ライブラリの追加 JSONを扱うライブラリに「ArduinoJSON」というのがあるので、ライブラリの追加で、リストが出てくるので、JSONと入力し絞込。 (2018/7現在、5.x と6.x が共存して、6.xはまたベター版のため、エラーが発生する。5.xを利用する) ArduinoJSONの動作、JsonBuffer size、Parsing program、Serializing programは、下記のURLで確認しながら進める方が便利でしょう。 https://bblanchon.github.io/ArduinoJson/assistant/ 動作確認 公式のサンプルJsonParserExampleをそのまんま。 // Copyright Benoit Blanchon 2014-2017 // MIT License // // Arduino JSON library // https://bblanchon.github.io/ArduinoJson/ // If you like this project, please add a star! #include <ArduinoJson.h> void setup() { Serial.begin(9600); while (!Serial) { // wait serial port initialization } // Memory […]

WeMos (c3) Home IoT Server

いよいよWiFiManagerを組み込み、理想のIoT-Cloud-Mobile Study Kit (IoT実験キット)の形ができた。 今回の実験はWeMosにhttpサーバを立ち上げて、ブラウザーから接続 を待機;接続するとBMP280センサー情報を返送する。 つまり、スマートフォンまたはPCから直接接続して利用する。この場合ローカル環境の利用に限られ、出かける時でも利用するため、クラウド(例えばTinyWebDB API)が必要だ。 WiFiManagerを組み込みだ、Home IoT Server。 /* * */ #include <Wire.h> #include <Adafruit_BMP280.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 0 // GPIO0 Adafruit_SSD1306 OLED(OLED_RESET); #define BMP_SCK 13 #define BMP_MISO 12 #define BMP_MOSI 11 #define BMP_CS 10 Adafruit_BMP280 bmp; // I2C //Adafruit_BMP280 bmp(BMP_CS); // hardware SPI //Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK); […]

WeMos (c2) WiFiManager

WeMos のWiFiが、前回のようにSSIDとPASSWORDをコードに書き込む方法の他に、オンライン変更できるような方法もある。 WiFiManager というライブラリを使うと簡単にできる https://github.com/tzapu/WiFiManager このソースを参考に試してみる。 まず、ライブラリマネージャーから、WiFiManagerを検索して、インストールする。 ライブラリを使える状態にすると,下記のサンプルで、接続するだけで上のユースケースが満たされて大変便利だ…。標準でWebUIもついてる。 #include <ESP8266WiFi.h> //https://github.com/esp8266/Arduino //needed for library #include <DNSServer.h> #include <ESP8266WebServer.h> #include “WiFiManager.h” //https://github.com/tzapu/WiFiManager void configModeCallback (WiFiManager *myWiFiManager) { Serial.println(“Entered config mode”); Serial.println(WiFi.softAPIP()); //if you used auto generated SSID, print it Serial.println(myWiFiManager->getConfigPortalSSID()); } void setup() { // put your setup code here, to run once: Serial.begin(115200); //WiFiManager //Local intialization. […]

WeMos (c1) Web on WiFi

いよいよ内蔵WiFiを活用する時期が来た! 前回のセンサー情報をWebからでも見れるようにする。 処理の流れ setup() { WiFi初期化 Web初期化 センサー初期化 } loop() { If (Webからリクエスト) .1 パラメタよりLED点/滅 .2 センサー情報取得 .3 クライアントに返信 Else .1 センサー情報取得 .2 LCDに情報表示 } setup() WiFi 初期化:内蔵WiFiをアクセスポイントに接続 Web初期化:内蔵Webサーバを立ち上げる センサー初期化:BMP280を初期化 loop() Webからのリクエストをチェックする システム構成 完成したプログラム /* * */ #include <Wire.h> #include <Adafruit_BMP280.h> #include <LiquidCrystal_I2C.h> //For SPI connection! #define BMP_SCK D5 #define BMP_MISO D6 #define BMP_MOSI D7 […]