マイコンボードArduinoとPythonを使って室温をTwitterへPOST

こんばんは、ころすけ(@wg_koro)です。

ハッカソン

今日、マイコンボードArduinoを使ったセミナーに参加してきました。ボードArduinoから室温を取得し、Twitterなどへデータを投げるプログラムを作って動かします。

Arduino+Pythonハッキング(第二回) – connpass

基板とブレッドボードとサーミスタを繋ぎ、室温を取得。取得したデータをPythonを使って色々処理。

ということをやりました。意外と簡単に温度取れるのね。
基板

[c title=”cファイル”]
#include "string.h"

// the setup routine runs once when you press reset:
void setup() {
Serial.begin(115200);
}

#define _Read_MAX_CHAR_ 50
// the loop routine runs over and over again forever:
void loop() {
int tmp = 0;
int strlen;
int AD;
//strlen = Arduino_py_Command(Cbuf);

double sensorVal;
double temp = 0;
double offset = 0.40; //オフセット(V)
double tc = 19.53; //温度係数(mV)
temp = 0;
for(int i=0;i<1000;i++)
{
AD = analogRead(0);
temp += (( 4.8 / 1024 * AD ) – offset ) / ( tc / 1000 );
}
Serial.println(temp/1000);

delay(500);

}
[/c]

上記はコンパイルしてArduinoにつっこみます。

んでもってpython側の処理はこっち。取得した室温をTwitterに投げるプログラム。

[python]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import serial
import sys,os
import twitter
import datetime

tmp_msg = "/dev/tty.usbmodem1411"
ser = serial.Serial(tmp_msg)
ser.baudrate = 115200
ser.timeout = 1
print ser.portstr
time.sleep(1.5)

api = twitter.Api(
consumer_key=’xxxxxxx’,
consumer_secret=’xxxxxxxxxx’,
access_token_key=’xxxxxxxxxx’,
access_token_secret=’xxxxxxxxxxxx’
)

temp = ser.readline().replace(‘\n’, ”).replace(‘ ‘, ”)
now = datetime.datetime.now().strftime(‘%H:%M:%S’)
str = u"現在超眠い! (室温%s度) %s" % (temp, now)
#status = api.PostUpdate(str)
[/python]

pythonファイルを実行すると、Twitterへ室温をPOSTします。
TwitterへPOST完了

これをちょっと変えれば「特定の温度になった時に○○する」といったことも簡単にできますね!

よし、ブレッドボードの使い方も分かったので、勉強進めてみます(・∀・)!

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください