2025年10月14日火曜日

積み残しObniz::AmbientNode/Cron,GooglSheet-UrlGETをMITappInでも

 ーーーーーーーーーーーーーーーーーーーーー

https://docs.obniz.com/ja/guides/  obniz 総論的サイト

https://docs.obniz.com/ja/reference/ 同様

https://blog.obniz.com/make/ これが一番具体的かな

省エネ水やりを改変して1分アラームを作成 !
setTimeout,clearTimeoutで挟むのが肝心のようだが理由がイマイチわからん.....
ネット環境がわるく電波が弱いときはうまくいかずbutton loginをもとめてくるので注意!


<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin="anonymous"
></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
crossorigin="anonymous"
></script>

<link
rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css"
/>
</head>
<body>
<h3 id="bploading" style="text-align:center;">LOADING...</h3>
<div id="OBNIZ_OUTPUT"></div>
<br />

<script
src="https://unpkg.com/obniz@latest/obniz.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/iothome/index.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/airobot/index.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/ui/index.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/ai/howler2.1.2/howler.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/ai/opencv3.4/opencv.js"
crossorigin="anonymous"
></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@4.19.0"> </script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet@2.1.1"> </script>
<script src="https://cdn.jsdelivr.net/npm/@teachablemachine/image@0.8.5/dist/teachablemachine-image.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/posenet@2.2.2"></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/ai/clmtrackr/clmtrackr.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/ai/clmtrackr/emotion_classifier.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/ai/clmtrackr/emotionmodel.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/ai/clmtrackr/model_pca_20_svm.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/ai/index.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.18.0/storage/index.js"
crossorigin="anonymous"
></script>

<script>
let obniz = new Obniz("4998-4317");

//Timeout 25s
let tid = setTimeout(() => {
obniz.sleepMinute(720);
}, 25000);
obniz.onconnect = async () => {

let speaker = obniz.wired("Speaker",{"signal":0, "gnd":1});
speaker.play(262);;
await obniz.wait(10000); // awaitが必須
speaker.stop();

 obniz.sleepMinute(1);

 //program finish wait...
 await obniz.wait(1000); // なくてもうごくがあったほうが行儀がいい?
 clearTimeout(tid);

};
</script>
</body>
</html>
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Error: obniz=4998-4317 is connected from 1 clients (it's max). Disconnect others or extend limit. はObnizを再起動する必要あり

const Obniz = require("obniz");
const obniz = new Obniz("4998-4317");
const channelId = 95144;
const writeKey = '8c36be8526b33e9b';
var Ambient = require('ambient-lib');
var ambient = new Ambient(channelId,writeKey);

const get_data_send = async (lm35) => {
    const val = await lm35.getWait();;
    console.log(val);
    ambient.send({d1: val}, (err, res, body) => {
        if (err) {
            //console.log(err);
        }
        // console.log(res);
        console.log("sent");
    });
}

obniz.onconnect = async () => {
    var lm35 = obniz.wired("LM35DZ", { gnd:2 , output:0, vcc:1});

    get_data_send(lm35);

    setInterval(() => {
        get_data_send(lm35);
    }, 30 * 1000);  // 30 sec interval
}
ーーーーーーーーーvisual block programーーーーーーーーーーーーーーーーーーーーーー
https://docs.obniz.com/ja/guides/obniz-starter-kit/iot-by-block-programing/app-record-temp 定期的に温度測定ヴィジュアルブロックプログラミング(以下VBP)
ボードはスリープせずに10分ごとにCloudOSから起動されアプリステータスが更新される
ブラウザは開いていても開いてなくてもOK
なぜかVBPではsleep,webhook,procedureがうまくいかん。。。検討課題


----------------------------------------------------------------------------------

オブニズで以下のように、するとblockプログラミングでもurl getに成功


blockでつかえる温度計(LM35)も期待!もともとwebhook url get用なので複雑なのは。。。

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

webhookを定期実行だがレガシースタイルのサーバレスイベント(Webアプリでなく)、
ニュースタイルは(Web)アプリ一択となった アプリ開発ではOBNIZ_ID_HERE一択である
https://blog.obniz.com/make/saving-temperature-logger-1y を参考にしよう
なんと2025年にはubuntu,that:googlesheetでうごかんようになってた。。。なんで?

ーーーーーーーーーーーgoogleappscript for spread sheet-------------------------------

https://docs.google.com/spreadsheets/d/1Ufw7WFvH0cO6dYgw-oglY_HW9tniHsvMlnrpC1i09j8/edit?gid=0#gid=0 がドキュメントurlとすると

https://script.google.com/macros/s/AKfycbwd4pEOJYmrORTIub1A11r_VwY8pOg29vbHYxeszab-DwCKqX2d3A8QtAmIaPyOkjCTbw/exec?name=seigo&location=tokyoで成功

function doGet(e) {
var ss=SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1Ufw7WFvH0cO6dYgw-oglY_HW9tniHsvMlnrpC1i09j8/edit?gid=0#gid=0");
var sheet = ss.getSheetByName("Sheet1");
addUser(e,sheet);
}

function doPost(e) {
var ss=SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1Ufw7WFvH0cO6dYgw-oglY_HW9tniHsvMlnrpC1i09j8/edit?gid=0#gid=0");
var sheet = ss.getSheetByName("Sheet1");
addUser(e,sheet);
}

function addUser(e,sheet){
var name = e.parameter.name;
var location = e.parameter.location;
sheet.appendRow([name,location]);
}


でMITappInventor 成功 ただしurlのexecをexec?になおす!


0 件のコメント:

コメントを投稿