Raspberry PiでセンシングしたデータをWordPressに自動投稿してみる


以前「Raspberry Piでセンシングした温度を、firebaseとchart.jsを使ってリアルタイムグラフにしてみる」という内容を紹介いたしましたが、今回はWordPressと言うCMSに投稿する方法をご紹介します。

なお、今回は、IoTスイッチのRaspberry Piで作る室温管理IoT/DIYキットを使用しています。

 

WordPress側の設定

WordPressに外部から投稿するには、WP REST APIという機能を使って投稿します。

現在のWordPressには、本体にその機能が備わっていますが、そのままでは使えません。なぜなら、誰でも簡単に内容を変更出来たり、追加出来たりしたら困るからです。

詳しくは、「WordPressのREST APIを使って外部(IoTデバイス)から投稿する」をご覧いただき、設定を行ってください。

 

Raspberry Pi側のカスタマイズ

IoTスイッチの室温管理IoT/DIYキットは、測定した温度が、設定した温度を下回るもしくは上回ると、トリガーが発動して、アラートがなる仕組みです。

その為、このままだとあまり使い勝手が良いとは言えません。

例えば、CRONなどを使い、1時間おきに、温度を測定して、その時の温度を元に、WordPressに自動投稿するという処理にカスタマイズします。

 

室温管理IoT/DIYプログラムの変更

IoTスイッチの室温管理IoT/DIYキットの中を見ると、「var/www/html/iotswicth/tweet.php」というファイルがあります。

そのファイルをベースに、下記のソースを上手く取り入れてカスタマイズすると、比較的簡単に測定した温度を投稿するプログラムが作成できると思います。(簡単と言っても、PHPのソースを読めるレベルのスキルは必要だと思います。)

		  
		$base_url = 'WordPressサイトのURL';

		$data = [
			"title" => ”記事のタイトル”,
			"content" => "記事のコンテンツ",
			"slug" => ”記事のスラッグ”,
			"categories" => [5,10],//カテゴリー(IDを配列で格納)
			"status" => "publish"//公開
		];

		$header = [
			'Authorization: Basic ' . base64_encode( 'ユーザーID' . ':' . '認証パスワード' ),
			'Content-Type: application/json',
		];

		$curl = curl_init();

		curl_setopt($curl, CURLOPT_URL, $base_url.'/wp-json/wp/v2/posts');
		curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); // post
		curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); // jsonデータを送信
		curl_setopt($curl, CURLOPT_HTTPHEADER, $header); // リクエストにヘッダーを含める
		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($curl, CURLOPT_HEADER, true);

		$response = curl_exec($curl);

		$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE); 
		$header = substr($response, 0, $header_size);
		$body = substr($response, $header_size);
		$result = json_decode($body, true); 

		curl_close($curl);	

後は、このプログラムをCRONで実行させれば、定期的に測定した温度をベースにした自動投稿が可能となります。

 

Raspberry PiからWordPressに自動投稿してみるのまとめ

今回は、IoTスイッチのキットを使って、温度を元に投稿する記事をご紹介しましたが、単純に「現在の〇〇の温度は20度です。」という投稿では、面白みに欠ける気はします。

その為、温度だけでなく、時間、湿度や気圧など、他のデータと組み合わせて、さらに、AI(人口知能)とも組み合わせ、この温度と湿度、気圧では、数時間後には雨が降りやすくなる為、傘を持っていきましょう」とか、「熱中症にはきをつけましょう。」と言った投稿が出来ると良いですね。

 

以上「Raspberry PiでセンシングしたデータをWordPressに自動投稿してみる」のご紹介でした。