【CyberPi・mBlock】CyberPiでオープンデータの取り込み・処理とGoogleスプレッドシート・GAS連携

GAS&教育用マイコンCyberPiでオープンデータの取り込み&処理!CyberPi・mBlock

個人的に micro:bit より高校教育に適していると感じている教育用マイコン、makecode社 の CyberPi(サイバーパイ)と mBlock(エムブロック) を用いて気象のオープンデータの取り込みとそのデータを用いたグラフの表示を行いましたGoogleスプレッドシート・GAS(Google Apps Script)と連携して実現しています!これぞ IoT!?

mBlock は、Scratch(スクラッチ) と同じ操作感で、IoTに強みのあるソフトウェア です。

プログラミングIoT初学者でもわかる入門(使い方)動画でもあります。

本動画で作成したプログラムのソースコードは mBlock の コニュニティサイト で公開していますのでそちらもぜひご覧いただき、必要に応じて流用していただければと存じます。
ソースコード: mBlockのコミュニティサイト http://planet.mblock.cc/project/888485

Googleスプレッドシート はこちらからコピーしたり参照したりしてください。
3時間毎の天気取得

GASのソースコードは下記となります(毎朝5〜6時に実行する想定)。

function weather() {
  const SHEET = SpreadsheetApp.getActiveSheet(); 
  const N = 8;

  /* OpenWeatherMapから天気情報取得 */
  var response = UrlFetchApp.fetch("api.openweathermap.org/data/2.5/forecast?id=「気温を取得したい地域のコード」&appid=「OpenWeatherMap の API KEY」&lang=ja&units=metric");
  var json=JSON.parse(response.getContentText());
  var date = new Array(N);
  var hour = new Array(N);
  var t_date;
  var i;

  for(var i = 0; i < N; i++){
    t_date = new Date(json.list[i].dt_txt);
    t_date.setHours(t_date.getHours() + 9);
    t_date = Utilities.formatDate(t_date, "JST", "yyyy-MM-dd HH:mm");
    date[i] = t_date.substr(0,10);
    hour[i] = t_date.substr(11,12);
  }
    
  for(var i = 0; i < N; i++){
    SHEET.getRange(i+2, 1).setValue(date[i]);
    SHEET.getRange(i+2, 2).setValue(hour[i]);
    SHEET.getRange(i+2, 3).setValue(json.list[i]["main"]["temp"]);
  }
}

地域コードは下記から調べることができます。
GeoNames

 

CyberPiでオープンデータの取り込み・処理とGoogleスプレッドシート・GAS連携

本動画の内容は後日、本記事にて追記予定です。今しばらくお待ち下さい。追記はTwitterで告知します。

  

コメント

タイトルとURLをコピーしました