ガイガーカウンタ GC10(4)空間放射線量の自動ツイート
Ethernetシールドを載せたArduinoにガイガーカウンタGC10をつないで,1時間おきに空間放射線量を自動ツイートするようにしてみました。
スケッチの中にMACアドレスを書く箇所があるのですが,例によって中華製の安いEthernetシールドを買ったので,これにはMACアドレスがついてませんでした(^^;)
仕方がないので,もう使わなくなったノートPC用LANカードについてたMACアドレスを流用しました。
あと必要なのはArduinoからTwitterを利用するためのトークンですが,これはこのサイトに発行してもらいました。Twitterライブラリも同じサイトからダウンロードして,Arduino IDEにインストールしておきます。
で,スケッチはこんな感じ。
/*
* GC10+Ethernetシールドで空間放射線量を自動Tweet
*/#include <SPI.h>
#include <Ethernet.h>
#include <Twitter.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //あなたのEthenetシールドのMACアドレスに書き換えること
byte ip[] = { 192, 168, 0, 177 }; //あなたのArduinoのローカルIPアドレス
Twitter twitter("発行してもらったあなたのトークン");void setup(){
delay(1000);
Ethernet.begin(mac, ip);
Serial.begin(9600);
}void loop(){
String cpm = "" ;
String dataString = "";
if (Serial.available()) {
cpm = Serial.readStringUntil('\r');
Serial.flush();
cpm.trim();
delay(1000);
}
if (int(millis()/1000%3600) == 0){ //60分(3600秒)ごとにTweet
dataString += "【自動Tweet】%0DガイガーカウンタGC10+Arduino によるリアルタイム放射線量測定%0D%0D";
dataString += "現在の空間放射線量(岐阜市) : ";
dataString += String(cpm);
dataString += "CPM , ";
dataString += String(cpm.toFloat()/165); //gms=165として,μSvに換算
dataString += "μSv";
char* msg = dataString.c_str();
Serial.println("connecting ...");
if (twitter.post(msg)) {
int status = twitter.wait(&Serial);
if (status == 200) {
Serial.println("OK.");
} else {
Serial.print("failed : code ");
Serial.println(status);
}
} else {
Serial.println("connection failed.");
}
}
}
| 固定リンク | 0
「Arduino」カテゴリの記事
- 大型7セグLEDを4個使った表示装置(2022.01.23)
- Arduinoで作ろう(61) Digisparkで7セグLED温度計(2022.01.16)
- Arduinoで作ろう(60) Digisparkでデジタル時計(2022.01.10)
- Arduinoで作ろう(59) DigisparkのP5を使えるようにした(2022.01.08)
- Arduinoで作ろう(58) DigisparkとLM35で温度計(2022.01.02)
「高校物理」カテゴリの記事
- 蒸気エンジン (首振り式)(2022.07.04)
- ローソクで動くスターリングエンジン(2022.06.10)
- スターリングエンジン(2022.06.07)
- スリンキーを使って縦波の定常波(2021.11.24)
コメント