head

2016年9月23日金曜日

Deep Sleep 15分スリープ 連続稼動計測編




Deep Sleep稼動 15分間隔、連続稼動時間の計測
の内容となります。
前回の10分スリープと似ていますが、スリープ間隔が異なる
調査となります。

# 途中経過 2016/09/23 更新
連続稼動テスト 15日目 (約 324H) で、
稼動中です。

# 回路、充電池の本数(単三の3本)
前回のDeep Sleep編 10分スリープ 、安価品(100均さま) と同じ です。

=========  Update 2016/09/30 =====
# 途中経過 2016/09/30 更新
連続稼動テスト 22日目 (約 492 H) で、
稼動中です。


=========  Update 2016/10/02 =====
連続稼動テスト 24日目 (約 550 H)
で停止しました。



# 関連のページ
Deep Sleep 設定


# 関連のまとめ
IoT な電子工作まとめ
http://knaka0209.blogspot.jp/2015/11/iot-matome.html




2016年9月21日水曜日

Deep Sleepで、LCD AQM0806+LM60BIZセンサ



前回の Deep Sleep版似た構成となります。

LCD AQM0806の表示機器を、実装し
省電力構成で、
LCD 基板側に、ホストMCU ATmega328を搭載して、
LM60BIZ 温度センサーと組み合わせています。

[ 動作 ]
表示機側: 24時間 稼動
 LCD+ LM60BIZ, をATmega328で制御
 UART経由で、センサ値を esp8266に送信
esp8266側:
 Deep Sleep 復帰、立ち上がりのUART受信処理で
 センサ値を受信、クラウド送信後、
 sleepします。

# 動画


# ドライバ
https://github.com/kuc-arc-f/LCD_AQM0806_LM60BIZ_v1

# 配線
ATmega- TX、esp8266 -RX結線。

LCD側は、前回のLCD 基板と似ています。
http://knaka0209.blogspot.jp/2016/06/LCD-BME280-1.html


# まとめ
小型のLCDは、省電力を期待していますが、
電池稼動テストは、別途計画したいと思います。

# 関連のページ
Deep Sleepで、7セグ+ LM60BIZ センサー、電池駆動
http://knaka0209.blogspot.jp/2016/09/esp-wroom-02-17.html

# 関連のまとめ
IoT な電子工作まとめ
http://knaka0209.blogspot.jp/2015/11/iot-matome.html

2016年9月19日月曜日

Moisture Sensor(Soil Humidity Hygrometer Sensor) お試し編。



アナログ 水分センサー試してみました。

#
esp8266で使えそうな。3V3で動作可能な3本足の水分センサーを
eBayで探して、購入してみました。
国内の通販ですと、500- 1000円程度の部品は、ありそうでしたが
海外品は安価品がありました。輸送は時間がかかりましたが
今回は約14日程で 国内到着でした。

前回のI2C型ADC MCP3425経由で、制御したいと思います。

[仕様]
Supply voltage: 3.3V or 5V
Operating Current: less than 20mA

# 部品
Moisture Sensor
5Pcs Soil Humidity Hygrometer Sensor Module Moisture Detection For Arduino AVR



[価格]
5Pcs total : 2.79 USD
[送料込]
5Pcs total : 4.28 USD
1個当たり= 0.85 USD (約90円弱 )

# 活用編


ベランダ野菜( 二十日大根/ ラディッシュ )の土壌に
差し込んで、水分モニタ化してみました。
水やりの判定、時期をクラウド側画面数値で判定できれば。。
と考えて試してみます。






# 配線
ADC 前回を同じです。
S端子(SIG)は、ADCのVIN(+) に結線




前回と同じ電池駆動のesp8266基板を使い、
ミニブレ(Bread Bord)に、ADC搭載+ センサー配線
センサーまでの、電線は1m 程長めにカットし、
室内IoT機器から、ベランダ配置場所まで配線が伸ばせるように
しておきました。

# ドライバ
センサ信号ラインの入力電圧上限を、約2V( 2048mV )
とした。パーセント表示を出力仕様としています。
Deep Sleepは、900Sec スリープしています。



