Relative Content

Author Archive for chen

Wemos (d5) Weather Bureau

前回の Weather Stationはおもに気象情報の表示がメイン。 今回のWeather Bureauは、気象情報の収集とクラウンに送信するがメイン。 ソースコードは TinyWebDB-WeatherStation を参考してください。 無人でも長時間自動運用するために、太陽電池で発電、Li-po電池に充電、給電など機能追加された。 問題は、太陽電池の発電は、Weather Bureauの24時間持続運用には足りない。deep sleep機能を利用して、節電する工夫が必要である。 その部分できたらまた共有する。

ESP-WROOM-02 (2) Weather Station

ESP-WROOM-02に、Weather Station機能を組み入れる。 内容は、Wemos (c11) Weather Stationと殆ど同じ、デジタルクロックを追加した。  

Wemos (d4) WiFi sniffing

最近力を入れる所は、WiFi sniffingという技術。 WiFi sniffingとは ーーーーここからは中国語ーーーー 那么什么是snffer呢?sniffer可以翻译为混杂模式,ESP8266可以进入该模式,接收空中的 IEEE802.11 包。SDK主要提供的接口有: 接口 说明 wifi_promiscuous_enable 开启混杂模式 wifi_promiscuous_set_mac 设置 sniffer 模式时的 MAC 地址过滤 wifi_set_promiscuous_rx_cb 注册混杂模式下的接收数据回调函数,每收到一包数据,都会进入注册的回调函数。 wifi_get_channel 获取信道号 wifi_set_channel 设置信道号,用于混杂模式 ーーーーここまでは中国語ーーーー 応用例として、Amazon bottonをIoT bottonに改造する。そのカギは、このWiFi sniffing技術。Amazon bottonから出るWiFi信号をキャッチし、botton押されたとわかった。 IoT-Cloud-Mobile Kitの対応 推進するIoT-Cloud-Mobile Kitもそれに対応すべく、しばらくsniffingとPOSTの共存、メモリの制限などと格闘して、何度も諦めかけて、遂に安定して動作するようになった。   (IoT-Cloud-Mobile Kit)ブレッドボード プロトタイプボードで実装もした。 Wemosが周りのMAC addressとRSSIは取得でき、TinyWebDB-APIでクラウドに蓄積できた。   さらに室内位置情報 蓄積されたMAC addressとRSSIは、出席確認などに活用でき、室内位置情報(Indoor Positioning)のシステムも作りたいね。   参考 https://www.hackster.io/rayburne/esp8266-mini-sniff-f6b93a http://www.whiskeytangohotel.com/2016/12/portesp8266-wifi-sniffer-arduino-ide.html Indoor Positioning ESP32 基于 Wi-Fi sniffer […]

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 (9) I2C OLED SSD1306 (ThingPulse)

WeMos (7) I2C OLED (Adafruit) では、Adafruitのライブラリを利用した実装でした。便利ですが、I2Cの場合、SDA、SCLはD1、D2固定になるらしい。(変更する方法がわからん)(I2Cの場合、デフォルトはSDA、SCLはD1、D2、変更も可能) いろいろと探して、ThingPulseのライブラリは、SDA、SCLは自由に設定してできるので、これを試す。 Sketch -> Include Library -> Manage Libraries 上記順で、ssd1306を検索し、下記のライブラリをインストールしてください。 早速サンプルを実行する。スケッチ例から、Driver for the SSD1306 and SH1106 based 128×64 pixel OLED display を探し、 SSD1306SimpleDemoを動かしてみる。 SDA、SCLはGPIOの接続により、初期化コマンドの引数は変わりる。初期では、// D3 -> SDA、// D5 -> SCLになっている。 // Initialize the OLED display using brzo_i2c // D3 -> SDA // D5 -> SCL // SSD1306Brzo display(0x3c, D3, D5); // […]

NodeMcu (3) Weather Station

この一週間WeMos miniのWiFi関連の開発中も頻繁にリブートしています。あまりにも回数が多いから、いつの間にchromeのたくさんの開いたタブも消えて復帰不能になりました。Macbook, Win10どちらも頻繁に発生。 原因がわからず、仕方なく開発中書き込み直前にUSBケーブル接続、書き込み終わったらすぐUSBケーブ抜く方法で運がよければリブート回避する状態が続て、悩んでいます。 気分転換に、IoT-Cloud-Mobile Kitに、Weather Station機能を組み入れると考えて、これも苦労の連続。 もともとWeather Station Kitは、NodeMcu V2とOLED, DHT11のセットになっている。IoT-Cloud-Mobile Kitは、Wemos MiniとOLED, BMP280のセットになっている。 IoT-Cloud-Mobile Kit Weather Station Kit MPU Wemos Mini NodeMcu V2 OLED 128X64 OLED 128X64 OLED Sensor BMP280  DHT11 最初は、WemosらしいのWeather Station ソースコードを改造して、IoT-Cloud-Mobile Kitで動くを考えたが、理由不明のリブートでやる気を無くされ、もうWeather Station Kitのまま部品を用意して、まず動かしてみることに。 I2CのOLED端子配列2種類があり: VCC,GND,SCL,SDA (Wemos, BMP180, BMP280バス直結可能) GND,VCC,SCL,SDA (NodeMcu直結可能) IoT-Cloud-Mobile Kitでは、BMP280バス直結のため、1番目のOLED端子配列が欲しくて、商品写真見てこれだと、高めのOLED物を購入したが、結局送ってきたのは2番目のOLED物。 今度繋がってみたらわかった、2番目のOLED端子配列なら、嬉しいことに、NodeMcu直結可能。 つまり、1番目のOLED端子配列はWemos向き、2番目のOLED端子配列はNodeMcu向きと言える。 接線 (Wiring) NodeMCU –> OLED NodeMCU […]

