2022年4月30日土曜日

obniz memo②two-obniz, arducam-mini, ifttt, periodic run,sleep,uart/uno

<!-- HTML Example -->
<html>

<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.com/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@3.3.0/obniz.js"></script>
</head>
<body>

<div id="obniz-debug"></div>
<h1>Dial to Servo(two obniz)</h1>

<script>
var obnizA = new Obniz("");
obnizA.onconnect = async function () {
var obnizB = new Obniz("");
obnizB.onconnect = async function(){
var meter = obnizA.wired("Potentiometer", {pin0:0, pin1:1, pin2:2});
var servo = obnizB.wired("ServoMotor", {gnd:0, vcc:1, signal:2});
meter.onchange = function(position) {
servo.angle(position * 180);
};
}
}
</script>
</body>
</html>

これで、片方のポテンショをまわすとサーボがうごく おもろい

-------------------- arducam mini plus ----------------------------------------

https://iot-gym.com/arducammini-obniz/ を基本とするがakizukiの取り扱い品が

mini-2m から mini-2m-plusになっていたので、以下のサイトを参照する

https://qiita.com/y-hira/items/0a1f4a69f1b1e858a916  繰り返すが本修正が必須! 

なお本サイトではvccが省略されていて、外部電源仕様だからそれが必須!

ストリーム表示でも同様だ!

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
<script src="https://unpkg.com/obniz@latest/obniz.js"></script>
</head>
<body>

<div id="obniz-debug"></div>
<img id="image">

<script>
var obniz = new Obniz("4998-4317"); //obnizIDを入力する
obniz.onconnect = async function () {
var cam = obniz.wired("ArduCAMMini", { cs:0, mosi:1, miso:2, sclk:3, gnd:4, vcc:5, sda:6, scl:7 });
await cam.startupWait();
const data = await cam.takeWait('320x240'); // これでも写真がでるのが結構遅い
 //'160x120'or'176x144'or'320x240'or'352x288'or'640x480'or'800x600'or'1024x768'or'1280x960'or'1600x1200'を指定する
data.unshift(255); // ここが重要!
console.log("image size = " + data.length + " bytes");
const base64 = cam.arrayToBase64(data);
document.getElementById("image").src = "data:image/jpeg;base64, " + base64;
}
</script>
</body>
</html>

<html>

<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1">

<script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>

<script src="https://unpkg.com/obniz@latest/obniz.js"></script>

</head>

<body>

<div id="obniz-debug"></div>

<img id="image">

<script>

var obniz = new Obniz("5312-1232");  //obnizIDを入力する

obniz.onconnect = async function () {

  var cam = obniz.wired("ArduCAMMini", { cs:0, mosi:1, miso:2, sclk:3, gnd:4, sda:6, scl:7 });

  await cam.startupWait();

  while (true) { //これでストリームとなる

  const data = await cam.takeWait('160x120'); //'160x120'or'176x144'or'320x240'or'352x288'or'640x480'or'800x600'or'1024x768'or'1280x960'or'1600x1200'を指定する

   data.unshift(255); 

  console.log("image size = " + data.length + " bytes");

  const base64 = cam.arrayToBase64(data);

  document.getElementById("image").src = "data:image/jpeg;base64, " + base64;

 }

}

</script>

</body>

</html>

これでストリームもいけた

ーーIFTTTーーー 

https://qiita.com/y-hira/items/de7e8d5c2e8e4c1c4acdでやってみた

一応セットアップすると1回は保存されたが、一度ブラウザとじないと

10分ごとの記録にならない 要注意!  temp-check-iftttに保存

ーーブロックプログラムで定期実行の注意点 ----ーーーー

https://qiita.com/youtoy/items/668ffd93f6dea3d7a2de 

webhookで実行されるブロックプログラムができた、スイッチが押されると実行もできた

定刻実行や、ハードオンで実行も多分OK

  javascript/htmlのウエブアプリとちがい、block-programmingのウエブアプリは

最後にクラウドで実行中なら。。。のブロックが必要 キモは一旦アプリを終わること!

あとは10分ごとに自動実行される!


ーーーーーーーーースリープ機能ーーーーーー
例題のhtml/jsアプリは勝手に電源オフとなり、以後定期的にオンとなる
https://blog.obniz.com/maketag/obniz-board-1y に詳しい ブロックアプリでも、
上記block-programのあとにsleepをいれて、定期実行と組み合わせるとOK

ーーーーーーーーfrom obniz docs ーーーーーーーーーーーーーーーー
obniz.onconnect = async function(){
var baud = 115200; // configration for UNO
obniz.uart0.start({tx: 0, rx: 1, baud:baud });
obniz.uart0.onreceive = async function(data, text) {
console.log(text);
}
}

0 件のコメント:

コメントを投稿