3連ベースで、ESP8266, LED Matrix, SHT30を装着する。 Features 8×8 dot matrix LED 8 step adjustable intensity Pins D1 mini GPIO Shield D5 14 CLK D7 13 DIN ライブラリから、WEMOS_Matrix_Adafruit_GFXを追加してください。 つぎは、ライブラリ付属のLED Matrix表示サンプルの修正版。 # コンパイルエラー発生した。 MLED matrix(7); から MLED matrix(7, D7, D5); に変更した。 #include <Adafruit_GFX.h> #include <WEMOS_Matrix_GFX.h> MLED matrix(7, D7, D5); //set intensity=7 (maximum) void setup() { Serial.begin(9600); Serial.println(“8×8 LED […]
目的 3連ベースで、ESP8266, LED Matrix, SHT30を装着。温度と湿度を計測。 モジュールの組み立て スケッチ WEMOS_SHT3x_Arduino_Libraryを使用。 https://github.com/wemos/WEMOS_SHT3x_Arduino_Library ただの温度と湿度の表示サンプル。 #include <WEMOS_SHT3X.h> SHT3X sht30(0x45); void setup() { Serial.begin(115200); } void loop() { if(sht30.get()==0){ Serial.print(“Temperature in Celsius : “); Serial.println(sht30.cTemp); Serial.print(“Temperature in Fahrenheit : “); Serial.println(sht30.fTemp); Serial.print(“Relative Humidity : “); Serial.println(sht30.humidity); Serial.println(); } else { Serial.println(“Error!”); } delay(1000); } 参考 http://stigern.net/blog/using-wemos-d1-mini-sht30-sensor-shield/
ESP8266 IoT Study Kit 2は、ESP8266 IoT Study Kitと同じ、センサー、表示機能が備えている。 モジュール式って、結線は必要ない。携帯不便の問題を解消した。また結線がないことで、ハードウェア苦手の人でも、IoTはソフトウェアの課題に限定出来る。 ESP8266 IoT Study Kit 2には、次の部品から構成: ESP8266 モジュール(WeMos D1 Mini) SHT30 モジュール(温度、湿度センサー) MatrixLED モジュール 三連装ベース Mini OLED モジュール (Option) 三連装ベースの上に、各モジュールを装着する。 MatrixLED モジュール装着した様子。 Mini OLED モジュール (Option)装着した様子。
以前作ったNikia 5110表示装置は、基板にハンダ付けした。
About D1 Mini WeMos D1 Mini はESP8266モジュールを利用した、Arduino IDE利用可能な開発ボード。 WeMosには「D1 Mini」と「D1 R2」の2種類がある。使い方が同じ。 このシリーズは、コマンドラインで開発するPlatformIO環境を利用する。(GUIの開発環境Arduino IDEで開発する場合、WeMos (1) Blink を参照する。) Macbook Air で実験する。 PlatformIOのインストール 組み込み系のクロスコンパイル環境です。Arduino(Atmel AVR)や、mbed(ST STM32)など、350種類以上のマイコンに対応しています。デバッガも100種類以上のマイコンに対応しています(デバッグ機能は有料っぽい)。 Python2で動いているので、Mac、Linuxからでも動かせます。 詳しくはPlatformIOの公式サイトを見てください。 Macbook Air で実験するので、Homebrew でインストール。 $ brew install platformio Homebrew を使わないばあいは pip を使ってインストールできるようです。 boards コマンドで利用できるボードを確認できます。 $ platform boards 沢山表示されるので、コマンドのうしろにフィルタをつけて内容を絞るる。 $ platformio boards esp8266 Platform: espressif8266 —————————————————————————————————————————- ID MCU Frequency Flash RAM Name —————————————————————————————————————————- […]
Piezoセンサーを検証中、信号が見えないので、機能の確認に困っている。 OLEDのミニモニターは、何とかできないかよ探したところ、Arduino UNO時代のものがあり、ESP8266の対応品がない。ESP8266に対応して見たが、うまく表示できない。 仕方なく、蔵入りのArduino UNOを出して、まず検証して見る。 コンパイルエラーと、それと関連する表示範囲おかしい問題があった。 下記の分はエラーになり、コメントアウトして対応。 // error(“Height incorrect, please fix Adafruit_SSD1306.h!”); そして表示範囲おかしい問題は、Adafruit_SSD1306.hを直接修正し、ディフォルトの128×32をコメントアウトし、もう一つの128×64のコメントを外すように変更した。 結果はうまくできた。 Arduino mini-oscilloscope /* This is set up to use a 128×64 I2C screen, as available here: http://www.banggood.com/buy/0-96-oled.html For wiring details see http://youtu.be/XHDNXXhg3Hg */ #include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); #if (SSD1306_LCDHEIGHT != […]
PIR (Passive infrared sensor)は、以前RPiで利用したが、WeMosにも試す。 動きがあったら、とりあえずLED 点灯する。 #define ESP8266_LED BUILTIN_LED int pirPin = D7; int val; void setup() { Serial.begin(9600); pinMode(ESP8266_LED, OUTPUT); digitalWrite(ESP8266_LED, HIGH); } void loop() { val = digitalRead(pirPin); Serial.print(val); //low = no motion, high = motion if (val == LOW) { digitalWrite(ESP8266_LED, HIGH); Serial.println(” No motion”); } else { digitalWrite(ESP8266_LED, LOW); Serial.println(” Motion […]
今まで使ったOLEDは0.96インチの製品。ちょっと大きめ1.3インチのOLEDを評価するため、一個購入して見る。WeMosがターゲット、直結できると考えて、適したピン配列を注文、その通りのぐつが届いた。 そのまま差し替えて動くと思ったけど、表示が乱れ、調べってみったら、1.3インチの製品は、SH1106というチップ使い、対応するドライバーは必要。 ArduinoのLibから検索すると、3点がヒット、簡単そうな一個が動かない、動いたのは複雑そうなU8g2でした。 このU8g2ライブラリは、SCLとSDAの差し替えてできないみたい、結局直結できなく、ジャンパーで繋ぐ 初期化コマンドで、SCL、SDA対応するGPIO変更可能。また対応するSSDは多数なので、根気よく対応する定義を見つけ、今回の件はSH1106のI2Cを使用してコンパイル。 一応表示ができた。 /* HelloWorld.ino Universal 8bit Graphics Library (https://github.com/olikraus/u8g2/) Copyright (c) 2016, olikraus@gmail.com All rights reserved. */ #include <Arduino.h> #include <U8g2lib.h> #ifdef U8X8_HAVE_HW_SPI #include <SPI.h> #endif #ifdef U8X8_HAVE_HW_I2C #include <Wire.h> #endif U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); void setup(void) { u8g2.begin(); } void loop(void) { u8g2.clearBuffer(); // clear the internal memory u8g2.setFont(u8g2_font_ncenB08_tr); // […]
Adafruit NeoPixel LED Matrix の互換品が手に入れたので、試します。 二種類のLED Arrayがあり。 8連装LED Array 8x8LED Matrix ライブラリから、Adafruit NeoPixel を追加してください。 Adafruit NeoPixelのスケッチの例から、Sample、Sampletestを実行してください。 スケッチの例には、実際に繋がったGPIOの番号を設定してください。ここではD6に変更する。 Sampleは、単純に指定した数のLEDを点灯する。ここでは数を8(または64)に変更する。 Sampletestは、いろんなパターンで指定した数のLEDを点灯する。ここでは数を8(または64)に変更する。
これまでWeather Station2回を制作、今回に合わせて三回の要点をリストする 一回目の Weather Stationはおもに気象情報の表示 二回のWeather Bureauは、気象情報の収集とクラウンに送信 今回はDeep sleep機能を利用して、節電する工夫 Deep sleepは、RST と GPIO16繋いたモード、Deep sleepに入ると消費電流は0.4〜0.8mA程度に下がる。 100均で購入した、ちゃんとしたケースに入れて、2個目のスイッチを追加した。 Switch 1: 電源スイッチ これは主に使わないとき、バッテリ充電不足のときにOff Switch 2: Deep sleepスイッチ プログラムを書き込みするとき、Deep sleepスイッチOffしないと、書き込めない場合がある 試作品は太陽光で充電している様子。充電ボードのLEDが見える。 ソースコードは TinyWebDB-WeatherStation を参考してください。