深夜の寝室内の二酸化炭素量 [arduino]
この二日間、我が家の寝室に二酸化炭素センサ+Arduino+3Gシールドを設置して、その変化を観測しています。
建物は鉄筋コンクリートで約5畳ほどの空間、天井がやや高い3m近く。大人2人が寝てドアを閉め切ったままでいると、二酸化炭素濃度は3000PPM近くまで上昇してました。
この二酸化炭素量が人間におよぼす健康状態をネットで調べてみると、3000〜5000PPMではまずい状態と読み取れました。
先ずは換気が必ず必要な状況でしょうか。
鉄筋コンクリートですから密閉性があり、ドアや窓を閉め切ったままだと、3000PPMを超えることはありえる事だと思いました。
場合によって、もっと狭い居室でずっと過ごしていると平気で3000PPMを超え、危ない状態になるのではと思いました。
これまでこのような状態の測定をした事での報告は聞いていませんでしたが、二酸化炭素センサが手軽に使えるようになると、何か見えてくるものと感じています。
今朝、目が覚めたら、直ぐに息苦しさに気づいたので、引き戸のドアを少し開けっぱなしにしました。
みなさんの所では、どうでしょうか。
タブレイン
P.S.今後も少し観測を続けてみたいと思っています。
建物は鉄筋コンクリートで約5畳ほどの空間、天井がやや高い3m近く。大人2人が寝てドアを閉め切ったままでいると、二酸化炭素濃度は3000PPM近くまで上昇してました。
この二酸化炭素量が人間におよぼす健康状態をネットで調べてみると、3000〜5000PPMではまずい状態と読み取れました。
先ずは換気が必ず必要な状況でしょうか。
鉄筋コンクリートですから密閉性があり、ドアや窓を閉め切ったままだと、3000PPMを超えることはありえる事だと思いました。
場合によって、もっと狭い居室でずっと過ごしていると平気で3000PPMを超え、危ない状態になるのではと思いました。
これまでこのような状態の測定をした事での報告は聞いていませんでしたが、二酸化炭素センサが手軽に使えるようになると、何か見えてくるものと感じています。
今朝、目が覚めたら、直ぐに息苦しさに気づいたので、引き戸のドアを少し開けっぱなしにしました。
みなさんの所では、どうでしょうか。
タブレイン
P.S.今後も少し観測を続けてみたいと思っています。
Arduino上のString クラス関数を使う便利さと心配ごと [arduino]
Arduino上にStringクラス関数があることを知らない人は多いと思います。また良く知る人たちは、メモリリークのことを心配して使いたがらない人も多いと思います。
弊社では、3GIMのサンプルプログラムを作成したなかでは、ほとんど文字配列ではなく、Stringクラス関数を利用するようになりました。まわりからは、メモリリークが起きやすい、つまりメモリがどんどん増えて行ってプログラムが中断するなどと注意するようにと助言されました。
しかし現時点、多くのサンプルスケッチを作成しては、数か月も動かしているなかでは、特にメモリリークで困ったことはありません。
こんななかで、以下のサイトを発見しました。ただし、このサイトは、2009年に書かれたもので、メモリリークでの問題点を指摘し、改善策を上げたものです。
http://todotani.cocolog-nifty.com/…/2009/06/arduino-texitst…
最新のArduino IDEで、この中のプログラムを起動させましたが、メモリが増えていることはありませんでした。
新たなIDEでは、改善されているようです。
もし、良かったら、文字処理で苦労されている方々には、このStringクラス関数をご利用されたら如何でしょうか?
■文字列宣言
String str;
String str="3GIM & 3Gshield";
■文字列検索
String str="abcdefg";
str.indexOf("bc"); 1
※ 検索できた場合は、0以上の数値
検索できなかった場合は、-1
■文字列置換
String str="ab cd ef gh";
※ 空白文字を"-"に全て置換
str.replace("","-"); str="ab-ce-ef-gh";
■文字列連結
String str="abcd";
str.concat("efgh"); str="abcdefgh";
または
str=str+"efth";
■文字列を文字配列に変換
char buf[100];
String str="abcdef";
int len=str.length(); // 文字列長さ
str.toCharArray(buf,len);
■文字列切だし
String str="abcdefgh";
str.substring(3); 戻り値:”defgh";
str.substring(3,6); 戻り値:” def";
■文字列(先頭と末尾のスペース抜き)
String str=" abc def gh ";
str.trim(); str="abc def gh";
■文字列を数値化
String str=“12.345”;
float f= str.toFloat(); f=12.345;
int i=str.toInt(); i=12;
■数値を文字列化
float f = 12.345;
String str = String(f); str=“12.34";
■ UART通信処理の常套アルゴリズム
ここで、iemSerial は、 通信のUARTシリアル通信ポート
▼応答(レスポンス)待機状態
while(!iemSerial.available() && (millis() –tim)
弊社では、3GIMのサンプルプログラムを作成したなかでは、ほとんど文字配列ではなく、Stringクラス関数を利用するようになりました。まわりからは、メモリリークが起きやすい、つまりメモリがどんどん増えて行ってプログラムが中断するなどと注意するようにと助言されました。
しかし現時点、多くのサンプルスケッチを作成しては、数か月も動かしているなかでは、特にメモリリークで困ったことはありません。
こんななかで、以下のサイトを発見しました。ただし、このサイトは、2009年に書かれたもので、メモリリークでの問題点を指摘し、改善策を上げたものです。
http://todotani.cocolog-nifty.com/…/2009/06/arduino-texitst…
最新のArduino IDEで、この中のプログラムを起動させましたが、メモリが増えていることはありませんでした。
新たなIDEでは、改善されているようです。
もし、良かったら、文字処理で苦労されている方々には、このStringクラス関数をご利用されたら如何でしょうか?
■文字列宣言
String str;
String str="3GIM & 3Gshield";
■文字列検索
String str="abcdefg";
str.indexOf("bc"); 1
※ 検索できた場合は、0以上の数値
検索できなかった場合は、-1
■文字列置換
String str="ab cd ef gh";
※ 空白文字を"-"に全て置換
str.replace("","-"); str="ab-ce-ef-gh";
■文字列連結
String str="abcd";
str.concat("efgh"); str="abcdefgh";
または
str=str+"efth";
■文字列を文字配列に変換
char buf[100];
String str="abcdef";
int len=str.length(); // 文字列長さ
str.toCharArray(buf,len);
■文字列切だし
String str="abcdefgh";
str.substring(3); 戻り値:”defgh";
str.substring(3,6); 戻り値:” def";
■文字列(先頭と末尾のスペース抜き)
String str=" abc def gh ";
str.trim(); str="abc def gh";
■文字列を数値化
String str=“12.345”;
float f= str.toFloat(); f=12.345;
int i=str.toInt(); i=12;
■数値を文字列化
float f = 12.345;
String str = String(f); str=“12.34";
■ UART通信処理の常套アルゴリズム
ここで、iemSerial は、 通信のUARTシリアル通信ポート
▼応答(レスポンス)待機状態
while(!iemSerial.available() && (millis() –tim)
Arduino UNO R3 でCO2センサを3セット接続測定 [arduino]
これまでソフトウェアシリアル通信は、1組しか利用したことはありませんでしたが、今回3組を利用し、CO2センサ3セットを使って5秒間隔でシリアルモニタ画面にセンサ値を表示させるスケッチを作成してみました。
複数のソフトウェアシリアルは、Arduino UNO R3の場合、どこのデジタルI/O(D0~D19)でも設定できると記載してあったのですが、同時に使えることはなく、切り替えて使うことが判明しました。
つまり、切り替えしないと使えないようです。
よって、その切替したスケッチをメモとして残しておきます。
===========================
#include
SoftwareSerial CO21(4,5), CO22(6,7), CO23(8,9);
void setup() {
Serial.begin(38400);
}
void loop() {
Serial.print("--CO21 > " + String(sub_co2(CO21)) + " ppm");
Serial.print(", CO22 > " + String(sub_co2(CO22)) + " ppm");
Serial.println(", CO23 > " + String(sub_co2(CO23)) + " ppm");
}
int sub_co2(SoftwareSerial CO2){
int val=0;
uint32_t tim=millis();
String str;
CO2.begin(38400);
while(!CO2.available() && (millis()-tim)<3000);
str=CO2.readStringUntil('\n');
if(str.indexOf("ppm")) { //文字列検索
str=str.substring(0,str.length()-4); //文字列からの ' PPM'削除
str.trim(); // 空白文字削除
val = str.toInt(); // 文字数字の整数化
}
while(millis() -tim<5000);
return val;
}
===========================
結果は、添付写真のとおりに出てきました。
複数のソフトウェアシリアルは、Arduino UNO R3の場合、どこのデジタルI/O(D0~D19)でも設定できると記載してあったのですが、同時に使えることはなく、切り替えて使うことが判明しました。
つまり、切り替えしないと使えないようです。
よって、その切替したスケッチをメモとして残しておきます。
===========================
#include
Arduino IDE V1.6.0 でのトラブル [arduino]
最新のArduino IDE V1.6.0 が先月からarduino.ccにアップされ、いろいろと紹介されるようになりましたが、いくつかバグが発見されたりしていて、まだ利用は控えた方が賢明と思います。
一つは、文字列処理で、以下のサイトでも紹介されています。
https://github.com/arduino/Arduino/issues/2673
また、私どもの方でもTABシールドを使って、いろいろと利用していたら、文字処理だけでなく、原因不明の変数の設定にも不具合があり、正しくプログラムが起動しないケースもありました。同じプログラムを、以前のV1.0.6で起動させると正しく実行できました。
現時点、このIDE V1.6.0の利用は、控えた方が賢明と思って、ここに掲示しておきます。
ご参考まで
一つは、文字列処理で、以下のサイトでも紹介されています。
https://github.com/arduino/Arduino/issues/2673
また、私どもの方でもTABシールドを使って、いろいろと利用していたら、文字処理だけでなく、原因不明の変数の設定にも不具合があり、正しくプログラムが起動しないケースもありました。同じプログラムを、以前のV1.0.6で起動させると正しく実行できました。
現時点、このIDE V1.6.0の利用は、控えた方が賢明と思って、ここに掲示しておきます。
ご参考まで
arduino互換機Pololuで構築 [arduino]
「みんなのArduino入門」またもやベストセラー1位になりました。 [arduino]
この夏、Arduinoに挑戦してみませんか。
昨日あたりから、またアマゾンのArduino関係で検索するとベストセラー1位になっていました。
http://www.amazon.co.jp/dp/489797948X
誰にでも簡単にArduinoが使えるようにした本で、分かり易くまとめたものです。ただ、いろいろなテクニックも掲載していますので、短時間で高度なことが学べることもまとめて入れています。
特に、デジタル出力ポートを使って、電源とグラウンドに利用する方法は、いろいろな電子部品につかえて便利だと思います。
また、文法などは、良く忘れがちですが、こちらも少し詳細に紹介していますので、辞書代わりに使えるものと思います。
ただ、Arduinoの組込み関数については、すでにインターネットで紹介したサイトがいくつかあるので、そちらを参考にしてください。
先ずは、Arduinoをはじめたい人たちには、アナログとデジタルを入出力として捉え、「システム=入力+処理+出力」の概念をシンプルなところから学んでいけるようにしています。
この本の特長である、①回路図を一切載せず、②配線図はなるべくシンプルにし、③サンプルスケッチも極力短いステップに収めました。
是非とも、Arduinoを使って、新しいモノ作りの世界に興味を持ってみられたら如何でしょうか。
この本の教材キット含めて、既にスイッチサイエンス社様でも取り扱っていますので、簡単に入手できます。
http://www.switch-science.com/catalog/list/…
昨日あたりから、またアマゾンのArduino関係で検索するとベストセラー1位になっていました。
http://www.amazon.co.jp/dp/489797948X
誰にでも簡単にArduinoが使えるようにした本で、分かり易くまとめたものです。ただ、いろいろなテクニックも掲載していますので、短時間で高度なことが学べることもまとめて入れています。
特に、デジタル出力ポートを使って、電源とグラウンドに利用する方法は、いろいろな電子部品につかえて便利だと思います。
また、文法などは、良く忘れがちですが、こちらも少し詳細に紹介していますので、辞書代わりに使えるものと思います。
ただ、Arduinoの組込み関数については、すでにインターネットで紹介したサイトがいくつかあるので、そちらを参考にしてください。
先ずは、Arduinoをはじめたい人たちには、アナログとデジタルを入出力として捉え、「システム=入力+処理+出力」の概念をシンプルなところから学んでいけるようにしています。
この本の特長である、①回路図を一切載せず、②配線図はなるべくシンプルにし、③サンプルスケッチも極力短いステップに収めました。
是非とも、Arduinoを使って、新しいモノ作りの世界に興味を持ってみられたら如何でしょうか。
この本の教材キット含めて、既にスイッチサイエンス社様でも取り扱っていますので、簡単に入手できます。
http://www.switch-science.com/catalog/list/…
「みんなのArduino入門」課題と演習 PDF公開 [arduino]
この度、出版物「みんなのArduino入門」の課題と演習を公開することとしました。
これまで、この本を教科書と使いたいとの先生から、是非とも演習問題を作成してほしいとの要望があったことで、作成してきていました。
今回、出版元のリックテレコム社様のサイトから、公開頂けることになりましたので、以下にダウンロードできるアドレスを掲載いたします。
http://www.ric.co.jp/book/contents/pdfs/948_support2.pdf
今後、解答についても用意できればと思っています。
これまで、この本を教科書と使いたいとの先生から、是非とも演習問題を作成してほしいとの要望があったことで、作成してきていました。
今回、出版元のリックテレコム社様のサイトから、公開頂けることになりましたので、以下にダウンロードできるアドレスを掲載いたします。
http://www.ric.co.jp/book/contents/pdfs/948_support2.pdf
今後、解答についても用意できればと思っています。
出版本「みんなのArduino入門」が手もとに届きました。 [arduino]
「みんなのArduino入門」明日から販売予約 [arduino]
今年はじめに出版するArduinoの本 [arduino]
今年はじめに出版するArduinoの本
「だれもが発明者に」
これまでのArduinoの本は、電子電気の知識がないとなかなか読めない本でした。こちら執筆中の本は、電子電気の知識がなくてもArduino上でセンサなどの電子部品が使えるものとしてまとめています。
私みたいな建築を専門とする人たちでも、機械や情報、それに文系の人たちまでも、簡単に高度なセンサ技術を使って、環境やエコなどに利用できることが分かってもらえるようにまとめています。
これまでにないDIYでのモノづくりの世界を広げるために、オープンソースハードウェアの概念を、もっと幅広く知ってもらうための本としてもまとめています。
だれもが、簡単に、短時間で、高機能なセンサ類を使いこなせるように、工夫しました。
だれもが、高度な技術を簡単にまねして、そこからさらに複雑なモノづくりに挑戦できるように、工夫しました。
知っているか、知らないかの差は、大きな開きがあることもあります。是非ともモノづくりの楽しみとして、DIYでの世界を知って頂き、自分のため、こらからの世の中を背負う子供たちのため、周りの人たちの幸せのため、さらに海外との競争に打ち勝つため、などと考えて、夢を膨らませてみては如何でしょうか。
きっと、使っていなかった自分の頭脳部分に、興奮と感動を与えることができるかもしれません。
「だれもが発明者に」
これまでのArduinoの本は、電子電気の知識がないとなかなか読めない本でした。こちら執筆中の本は、電子電気の知識がなくてもArduino上でセンサなどの電子部品が使えるものとしてまとめています。
私みたいな建築を専門とする人たちでも、機械や情報、それに文系の人たちまでも、簡単に高度なセンサ技術を使って、環境やエコなどに利用できることが分かってもらえるようにまとめています。
これまでにないDIYでのモノづくりの世界を広げるために、オープンソースハードウェアの概念を、もっと幅広く知ってもらうための本としてもまとめています。
だれもが、簡単に、短時間で、高機能なセンサ類を使いこなせるように、工夫しました。
だれもが、高度な技術を簡単にまねして、そこからさらに複雑なモノづくりに挑戦できるように、工夫しました。
知っているか、知らないかの差は、大きな開きがあることもあります。是非ともモノづくりの楽しみとして、DIYでの世界を知って頂き、自分のため、こらからの世の中を背負う子供たちのため、周りの人たちの幸せのため、さらに海外との競争に打ち勝つため、などと考えて、夢を膨らませてみては如何でしょうか。
きっと、使っていなかった自分の頭脳部分に、興奮と感動を与えることができるかもしれません。