/*
esp8266-Deep Seep
MCP3425(ADC)+ Moisture Sensor
*/
#include <ESP8266WiFi.h>
#include<Wire.h>
extern "C" {
#include <user_interface.h>
}
// MCP3425 I2C address is 0x68(104)
#define Addr 0x68
const char* ssid = "";
const char* password = "";
const char* host = "api.thingspeak.com";
String mAPI_KEY="your-KEY";
static uint32_t mTimerTmp;
static uint32_t mTimerPost;
float mTemp=0;
float mHum=0;
//
void proc_http(String sTemp ){
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
String url = "/update?key="+ mAPI_KEY + "&field1="+ sTemp;
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
int iSt=0;
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}
}
//
void setup()
{
Wire.begin();
Serial.begin(9600);
Serial.println("#Start-setup");
Serial.print("millis.Start: ");
Serial.println(millis() );
// Start I2C Transmission
Wire.beginTransmission(Addr);
Wire.write(0x10);
Wire.endTransmission();
delay(300);
//WIFI
Serial.println();
Serial.println();
Serial.print("Connecting to ");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("millis.Connected: ");
Serial.println(millis() );
}
//
int get_tempValue(){
int iRet=0;
unsigned int data[2];
Wire.beginTransmission(Addr);
Wire.write(0x00);
Wire.endTransmission();
//
Wire.requestFrom(Addr, 2);
if(Wire.available() == 2)
{
data[0] = Wire.read();
data[1] = Wire.read();
}
// Convert the data to 12-bits
int raw_adc = (data[0] & 0x0F) * 256 + data[1];
//Serial.print( "raw_adc.bf= " );
//Serial.println( raw_adc );
if(raw_adc > 2047)
{
raw_adc -= 4096;
}
Serial.print("Digital Value of Analog Input : ");
Serial.println(raw_adc);
//Sensor
int iMaxVoltage= 2048;
float fMoi =(raw_adc * 100) / iMaxVoltage;
//Serial.print( "fMoi= " );
//Serial.println( fMoi );
// fMoi = fMoi * 100;
int iMoi= (int)fMoi;
Serial.print( "Moisture Value= " );
Serial.println( iMoi );
iRet= iMoi;
return iRet;
}
//
void loop()
{
delay( 100 );
Serial.print("millis.Loop: ");
Serial.println(millis() );
int iTemp =0;
if (millis() > 3000 ){
iTemp =get_tempValue();
delay(1000);
proc_http( String(iTemp) );
Serial.print("millis.SleepStart: ");
Serial.println(millis() );
ESP.deepSleep( 900 * 1000 * 1000);
//ESP.deepSleep( 30 * 1000 * 1000);
}
}
# まとめ
海外通販は、輸送に時間がかかり到着するか不安はありますが。
安価の部品調達できる手段としては、良いですね。

# 関連のページ
I2C ADC MCP3425で、アナログ入力編
http://knaka0209.blogspot.jp/2016/09/esp-wroom-02-16.html

# 関連のまとめ
IoT な電子工作まとめ
http://knaka0209.blogspot.jp/2015/11/iot-matome.html


=== Update 2016/09/24 ====
テスト用の電池、
エネループ 単三の4本準備しました。
連続稼動時間については、別途追記したいと思います。
*) 水分センサーの消費電力が大目の為、4本にしています。



# 連続稼動時間の消費電力測定 15分スリープ (最終)
=== Update 2016/09/29 ====
エネループ 単三の4本
103H (5日目)で停止、予想より伸びませんでした。。
*) 1本当り= 25.75 H



[補足]
安価(100均一)の3本で計測した場合、
64H, 1本当り= 21.33 H でしたので、エネループが稼動時間は長いですが
1本の稼動で比較すると、約2割程の伸びとなりました。
(25.75 / 21.33) * 100 = 120.7 %

*) 今回の電池の価格は、4倍弱 (4個= 1680円 )エネループは高額でしたので
 使い方によりますが、最大充電回数(耐久性)は別として
 コスパ的に、100均(1個= 108円)は使えると見ています。