ESP-WROOM-02 (1) Start

日本で認定されたESP8266を手元にあると、何にかいいかなと思って注文し、苦労の始まり。 電源なしで、長時間使えるもの、つまり太陽電池+バッテリーで運用を考えて、下記の品物を入手。 Wemos esp-wroom-02 Pocket 8266 D1 mini WIFI Module — ESP8266+18650 Battery *その後の調べては、Flash Sizeは2Mしかない、Deep Sleep状態の消耗電流が大きいため、長時間運用向かないという情報が入り、時間があったら、確認して行きたい。 Wemos Pocketハードウェア 正面の左は充電回路。 背面はバッテリーホルダーになっている。 CP2102ドライバー まずシリアル変換:CP2102のため、ドライバーのインストールが必要。 Silicon Labsの以下のURLから「Windows 7/8/8.1/10用」ドライバをダウンロード USB – UART ブリッジ VCP ドライバ|Silicon Labs ダウンロードしたZIP(CP210x_Windows_Drivers.zip)を展開し、CP210xVCPInstaller_x64.exeを実行し、ドライバインストールを開始する。 Arduino IDE 設定 それから、Wemosみたいな、メニューに専用設定選択肢がないため、Generic ESP8266 Moduleを選び、下記の様に細かく設定を変える。 設定項目 パラメーター マイコンボード Generic ESP8266 Module Flash Mode QIO Flash Frequency 80MHz Upload Using Serial CPU […]

NodeMcu (2) LED Light Strips

クリスマスと新年の気分を出すため、LED Light Stripsを買った。しかし固定のパターンの点滅しかできないから厭きるね。 Raspberry Pi またはArduinoでコントルートできれば、何かいい物作れるではないからと考えた。 Arduinoできるなら安上がりなので、まず試す。LED Light Stripsは12V駆動なので、USB給電のWemosではなく、手元にあるNodeMcu V3 (電源拡張ボード付き)を活用することにした。 LED Light Stripsの電流が大きいので、GPIOの負荷能力を超え、直結できない。 Googleして、OmegaのLED lightstripsに繋ぐ回路があったので、それを真似してArduinoのつくる。 手元に2N3904がないんで、ネットで購入。届くまで時間がかかるので、届いた頃も他の件で時間が取られ、半年以上棚上げ。 クリスマスも目の前だから、ハードウェアの回路を完成した。 プログラムの方は、簡単。 #define LEDR D7 #define LEDG D6 #define LEDB D8 void setup() { pinMode(LEDR, OUTPUT); pinMode(LEDG, OUTPUT); pinMode(LEDB, OUTPUT); } void loop() { digitalWrite(LEDR, HIGH); delay(1000); digitalWrite(LEDG, HIGH); delay(1000); digitalWrite(LEDB, HIGH); delay(1000); digitalWrite(LEDR, LOW); delay(1000); digitalWrite(LEDG, LOW); […]

NodeMcu (1) install & blink

NodeMCUとは NodeMCUは、WeMosと同じコンセプトの開発ボードだ が、メインチップは ESP-12Eが使われている。 NodeMCUの種類 主に「LoLin NodeMCU」 「Amica NodeMCU」などがある。 WeMos、Lolin、Amica比較 WeMosD1 mini, AmicaのNodeMCUは小さいので、ブレッドボード1枚で使うことができ、Lolinは2枚ブレッドボードまたは専用のアダプターが必要。 WeMos D1 mini NodeMCU Lolin Amica MCU ESP-12 ESP-12E ESP-12E ディジタルIO 11ピン 11ピン 12ピン アナログIO 1ピン 1ピン 1ピン 3.3V出力 1ピン 3ピン 3ピン 5V入力(*3) 1ピン 1ピン 1ピン USB出力(*5) 1ピン 1ピン なし GNDピン 1ピン 4ピン 3ピン SPI専用ピン なし あり あり オンボードLED なし なし あり   […]

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