見張り、見回り、見守り。人が見ていれば助かったかもしれないこと。人を増やすのではなく、コンピューターに見てもらうのはどうでしょう?IoTを簡単に例えると、モノがLINEしてくれること。 知りたいことをセンサーで検出して、通知する。シンプルですが強力です。

1,500円パソコン IchigoJam BASICと月額60円4G回線 sakura.io を使って社長自ら開発した創電の「火守くん(ほもりくん)」の紹介動画が公開されました!

IchigoJam BASICを使ったIoTは超簡単。

IOT.OUT 1

これでネットに「1」という数値が送れます。

IchigoJam BASIC 1.5b03 ファームウェア (RISC-V版 IchigoJam R用)
- IchigoJam 1.5β3
IOT.IN()/IOT.OUT対応、自動起動判定を起動直後に変更
(ファームウェアの書き換えには、「IJUtilities」が便利そう!)


sakura.io通信モジュールを付けたIchigoSodaのI2C(SCL/SDA/GND)を接続して確認しました。 5Vも接続して電源を共通化してもOKです。

IoTづくり、お手軽です!

links
- オープンとスピードのまち鯖江へようこそ! 官民学連携で挑む、IoT普及を阻害する2つの課題

鯖江市長の佐々木さん、副市長の中村さん、コネクトフリーの帝都さん、京都大学の坂出さんと共に記者会見。

実験のまちとして使ってほしいと、佐々木市長。
2010年、当時の牧野市長に提案して、その場で決めてくれたのがオープンデータの始まりとなりました。
オープンデータとデジタルの活用はいよいよ本番。新たな仲間を迎え、���すます楽しくなりそうです。


ちょうど同日、福井テレビで放送あった、創電の刀根社長自身によるIchigoJam/IchigoSoda IoTプログラミングとハードウェアづくりによって実現した「火守くん


火災報知器が鳴り響いてもむなしい、誰も居ない家や事務所の火災。創電のIoT「火守くん」は異変をネットを通じて伝えてくれます。


今回、鯖江市への共同提案、IoT通報システム。IoTの2つの課題を解決できます。
1. IoTセキュリティが心配 - 互いに認証する新しいインターネットプロトコル EVER/IPを使って解決
2. IoT価格が高くなり勝ち - その地域で生まれるデータを集約するサービスを行政が担当する提案、月額利用料をなくせます

例えば、IoT火災報知器、火災を感知したら位置情報と共に即、消防へ通報。無人の店舗の被害を最小限に食い止められるかもしれません。
汎用性が高いので、新しいデバイスを使ってDXしたい、様々な企業とのコラボが期待できます。


オープンに未来づくりに取り組むまち、鯖江!創電、会長&社長と。


初のCluster登壇してPR、ソフトウェアのまち鯖江!


バーチャル誠照寺 on Hubs
イベントで仕入れた情報、オープンソースなサイバースペース「Hubs」。
コロナ禍、中止がちな鯖江の毎月のおまつり「誠市」もバーチャル開催できるかも!?
バーチャル誠照寺の境内でチャットしながら3Dモデルも使った語り合いが可能です。


Spoke
オーサリングツールSpokeを使ったスペースづくり、鯖江商店街3Dオープンデータを、gltfのバイナリ形式glbをobj2gltfを使ってコンバート。誠照寺データを取り込めました。

鯖江市、サイバーバレーのフラッグシップになりましょう!

いよいよ開催、NT鯖江2020。何か展示品を追加しようと見つけた、NT金沢で譲ってもらったマトリクスLEDを和紙エディションに改造!

全部点灯を確認!


手作りの配線、一部補修。


こんな時のためにととっておいた越前和紙!


和紙に映る色合いがいい感じ!


その場でサクッと、BASICの超シンプルプログラミング!

現代のBASICは、IoT化までラクラク!

15 IF IOT.IN() [0]=0:[1]=30:[2]=0:WS.LED1,256:WAIT60*10

IchigoSodaや、sakura.ioモジュールを接続したIchigoJamで、この1行を追加し動かすだけで、スマホなどネットから信号を受け取ると全面真っ赤に10秒光る警告モード発動IoTに改造完了!

