Ardiuno編 第17回 センサーの値をChatworkに表示してみよう

体験的マイコン学習(Arduino編)

センサーの値をチャットワークに表示してみよう

準備するもの

使う温度センサーによって変わってきます

  1. 温度センサー(今回はDS18B20を使っています): 1個
  2. ジャンパー線: 3本

ページトップ

必要なものを準備

(1)Node.jsをインストールします

Node.js公式サイト

(2)コマンドプロンプトでnode -vを実行しバージョンが表示されることを確認します


(3)フォルダを作って「npm init」コマンドを入力してください(npm initと入力するとpackage nameやversionなど聞かれますが、すべてEnterキーを押してください)

npm init

(4)johnny-fiveのインストール

// johnny-fiveのインストールコマンド
npm install johnny-five

(5)post-chatwork-messageのインストール

// post-chatwork-messageのインストールコマンド
npm install --save post-chatwork-message

(6)Chatworkの登録(登録されていない方)

(7)チャットワークにログイン後自分のアカウントをクリックしてAPI設定を選択そこでログインパスワードを入力しAPIトークンを取得

chatworkapiトークン取得画像

(8)表示したい場所のルームIDの確認

ルームIDはURLのhttps://www.chatwork.com/#!rid○○○…(ridの後ろの数字)

ページトップ

ブレッドボードへの接続

ブレッドボードへの接続を行ってきます

使う温度センサーによって変わります。詳しくはこちらのサイトから使っている温度センサーのページを見てください(デフォルトはDS18B20になっています)

以下の画像は今回DS18B20を使ったのですが普通のものと配置が違う(出力と電圧の位置が逆のもの)を使ったためその場合のブレッドボードの画像になります(普通のものをつかっている場合は上記のリンクをクリックして確認してください)

fritzing画像

ページトップ

Ardiunoの設定

Ardiunoの準備

ardiuno.exeを起動して「スケッチ>ライブラリをインクルード>ライブラリを管理」を選択してConfigurableFirmataをインストール(検索でConfigurableと入れると出てくるのでクリック)

以下の画像はinstall後の画面になっています(INSTALLEDと表示されています)

ardiunofirmata画像

インストールしたらConfigurableFirmataをマイコンボードに書き込む

configurablefirmata画像

ページトップ

プログラムの作成

jsファイルを作って下記のコードを入力(APIトークンやルームIDなど入力する箇所があるので上記で確認したものを入力して下さい)

var five = require("johnny-five");
const postChatworkMessage = require('post-chatwork-message')

const CHATWORK_API_KEY = '取得したAPIトークン'
//チャットワークのルームIDの指定(どこに表示するのか指定)
const roomId = '確認したルームIDを指定'
var board = new five.Board({port: "COM3(シリアルポートを入力 人によって違うので注意してください。確認方法は「ツール>シリアルポート」)"});

board.on("ready", function() {
  // This requires OneWire support using the ConfigurableFirmata
  var thermometer = new five.Thermometer({
    // 温度センサーの種類(種類によって変わります)
    controller: "DS18B20",
    // 表示する頻度(単位はミリ秒でデフォルトでは60000を設定して1分ごとに表示するようにしています。自分の好きな時間に調整してください)
    freq: 60000,
    // ピンの配置
    pin: 2
  });

  thermometer.on("change", function() {
    console.log("現在の気温" + (Math.round(this.celsius * 10) / 10) + "℃");
    // チャットワークに送信
    postChatworkMessage(CHATWORK_API_KEY, roomId, "現在の気温 " + (Math.round(this.celsius * 10) / 10) + "℃")
  });
});

ページトップ

実行する

(1)ArdiunoをPCに接続

(2)コマンドプロンプトでフォルダ作った場所に移動して下記のコマンドを入力

node ファイル名(○○.jsの○○の部分)

正常な場合はコマンドプロンプトに以下のように表示されます

気温が表示されていることを確認してください

コンソール画面

(3)チャットワークを開いて確認する

チャットワーク画面

ページトップ