はじめに
obnizのボタンを押し、格言APIが表示されるIoTを作成しました。
APIはこちらを参考に引っ張ってきました。
https://zenn.dev/protoout/books/public-apis-api-get/viewer/01
前提条件
・Node.jsのインストール
・axiosのインストール
・obnizにボタンをつける
本題
完成は下記コード
//obnizのボタンを押すとadviceを返します
var Obniz = require("obniz");
//APIを叩ける
const axios = require('axios');
var obniz = new Obniz("XXXX-XXXX"); //obnizIDを入力
obniz.onconnect = async function () {
let button = obniz.wired("Keyestudio_Button", {signal:0, vcc:1, gnd:2});
while (true) {
obniz.display.clear();
await button.stateWait(false);
main();
}
}
const main = async()=>{
try{
const res = await axios.get('https://api.adviceslip.com/advice');
console.log(res.data.slip.advice);
obniz.display.print(res.data.slip.advice);
} catch (error){
console.error(error);
}
}
obnizのボタンが押されると、stateWait()
がfalse
となり、
main()
が実行される仕様となっています。
main()
に関して
console.log
ではAPIのデータで欲しい情報を記載します。
今回のデータではslip
オブジェクト内のadvice
というkeyに出力したい情報(value)があるため、このようなコードになっています。
(語弊があるかもしれませんが、ご了承ください。
その際は、ご指摘いただけると幸いです。)
おわりに
落ち込んだ時とかやる気を出したいときに使ってください
英語の格言なので何いっているかわかりません...笑
今後は英語→日本語に翻訳して出力されるよう工夫したいと思います。
ありがとうございました。