実用感あふれるIoTが自分の手でつくれると、喜びもひとしお!


我々世代の原典的メディア。次世代につなごう!新旧、プログラミング学習用雑誌・書籍も展示します。


創造的な食。カフェにて、COMPを使ったクリエイティブな料理も登場!


NT鯖江2020 10/3-4 11:00-17:00、西山公園近く、西鯖江駅最寄り、鯖江商工会議所1F、SCCにて開催! 入場無料、こどもから大人、シニアの方まで、なにかつくることに興味がある方、ぜひどうぞ!(鯖江市民の方、鯖江市長選挙と合わせてどうぞ)


創造力をかきたてる、現在改装中のSCC地下。次回はこちらも活用できそう。

福井新聞社主催、小学生プログラミング教室「はじめの一歩」
全国新聞社事業協議会主催の「みんなのみらい、みんなでつくろう~全国選抜小学生プログラミング大会」に向けた福井大会が初開催(10/31締切)。 越前がにロボコンPCNこどもプロコンに加わった新たなチャンス! 好きなもの見つけて、どんどんチャレンジしてもらいたい!


密対策、風の森ホールを広く使ったプログラミング教室、たっぷり3時間。 IchigoJamを使って、キーボード入門、逐次処理、繰り返し、条件判定、改造、LEDを増やすところまですすめる前半90分。 30分の休憩を挟んで、ボタン増設、光センサー、サーボモーター制御、組み合わせた応用を通じて、何かつくるアイデアを広げてもらう後半90分。


はじめてのプログラミング with IchigoJam (Keynote, PowerPoint)」
プログラミングはじめのいっぽから、ゲームづくりまでのスライドはこちら!復習や、人に教えてみると理解がぐっと深まるのでおすすめです。

1部で作ったゲーム、自宅で続きをする時は「LOAD1」いろいろ改造して楽しめる。
永平寺町、リアル開催プログラミングワークショップとダメージ制かわくだりゲーム改造法


本日のセットは、小型IchigoJamのIchigoDake + IchigoDyhook + わくわく電子工作キット + GND増設した特性電池ボックス!


はじめての電子工作。実験して、確かめる、これぞ科学!ものづくりの基本!


高専生もサポート、小学生前のめり!


福井大学院生もサポート、女子参加も多かった!


光センサーとサーボモーターを組み合わせてプログラミングしてつくる例、自動めがね拭き機!

広い会場、時々流れ星的な演出、見えました?
持ち込んだDMX512対応照明 x IchigoSoda(IoT対応IchigoJam)で作った、プログラム!1から5で角度指定、6でランダムモード!(参考、DMX512 x IchigoJam

10 POKE#700,240,181,114,182,64,24,80,33,9,2,1,49,9,4,128,38,118,0,1,34,202,96,4,39,63,2,29,55,0,240,37,248,2,34,202,96,93,39,0,240,32,248,4,120,164,0,1,52,1,48,1,34,202,96,45,39,0,240,23,248,1,37 20 POKE#73E,3,120,1,34,43,66,0,208,2,34,202,96,44,39,0,240,13,248,109,0,181,66,244,209,2,34,202,96,93,39,0,240,5,248,1,48,1,60,229,209,98,182,240,189,1,63,253,209,112,71 100 I=IOT.IN():IF I=0 CONT 105 IF I N=I:L=255:B=255:M=90 106 IF I=6 GOTO 200 110 POKE#800,8,0,250*N/6,0,M,0,0,L,B,RND(256),RND(256),RND(256),RND(256),0,0 120 U=USR(#700,#800) 130 WAIT10 135 IF L L=L-30:IF L<0 L=0 140 GOTO 100 200 POKE#800,8,0,250*N/6,0,M,0,0,L,B,RND(256),RND(256),RND(256),RND(256),0,0 205 N=RND(6):M=250*RND(6)/6:B=0:IF ABS(M-90)<40 L=255 ELSE L=50 210 U=USR(#700,#800) 220 WAIT10 230 IF IOT.IN() GOTO 100 240 GOTO 200

いろんな部品、プログラムを組み合わせて、自分だけの作品作り、挑戦しましょう!


最後に360度カメラで、集合しない写真!


同じ写真を別の角度で切り出したもの。


同じ写真をまた別の角度で切り出したもの。


光るフェイスシールド&永平寺町産イチゴマスク!


presented by 副新聞社 & スタッフ一同!

進めよう、創造的な人材育成!
創造的な人材の育成に向けて ~求められる教育改革と企業の行動~ 1996年 経団連

作ってみたIoT学習リモコンを、コンパクトにユニバーサル基板に実装して、実践投入。 アナログ温度センサー、MCP9700Aを使ったTEAM IchigoJamほっかいどう作、温度センサー基板を使って自動制御して、寝てみました。

変数Sでステート管理
S=0の時、27.0℃より下がったら29℃設定にし、S=1に
S=1の時、27.5℃より上がったら28℃設定にし、S=0に
と、プログラムを組んだつもりが、夜中1時半にエアコン作動音が連続する音と共に起こされました。 暗闇の中、寝ぼけながらプログラムを修正、その後は、無事に朝まで温度制御してくれました。 IchigoJam BASICのプログラムのバグ、分かりますか?(ヒント、LRUN)

アナログ温度センサー、MCP9700A、そこそこの精度で判定できていい感じだったので、赤外線送受信基板に追加、実装!

コンパクトに仕上がった、温度計付き赤外線リモコン送受信基板!EEPROMも実装して、プログラムもセットにすると楽かも?

自動制御で、熱中症を避け、快適な夏、創りましょう!

jigインターン、今日のブログは、ぴんぽん!
jig.jpオンラインインターン2020 7日目! - jigintern2020’s diary

ランチ写真をバーチャル背景におしゃべりする、オンラインランチ会!
チーム開発は高速スクラム、第二スプリントが終了し、いよいよ最終スプリントへ!

links
- IchigoJamで作るIoT学習リモコン、古いエアコンもスマホ制御で快適に! インターン生も芸人さんも楽しいプログラミング入門とマシン語
- 熱中症対策アプリ用オープンデータと暑さ指数予測ランキング、トップ840!

家にリモコン、いくつありますか?
IoTセンサーとリモコン制御プログラミングで、手軽に自作のスマートホーム!

寝室のエアコンの自動運転がいまいちで、寒かったり暑かったりして起きてしまう問題。 IchigoJamと赤外線LED、sakura.ioを使って、家のエアコンをスマホ制御できるようにして一歩前進。 IchigoJamのプログラムはとってもシンプル!

10 N=IOT.IN() 20 IF N=0 GOTO 10 30 ?N:F=FILE():R=10:LRUN N,200

LRUNを使っているので、このプログラムを保存してから、実行。 sakura.ioからデータ受信する IOT.IN() で信号を受け取り、エアコン停止のファイル1、28℃設定ONのファイル2、29℃設定ONのファイル3を呼び出します。(リモコン制御部分のプログラムは後述)

次はスマホ側、sakura.ioの連携サービスとしてWebSocketを設定し、スマホからの操作用のプログラムはJavaScriptで操作用アプリを作ります。 HTML/CSS/JavaScriptの基本スキルと、サンプルプログラムがあればカスタマイズし放題です。

IchigoRemocon IoT src on GitHub

高精度温湿度計SHT-31を使った、家のIoT温湿度計と合わせ、あとは快適に眠っていられる、ちょうどいいしきい値を決めるのみ。

温度が下がりすぎて寒くなって設定を緩めたらどんどん暑くなっていった、夜の記録。

IchigoJamで、赤外線を見よう!
ご家庭のほとんどのリモコンは赤外線リモコン。赤色より少し低い周波数の光を使って信号をリモコンから本体へと届けています。 目には見えませんが、赤外線受光モジュール(センサーの一種)を使って観測しましょう。

赤外線リモコン受信モジュール GP1UXC41QS (秋月電子で50円)を、IchigoJamにつなぎます。 データシートを見ると、丸い部分を手前にして、左から、信号出力のVout、GND、VCCの順。それぞれIchigoJamのIN1、GND、VCCに接続し、早速実験プログラム! (電源電圧VCCは2.7V〜5.5Vとあるので、5Vを使ってもOKです)

1 ?IN(1);:CONT

ずらっと1が並びますが、赤外線受光モジュールに向けて、リモコンボタンを押すと、0001010 などと、反応します。これが信号で、ボタンごと、機種ごとに違うものが送られています。

いろいろなリモコンで試してみましょう。

どんなリモコン信号を受けたら動かすだけなら、これでOKですが、信号の内容によって動きを変えたい場合は、もうひと工夫必要です。

リモコンの原理とマシン語活用
リモコンは赤外線を1秒間に3.8万回、38kHzの点滅を基本として、太陽光などに含まれる赤外線と区別しています。 その点滅があるときがON、無い時がOFFとし、ON時間とOFF時間を交互に計測し、一定時間OFFが続いたら一連の信号が終了、その一連の信号を見て判断すればOKと原理はシンプルですが、IchigoJam BASICでは速度が間に合いません。

そこでマシン語!以前作った、リモコン送受信コードを流用して、プログラム領域にデータを格納し、LRUNを使ったファイル連携で簡単に使えるようにしました。

1 'IR-REMOCON 100 INPUT"0:SEND 1:RECV ",N 110 IF N=0 N=USR(#D00,0):GOTO 100 120 L=USR(#D00,1) 130 ?"LEN:";L 140 FOR I=0 TO L-1 150 IF I%64=0 ?:?"POKE#";HEX$(#E00+I); 170 ?",";PEEK(#E00+I); 180 NEXT:? 190 GOTO 100 200 L=USR(#D00):LRUN F,R POKE#D00,112,181,114,182,14,34,18,2,138,24,0,40,53,208,80,35,27,3,1,51,27,3,1,36,164,4,2,38,54,2,2,62,0,33,0,240,37,248,1,49,33,66,28,209,29,104,0,45,247,209,228,8,0,32,0,33,0,240,26,248,1,49 POKE#D3E,33,66,17,209,29,104,0,45,247,208,17,84,1,48,0,33,0,240,15,248,73,28,33,66,6,209,29,104,0,45,247,209,17,84,1,48,176,66,231,209,0,33,17,84,1,48,98,182,112,189,156,37,173,0,1,61,253,209 POKE#D78,112,71,80,35,27,2,1,51,27,4,4,51,1,36,0,38,17,92,73,0,0,41,234,208,28,96,0,240,22,248,30,96,0,240,19,248,1,57,247,209,1,48,17,92,73,0,0,41,221,208,0,0,0,0,0,240,8,248,0,0,0,0,0,240,4,248 POKE#DBA,1,57,245,209,1,48,226,231,154,37,1,61,253,209,112,71

プログラムを入力し、実行すると 0:SEND 1:RECV と、送信するか受信するか聞いてきます。 まずは1、エンターで受信。リモコン信号を受光モジュールに当てると、#D00に記録した内容が表示されます。

0または単にエンターで、赤外線を発信します。OUT1とGNDに赤外線LEDを付け、本体に向けてやってみましょう!無事制御できましたか!?

1行目に何の信号か分かるように名前をつけて、保存しておきましょう(EEPROMを使えば追加で最大128種類保存可能)。 あとは、好きなようにプログラムを作るだけです。

USBシリアルでPCと接続している場合、受診時に表示されるPOKE文を保存しておき、上記プログラムと合わせて書き込むことでもリモコン信号を復元できます。

ちょっと詳しい解説編
1KBのプログラム領域、こんな風に使っています。
#C00-#CFF 256byte BASIC(溢れてないよう ?FREE() が768以下にならないよう注意!)
#D00-#DFF 256byte マシン語(赤外線送受信)
#E00-#FFF 512byte 赤外線データ

マシン語のasm15ソースコードはこちら。以前作成したものを、#E00から最大512byte使って保存するように変更し、#D00から書き込んで使います。(エアコンの信号で440byte、収まります!)

' IN1 - 赤外線受光モジュール / OUT1 - 赤外線LED PUSH {LR,R4,R5,R6} CPSID '割り込み禁止 R2=#E 'PROGの後半 #E00 R2=R2<<8 R2=R1+R2 R0-0 IF 0 GOTO @SEND R3=#50 ' IN1 の address PIO0_10 R3=R3<<(24-(10+2)) R3+=1 R3=R3<<(10+2) ' PIO0_10 R4=1 R4=R4<<18 '初回信号オーバーフロー判定 R6=2 'R6=512-2 R6=R6<<8 R6-=2 R1=0 @BACK0 GOSUB @WAIT2526 R1+=1 R1&R4 IF !0 GOTO @END R5=[R3]L R5-0 IF !0 GOTO @BACK0 R4=R4>>(18-15) 'オーバーフロー判定変更 R0=0 '配列書き込み位置 @LOOP R1=0 @BACK1 GOSUB @WAIT2526 R1+=1 R1&R4 IF !0 GOTO @END R5=[R3]L R5-0 IF 0 GOTO @BACK1 [R2+R0]=R1 R0+=1 ' 1byteずつ R1=0 @BACK2 GOSUB @WAIT2526 R1=R1+1 R1&R4 IF !0 GOTO @END R5=[R3+0]L R5-0 IF !0 GOTO @BACK2 [R2+R0]=R1 R0+=1 ' 1byteずつ R0-R6 IF !0 GOTO @LOOP @END R1=0 [R2+R0]=R1 R0+=1 CPSIE ' 割り込み許可 POP {PC,R4,R5,R6} @WAIT2526 R5=156 ' 1cycle '(48000/38*2=2526 - overhead 14cycle - 6) / 4 = 626 (=156*4) R5=R5<<2 R5-=1 ' 1 cycle IF !0 GOTO -1 ' 分岐するとき3cycle しないとき1 - 4*loop-2 RET ' 3cycle @SEND R3=#50 ' OUT1 の address PIO1_0 R3=R3<<8 R3+=1 R3=R3<<16 R3+=`00000100 'PIO1_0 R4=1 'PIOオン用 R6=0 'PIOオフ用 'R2 データが格納されたアドレス 'R0 == 0 @ON R1=[R2+R0] R1=R1<<1 ' 2倍する R1-0 IF 0 GOTO @END @ON_LOOP [R3]L=R4 GOSUB @WAIT631 [R3]L=R6 GOSUB @WAIT631 R1-=1 IF !0 GOTO @ON_LOOP R0+=1 @OFF R1=[R2+R0] R1=R1<<1 ' 2倍する R1-0 IF 0 GOTO @END @OFF_LOOP NOP NOP GOSUB @WAIT631 NOP NOP GOSUB @WAIT631 R1-=1 IF !0 GOTO @OFF_LOOP R0+=1 GOTO @ON @WAIT631 'use R5 R5=154 ' 1cycle '(48000/38/2=631 - overhead 5cycle (+10/2) - 5) / 4 = 154 R5-=1 ' 1 cycle IF !0 GOTO -1 ' 分岐するとき3cycle しないとき1 - 4*loop-2 = 618 RET ' 3cycle

受信:ONになっている時間、OFFになっている時間を交互に数えて、メモリに書き出す
送信:メモリを読み、38kHzで点滅するONとただ待つだけのOFFを長さ分だけ繰り返す
(参考、はじめてのマシン語 - IchigoJamではじめるArmマシン語その1

まとめ
プログラミング、言語はいろいろ違っても基本はシンプルです。
大人も子供も学生も、まずは楽しく改造して、ひとつひとつやれること増やしていきましょう!


PCで動く、IchigoJam ap を使って、楽しんでくれたドランクドラゴンのみなさん!


jigインターン、プログラミングできる学生向け、超高速IchigoJam入門&プログラミング大喜利まで1時間!はーどによる「jig.jpオンラインインターン2020 6日目!」に作品あり! アニメーション、音楽、ゲーム、サクッとその場で作れて好評でした!はんだづけもぜひチャレンジしてね!

教え方、または、ゆっくり復習したい方は、こちらの動画をどうぞ!

総合2コマから始める鯖江の小学校プログラミング! 総合的な学習の時間、IT遊具、クラブ活動、地域ICTクラブ、高度IT人材へのベストプラクティススライドPDF

かわくだりゲーム、Hana道場での改造例。

links
- IchigoJamを赤外線リモコンで簡単遠隔操作!スマートホーム実現に向けて、信号の解読にも挑戦しよう!

GitHubを使ったオープンソースプロジェクトへの貢献方法を紹介しましたが、今回はもっとライトな、1つのリポジトリをチームで使った開発入門。

1. GitHubのリポジトリ、権限「Write」のメンバーに設定しましょう
2. 大原則「masterリポジトリ」は直接触らない!
3. 変更するタスクに取り掛かる時、GitHub Desktop、New Branchで、branchを作ります

英数ハイフンのみを使った短い単語で名前をつけます。
branchは、名前付きでそのリポジトリをまるっとコピーしてくれます。
壊してしまっても簡単に元に戻せるので安心!(日付付きファイルコピーは不要です)
4. 作って、テスト!
5. できたら、何をやったかコメントと共にコミットし、プルリクを作成


6. 他のメンバーにレビューしてもらいます

GitHub Desktop、プルリクを選べばまるっとその環境にしてくれます
7. OK!なら、masterへマージ!

おかしなところがあれば、コメントしたり、直してコミットしたりしましょう。 もし、masterのbranchと競合しているかどうかもここで分かります。
8. できました!

いつ誰がどう変更したか、一目瞭然で便利です!
(いらなくなった branch は remove しちゃってもOK!)

今回、このGitHub実験と合わせて作った、自宅のIoT温度計を一覧できるダッシュボード

IchigoOndo list
月額66円のIoT、IchigoSoda + SHT31温湿度計のデータを、sakura.ioのDataStore APIで取得し、表示するHTML/CSS/JavaScriptのプログラム。 メインはこんな感じです(src on GitHub)

window.onload = async () => { const tokens = await (await fetch("ichigoondo-settings.json")).json(); const cr = (tag) => document.createElement(tag); list.style.display = "grid"; list.style.gridTemplateColumns = "1fr 1fr 1fr 1fr 1fr"; for (const c of ["", "温度", "湿度", "WBGT", "水分量"]) { const div = cr("div"); div.textContent = c; list.appendChild(div); } for (const c of tokens) { const a = cr("a"); a.textContent = c.name; a.href = c.link; list.appendChild(a); const data = await fetchDataLatest(c, 1); console.log(c, data); for (const name of [["t", "℃"], ["h", "%"], ["wbgt", "℃"], ["water", "g/m<sup>3</sup>"]]) { const div = cr("div"); div.innerHTML = `${data[name[0]].toFixed(2)}<small>${name[1]}</small>`; list.appendChild(div); } } const reloadevery = 5 * 60 * 1000; // 5min setTimeout(() => location.reload(), reloadevery); };

各温度計の詳細ページへ、ジャンプするように、tokenなどを設定して自宅で運用開始!

この日、家のIoT温度計、36.7℃にまで上昇!


オンライン開催jigインターン、困った時は画面共有して、みんなで問題解決!
みんな、どんどんレベル上がっていきますね!


jigインターン12名と、パロット化したメンター2名

今日のブログ担当は、けさらん!
jig.jpオンラインインターン2020 5日目! - jigintern2020’s diary

GitHub、個人プロジェクト、少人数チームプロジェクトから世界規模のオープンソースプロジェクトまで、多彩! まずは友達同士、あれこれ楽しく触って作って壊してみるのがおすすめです!(プロジェクト「囲みマス」もぜひどうぞ!)

快適さ、熱中症対策には重要な湿度。IoT温度計に湿度を追加し、WBGTを簡易計算したものと加えて、古い iPad mini でも表示。 温湿度IoTは、SHT31を使ったIchigoJam BASIC 5行のIoTプログラムをIchigoSodaに電源をつないで動かしてます。 5分に1度の4G通信、sakura.ioなら月額使用料66円。オフィス他、親や、祖父母家に設置しておくのもいいでしょう。

IchigoOndo for ES5 src on GitHub
sakura.io の DataStore v2 のトークンと、登録したモジュールID、送信したチャンネル番号を記載すれば使えます。


iOS 9.3.5 で、アップデートが止まってしまった古いiPadですが、ES6で導入された let/const、class、TypedArray、=>による関数定義、ES7の async/await が使えないことを考慮すればOK。


今回のグラフ表示は、Chart.jsを使わず、HTML Canvas を使った自前実装。2軸使った表示で、区切り線が2種類出したくなかったのです。 赤い線が気温、オレンジがWBGT、水色が湿度、それぞれ薄い線は昨日のデータを表します。

環境省による暑さ指数WBGT、気温と湿度で算出する計算式が掲載されていたものを使用。

現在の暑さ指数(WBGT)について


県内ミニ観光、福井県大野市へ。いい空と夢助ソフト(だんごのせ、あんこ入りソフトクリーム) at 米の菓 ゆめすけ


野外冷房と大きな扇風機がある、テラス席、炎天下でも日陰で短時間なら大丈夫!


電話予約すると早そうです。(ゆめすけ at Facebook)


モモンガコーヒーのコーヒーソーダ!黒ビール風な、ビターの味わいがいい感じ!

暑い夏、WBGTにも注意しつつ、楽しみましょう!

links
- 環境省熱中症予防情報サイト 暑さ指数とは?
- 熱中症対策アプリ用オープンデータと暑さ指数予測ランキング、トップ840!

携帯キャリアを使ったWiFi不要で、どこでも使える月額60円IoT、sakura.ioに新機能!
sakura.io 新オプションサービス「デバイス間通信」提供開始のご案内 | さくらインターネット

いままでサーバープログラムを経由しないとできなかったsakura.ioデバイス同士の通信が、管理画面で設定するだけで送れるようになりました! 早速、IchigoJamのIoTバージョン、IchigoSodaを使って実験したところ、超簡単!片方のIchigoSodaで次のコマンド。(for IchigoJam BASIC 1.4)

IOT.OUT 1234

設定したもう一方のIchigoSodaで

?IOT.IN() 1234 OK

通信できた!(DataStoreにも同時に貯めたり、指定したwebへ送信と併用OK!)

sakura.ioのコントロールパネルで、プロジェクトを作成、デバイスを登録し、デバイス間通信から、通信元と通信先を選ぶだけ!

動画デモです。

1. 右側のIcihgoSodaのボタンを押すと、左側のIchigoSodaのLEDが光る!
送信側

10 IF BTN()=0 CONT 20 IOT.OUT 2 30 IF BTN()=1 CONT 40 IOT.OUT 1 50 GOTO 10

受信側

10 N=IOT.IN() 20 IF N=2 LED 1 30 IF N=1 LED 0 40 GOTO 10

2. 文字列を相互に送り合うチャット!(入力時、先頭に「"」を付けてください )
どちらも同じプログラム(最大8文字まで、40行を8の倍数で128まで変更可能)

10 N=IOT.IN() 20 IF N ?">";STR$(N) 30 INPUT S 40 IF S OUT.IOT S,8 50 GOTO 10

3. 受信したら即、表示することもできます!
上記プログラムから30行、40行を削除

10 N=IOT.IN() 20 IF N ?">";STR$(N) 50 GOTO 10


IchigoSodaを持ってる人同士でいろいろ通信して遊べそうですね!
同じ送信元から複数の送信先を選べば、まとめて送信することもできます(最大設定数100)


CPUの上側についている小さなディップスイッチ、下側の[WAKE]設定を[EN](有効)側に切り替えて、IN2とGNDをLEDでつなぐと、何か受信した時にLEDを光ってお知らせすることもできます。 チャットで入力中にもメッセージ受信が分かって便利ですね。

岡山県の宇野バスでは、バスの混み具合と位置情報を送るバスIoTでの実用も始まりました!


IchigoJam BASICで、お手軽IoT、ますます加速していきそうです。 links
- sakura.io 新オプションサービス「デバイス間通信」提供開始のご案内 | さくらインターネット
- さくらインターネットが提供するIoTプラットフォームサービス、sakura.io | IchigoSoda/IchigoJam for sakura.io(ファームウェアの更新が必要です)

なぜ、こどもにプログラミングを教えるのか?
→ プログラミングが汎用的で強力なツールであり、こどもにできるほど簡単だから

社会にネット(=コンピューター)が広まる程、プログラミングの力は強まります。昔はゲームづくりや専門的な解析が中心でしたが、IoT時代、身近な課題解決にもすぐ活用できます。

「十分に発達した科学技術は、魔法と見分けがつかない(クラークの三法則)」
Bluetoothイヤホンで通話しながら歩いている様子はテレパシー、3Dプリンターはテレポーテーション、ドローンの編隊を自在に操る様はまるで魔法。自在に操れたらもっとステキです。


学校を変えた最強のプログラミング教育 | 松田孝
前原小学校元校長の松田さんの本にも、ドローンプログラミングがこどもや大人に与えたインパクトと、意外とシンプルな制御プログラミングが掲載されています。 (その後、更に改良され「FruitPunch(フルーツポン���) x IchigoDyhook(いちごだいふく)」で、もっとシンプル、もっと手軽にドローンプログラミングできるようになっています。)


松田さんとの出会い、書いてありました!2016年12月、福井で開催した「第1回こどもプログラミングサミット」の会場にて、IchigoJamのはんだづけからのプログラミング体験をしてもらってからのご縁です。 (ナチュラルスタイル松田さんも登場!、学校は「社会の求め」に応えられるか?校長・教頭へのおすすめ本! – about yrm


zoomお茶会IoTと地方創生で共同プロジェクト進行中のKDDI松野さんも参加!
IoTは、ITの集大成。身近な課題から、世界的な課題まで、多方面での活躍が期待されていますが、深刻な担い手不足。小中学校でのプログラミング必修化は大きなチャンス!

今日テーマにしたのは、身近な課題、眠りの快適さをアップするIoT。 きっと、部屋の温湿度が大事!でも、快適と感じる状況は人によって異なります。 まずは計測。IoT対応IchigoJamと、手軽で高性能な温湿度計SHT31を使って、日々の変化を記録してみます。

1 @ARUN 10 POKE#700,#2C,#06:R=I2CR(#45,#700,2,#700,6) 20 IOT.OUT #700,8 30 WAIT 60*60*5 40 GOTO 10

I2Cで取得したデータを(10行)、IchigoSodaで送信し(20行)、5分待って(30行)、くりかえし(40行)。シンプルですね!

sakura.ioのモジュールの管理画面で、DataStoreV2 APIを設定します。1ヶ月分保存なら追加料金はかかりません。 管理画面からCSVでダウンロードができるので、あとは、解析し放題!

解析をプログラムで自動化したい場合、パソコンでデータをダウンロードしましょう。JavaScriptをパソコン上で動かす、Denoをインストールし、このプログラムを test.mjs として保存。 (sensorname: 保存するディレクトリ名、token: DataStoreV2のtoken、moduleid: 使用するモジュール)

import download from "https://code4sabae.github.io/sakuraio-es/download.mjs"; await download(7, "sensorname", "token", "moduleid", 1);

あとはコンソールで動かすだけ!

$ deno run -A test.mjs

これだけで過去1週間分のJSONデータを日付ごとにダウンロード完了です! 詳しく知りたい方は、オープンソースのJavaScriptプログラム(src on GitHub)をどうぞ。 JavaScriptについて学びたい場合は「JSはじめのいっぽ」をどうぞ。 ネットがあれば、わからないものを無限に追求できますね。(社会実装例、バスの走っている場所、混雑状況などのIoTによって進む見える化 by ダイヤ編成〚その筋屋〛公式 ❄ @Sujiya_Systemさん)

このように、実現したいことを叶える技術が急速に発展し、ネットというインフラによって多くはソフトウェア化している上に、その大半がオープンソースソフトウェアとして誰でも自由に利用でき、改造でき、その開発に貢献することもできます。

ものづくりには、ソフトウェア、ハードウェア・素材までさまざまなレイヤーがありますが、ソフトウェアづくりはコンピューターさえあれば誰にでも始められる最も手軽なものづくりです。


バリエーション豊富なIchigoJam、IchigoSodaは4G通信モジュール対応のソーダカラーがかわいいIchigoJamです。 中央のチップが、100円のCPU。今回の高精度温湿度計SHT31も右下、黒い四角がその本体。あとは電源つないで動かすだけ! 世界中から登場する小さくて安くてワクワクする電子パーツたち。 プログラミングでつないで何創る?夢、膨らみますね!

日本一プログラミングを小学校現場で実践した、松田さんによる熱い著書。
学校を変えた最強のプログラミング教育 | 松田孝
ワクワクする未来を、こどもたちへ!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / RSS