===================



2016年9月16日金曜日

5V DC/DCコンバータで、esp8266 電源供給




単三の充電池2本(2.4 V)以下で、esp8266を動作させる仕組み検討してみました。
結果として、
秋月さんの
[AE-XCL101C501BR-G /5V出力コイル一体型昇圧DCDCコンバータ]
を組み込むと起動できました。
Deep Sleepと組み合わせて、利用 してみたいと思います。

[構成]
昇圧回路は、単三の3本の電池BOXに、2本電池をいれ
空きスペースに、昇圧回路を配置
電池配線は、修正して2本直列にして、
昇圧圧回路の入力側へ結線しています。
5V出力し、WIFI側のLDO で3V3 に降圧。

# 部品
5V出力コイル一体型昇圧DCDCコンバータ
http://akizukidenshi.com/catalog/g/gM-08619/

# 配線
秋月ページの資料と、ほぼ同じ
ユニバーサル基板を、幅13mm 程度にカットして
配線しましたが、基板が 小さくて時間かかりました。。




# まとめ
2本で駆動できると、電池代も安く。
安価な2本充電器も使えて1回でフル充電可能になり。
使える用途はありそうな改良としてますが、
連続稼動テスト等は、別途準備後、検討したいと思います。
3本、4本より電力が少ないので、稼動時間は大幅に下がると想定しています。


# 関連のまとめ
IoT な電子工作まとめ
http://knaka0209.blogspot.jp/2015/11/iot-matome.html


========== update 2016/09/23 ==========
#連続稼動テスト 電力測定 15分間隔
充電池2本、昇圧前 入力電圧= 約 2.4V

# 2016/09/23 更新
連続稼動テスト 7日目 (約 143H) で、
稼動中です。


========== update 2016/09/29 (最終) ==========
13 日目(約 291 H) で停止



*) 測定中の15分スリープ3本 610H 予想でしたので、2/3の400H
 程度を想定していましたが、100H程 短時間で停止となりました。
伸びない理由として、昇圧処理の電力 ロスを、想定しています。




2016年9月14日水曜日

Deep Sleepで、7セグ+ LM60BIZ センサー、電池駆動




前回の Deep Sleep+ OLEDと似た構成となります。

省電力構成で、充電池 単三の3本駆動。
7セグ基板側に、ホストMCU ATmega328を搭載して、
LM60BIZ 温度センサーと組み合わせています。

[ 動作 ]
表示機側: 常時起動
 7seg+ LM60BIZ, をATmega328で制御
 UART経由で、センサ値を esp8266に送信
esp8266側:
 Deep Sleep 復帰、立ち上がりのUART受信処理で
 センサ値を受信、クラウド送信後、
 sleepします。

*) 電池は、センサ基板と同じニッケル水素 単三充電池×3本(1.2V ×3= 3.6V )

# 動画

# ドライバ
https://github.com/kuc-arc-f/esp8266_UART_sleep_v2


# 関連の部品
7セグの回路等 [ MK-PKBN-025 ]
http://kuc-arc-f.com/make/?p=620


# 関連のまとめ
IoT な電子工作まとめ
http://knaka0209.blogspot.jp/2015/11/iot-matome.html


========== update 2016/09/16 ==========
# 連続稼動時間の消費電力測定
15分スリープ。( 900sec )
電圧測定方法:テスタで、各電池1本ごとに手動測定。

5日目(約 104H )で停止しました。



*) MCU+ 7Seg LEDの消費大となり、安価な電池ですと。
さほど稼動時間は伸びませんでした。



2016年9月8日木曜日

Deep Sleepで OLED(有機EL)+ DHT11 (電池駆動)



Deep Sleep関連の続編となります。

DIY的な内容となりますが。
今回は、少し複雑な構成で表示系デバイスと組合せて
esp8266側は、スリープで省電力化としています。
前回のセンサーシールド風と同様のシールド形 基板で
ソケット(9P)差込型です。

[ 動作 ]
表示機側: 常時起動
 0.96 OLED+ DHT11, をATmega328で制御
 UART経由で、センサ値を esp8266に送信
