ガイガーカウンタ 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」カテゴリの記事
- ATtiny402 + LM35DZ で温度計(2024.09.21)
- aitendo「ESP-32でいいの」っぽい謎ボードでLチカ(2024.04.17)
- ATtiny202 で Hello World!(2024.03.25)
- CH32V003+I2C接続のLCDでHello World !(2023.12.29)
- CH32V003F4P6 開発ボードでLチカ(2023.12.20)
「高校物理」カテゴリの記事
- 回転式誘導起電機(2025.04.07)
- ウィムズハースト起電機 を作ってみた(2025.04.03)
- 豆電球の明るさで探る「音波の定常波」(2025.02.22)
- 豆電球の明るさで共振周波数を探る(2025.01.05)
コメント