こんばんは、ころすけ(@wg_koro)です。
今日、マイコンボードArduinoを使ったセミナーに参加してきました。ボードArduinoから室温を取得し、Twitterなどへデータを投げるプログラムを作って動かします。
Arduino+Pythonハッキング(第二回) – connpass |
基板とブレッドボードとサーミスタを繋ぎ、室温を取得。取得したデータをPythonを使って色々処理。
#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に投げるプログラム。
#!/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します。
これをちょっと変えれば「特定の温度になった時に○○する」といったことも簡単にできますね!
よし、ブレッドボードの使い方も分かったので、勉強進めてみます(・∀・)!