ハッカソンで駐車場の空き状況をIoTで把握するプロトタイプを作ったよ（Raspberry Pi + enebular からkintone）


2021年11月27日・28日開催の「地方創生ハッカソン in 福井」で開発したネタです。
https://uhuru.connpass.com/event/220455/

![fukuiHack.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/291592/cc3108df-a25f-6639-d5a6-85f5fbc1dcf6.png)

私のチームは、観光地のソリューションで
私はその中の「駐車場予約システム」のIoT部分（駐車場⇒Kintone）のプロトタイプ作成に携わりました。
[![Image from Gyazo](https://i.gyazo.com/8097e2c65f4cd105d927a48f8d7bdd5f.png)](https://gyazo.com/8097e2c65f4cd105d927a48f8d7bdd5f)



##作ったもの
定期的に超音波センサーの値を Kintone に送り、
距離があれば「Opening」、距離が近ければ「Parking」と表示

[![Image from Gyazo](https://i.gyazo.com/3430f16dc43eacf3cab371d8dba4c556.png)](https://gyazo.com/3430f16dc43eacf3cab371d8dba4c556)



##開発環境

- RaspberryPi 3 <br>
　※enebular Editor インストール済 (VNC でリモート開発)
- GrovePi+　(Groveと接続するための拡張ボード）
- Groveモジュール付きセンサー
- Kintone

![RaspPi.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/291592/d923bb50-a177-905b-6dba-946f20386891.jpeg)

##準備

###VNCとenebular Editor
以下の画像のように PC上でラズパイをエネブラーで開発できる環境を構築する。
[![Image from Gyazo](https://i.gyazo.com/fa09281edd2e8e9b60d6dc063e8855e9.jpg)](https://gyazo.com/fa09281edd2e8e9b60d6dc063e8855e9)

やり方はこちらのサイト

- [ラズパイの画面をPCに表示させて効率よい開発をしよう](https://qiita.com/tatsuya1970/items/d7574a137033026a2cb4)
- [enebularをラズパイで使う方法](https://blog.enebular.com/function/how-to-use-enebular-with-raspi/)

<br>
なお、ラズパイにenebularをインストールしたあと、パレットの管理メニューが表示されなかったが、以下の記事で解決した。

- [Raspberry Piでenebular editorをインストールするメモ (※パレットの管理メニューが表示されない問題を解決)](https://qiita.com/kitazaki/items/b4e81812cd50bce304bd)


<br>
###ノードのインポート
GrovePi+経由でGroveモジュールを接続するためのノード群をインポート

enebular で [Discover] を選択
[![Image from Gyazo](https://i.gyazo.com/4aa715f550250123290a4cf5fb11ba12.png)](https://gyazo.com/4aa715f550250123290a4cf5fb11ba12)

[grove-pi-nodes-Free]を選択
[![Image from Gyazo](https://i.gyazo.com/9ef285c3d73987c792ffed6e095c0915.png)](https://gyazo.com/9ef285c3d73987c792ffed6e095c0915)

[Import]をクリック
[![Image from Gyazo](https://i.gyazo.com/d29015579d77f7dc7e7e16348ffe86fd.png)](https://gyazo.com/d29015579d77f7dc7e7e16348ffe86fd)



<br>


##kintone

アプリ作成
[![Image from Gyazo](https://i.gyazo.com/10015d8800b8c94357c82b489428359d.png)](https://gyazo.com/10015d8800b8c94357c82b489428359d)

駐車場データベース作成
[![Image from Gyazo](https://i.gyazo.com/f732e5b075da38cf23ebdaa7e5144a6f.png)](https://gyazo.com/f732e5b075da38cf23ebdaa7e5144a6f)

各項目の歯車 ＞ 設定
[![Image from Gyazo](https://i.gyazo.com/a81a559a1a42cf455b8c47a2233baf55.png)](https://gyazo.com/a81a559a1a42cf455b8c47a2233baf55)

フィールドコードに名前を付ける。
あとで　enebular からセンサーデータを送るときのJSONデータに必要。
[![Image from Gyazo](https://i.gyazo.com/c24e4855f6f0736028423fa936ab9c15.png)](https://gyazo.com/c24e4855f6f0736028423fa936ab9c15)

[![Image from Gyazo](https://i.gyazo.com/6c59006f7ed3699aec53680c7558252e.png)](https://gyazo.com/6c59006f7ed3699aec53680c7558252e)

<br><br>
##enebular

###起動

PCで VNC Viewer を起動し、PC上にラズパイの画面を表示する。

左上のラズパイアイコン ＞ その他　＞enebular editor
[![Image from Gyazo](https://i.gyazo.com/650246cb8600c871ec9c36ef69f9878c.png)](https://gyazo.com/650246cb8600c871ec9c36ef69f9878c)

（途中略）
この状態に持っていく。
![263721244_4617922344922930_6445741449392162757_n.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/291592/1cbeb948-04b1-4eda-183e-344f6356b88b.jpeg)


###ノード
以下の画像のとおりノードをつなげる。
[![Image from Gyazo](https://i.gyazo.com/deba73306c7181db6e330cbe903deef6.png)](https://gyazo.com/deba73306c7181db6e330cbe903deef6)

###①function ノード

```js
if (msg.payload <  10){

　　//msg.payload の各recordの名前は先ほど設定したKintoneのフィールドコード

    msg.payload = [
    {
        id: 1,
        record: {
            "parking_state":{　
                "value": "parking"　 
            },
            "distance":{
                "value": msg.payload
            }   
        }
    }
    ]
}
else
{
    msg.payload = [
    {
        id: 1,
        record: {
            "parking_state":{
                "value": "opening"
            },
            "distance":{
                "value": msg.payload
            }   
        }
    }
    ]
}

return msg;
```

###②Kintone ノード

以下のように設定。

アプリIDは、kintoneのアプリのURL「https://[サブドメイン].cybozu.com/k/」に続いて表示されている末尾の数字


[![Image from Gyazo](https://i.gyazo.com/f8ad01b44467f9f230c1e3f3e71aa285.png)](https://gyazo.com/f8ad01b44467f9f230c1e3f3e71aa285)


<br>
以上です。

ラズパイには苦手意識ありましたが、
このように、Grove Pi 、enebular 、Kintone　を組み合わせることで、簡単にIoTのプロトタイプが作れます。



<br>