土曜日, 10月 15, 2016

Arduino: 温度・湿度データロガー

ロボットを作るっていうのはエンジニアとしてはかなり究極な夢だと思います。

人間の能力を超えていてもいいんですが、発想というのはどうしても考える人間を基準としてしまうんですよね。

人らしさを備えたロボットっていうのは理想っぽいんではないかと思います。

あまり人間らしいと気味悪がられるわけですが、ちゃんとした研究があって、適度な人らしさというのがいいんだそうです。

でもここはロボットを作る(日本の)技術は人助けだといいたいですよね。

最新科学技術の粋であるところのロボットで人間らしさを取り戻す。

ここのところ米メディアで騒がれているロボットアームの技術というのがあります。

 まひした手にロボットアームで触覚を取り戻す! 米国防総省の研究機関が実験に成功

精巧なロボットアームと脳をつなぎ、失った腕の感覚を取り戻すという画期的な技術なわけですが、いいですね。

こういう研究があって、しかも政府とメディアが取り上げてくれる。エンジニアとしてはありがたい存在だと思います。



夢を大きく持ったところで、しまってあった Arduino を取り出して、温度・湿度データロガーを作ってみました。

... ちょっと格差が大きいですね。でもちゃんと出来たのでアップします。

/*
DHT11 temperature datalogger
[SD Card Module]
MOSI - pin 11
MISO - pin 12
SCL -- pin 13
CS --- pin 4
3.3 V
GND
[DHT11]
Data -- pin 5
Vcc
GND
*/
#include <SPI.h>
#include <SD.h>
#include <DHT.h>
#define CHIPSELECT 4
#define DHTPIN 5
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
unsigned long prev;
unsigned long start;
void setup() {
start = millis();
prev = start;
if (!SD.begin(CHIPSELECT)) {
return;
}
dht.begin();
}
void loop() {
unsigned long now = millis();
if (1000L * 30 < now - prev)
{
prev = now;
String dataString = "";
float h = dht.readHumidity();
dataString += String(h) + " %";
dataString += ", ";
float t = dht.readTemperature();
dataString += String(t) + " C";
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(dataString);
dataFile.close();
}
}
}
view raw DHT11Logger.ino hosted with ❤ by GitHub

Qt: 外部プログラムを起動する

  Qt/C++ のアプリは、外部へ直接アクセスできます。これはネットアプリでは不可能な Qt のメリットです。 外部プログラムを起動することもできます。QProcess::startDetached() を使うと独立したプロセスを立ち上げることができます。 この QProces...