head

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円)は使えると見ています。
===================



0 件のコメント:

コメントを投稿

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

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

AD-parts

Shop
Bluetooth搭載
ベース基板

Social