esp8266側:
 Deep Sleep 復帰、立ち上がりのUART受信処理で
 センサ値を受信、クラウド送信後、
 sleepします。

*) 電池は、センサ基板と同じニッケル水素 単三充電池×3本(1.2V ×3= 3.6V )


# 動画



# 回路と、配置。





# OLED 装着前


# DHT11の 温湿度ログ





# ドライバ
https://github.com/kuc-arc-f/esp8266_UART_sleep_v1

esp8266ビルド:
 ESP8266 Arduino core : 2.2.0
 Arduino IDE: 1.6.5

atmega: 下記ライブラリ等が必要
 OLDE : arduino用(adafruit) Adafruit_SSD1306
 DHT11
 Wire


# おまけ、テスト用の充電池3本
今回も100均(ダイソーさま)で、電池購入してきました。




# まとめ
センサーのみ基板は、別基板で 連続稼動継続中ですが、
こちらの基板も 電力面で 稼動状況を監視したいと思います。


# 関連のまとめ
IoT な電子工作まとめ
http://knaka0209.blogspot.jp/2015/11/iot-matome.html

========== update 2016/09/16 ==========
# 連続稼動時間の消費電力測定
15分スリープ。( 900sec )
電圧測定方法:テスタで、各電池1本ごとに手動測定。

5日目(約 103H ) で停止しました。



*) MCU+ OLEDの消費大となり、安価な電池ですと。さほど稼動時間は伸びませんでした。
1回目の測定は、電力不足の傾向が見られたので。同一電池でフル充電後の
2回目の測定結果を記載しています。



2016年9月2日金曜日

I2C ADC MCP3425で、アナログ入力編



16Bit ADC MCP3425(Microchip Technology 社)を使って、
I2C での esp8266接続で、アナログセンサと組み合わせてみたいと思います。

esp8266の TOUTは
取得できる値は10bitの精度(0-1023)で、測定電圧の範囲は0.0v - 1.0v。
ESP8266の電源電圧3.3vと異なるため。使いにくい面はありそうです。
検索してみると、分圧抵抗や、外部 ADC(IC)を経由して
アナログ制御したりしているようです。今回はI2C接続の
16 Bit ADCを使ってみましたが、コスト的には少し高めの構成になってます。

# 部品 (秋月さんの DIPキット)
MCP3425(16Bit ADC I2C 基準電圧内蔵)搭載モジュール
http://akizukidenshi.com/catalog/g/gK-08018/


# ピン配置 ,6P



#1 : VIN(+) - SIG ( SENSOR )
#2 : VSS - GND
#3 : SCL - SCL(I2C/esp8266)
#4 : SDA - SDA(I2C/esp8266)
#5 : VDD - 3V3
#6 : VIN(-) - GND


# 配線



# ドライバ
ビルド:
ESP8266 Arduino core : 2.2.0
Arduino IDE: 1.6.5

Wireライブラリを使用。
I2Cスレーブアドレス:0x68

1) 公開されていた、電圧測定のサンプル。
https://github.com/ControlEverythingCommunity/MCP3425/blob/master/Arduino/MCP3425.ino

2) 作成した。アナログ温度センサ、LM60BIZ のサンプル

=== Update: 2016/09/03 ====
HTTP送信が安定しない場合がありました。送信間隔の調整行いました。
esp8266_mcp3425_v2.ino
https://gist.github.com/kuc-arc-f/29385870c2e57afe028e1130d94e4c06
============

https://gist.github.com/kuc-arc-f/86fbf669b53e46fd636a1d94189d3b5a


# 温度LOG




# 謝辞と、お礼
今回も多くのブログ記事、ライブラリ等参考にさせて頂きました。
開発者様、ブログ公開者様に、感謝申し上げます。

https://github.com/ControlEverythingCommunity/MCP3425

http://qiita.com/ryokai/items/9b0c56616b4550eb05f1


# 関連のまとめ
IoT な電子工作まとめ
http://knaka0209.blogspot.jp/2015/11/iot-matome.html


google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social