Relative Content

Monthly Archives: June 2018

Arduino UNO (8) mini-Oscilloscope

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 != […]

WeMos (b7) PIR (Passive infrared sensor)

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 […]

WeMos (11) I2C OLED SH1106 (U8g2)

今まで使った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); // […]

WeMos (10) Adafruit NeoPixel LED Matrix

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)に変更する。  

Wemos (d6) Weather Bureau 2

これまで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 を参考してください。