//tips
//Biz
営業。猟銃問題集周回完了、再度テキスト読み。
図書館。IOT本。
テック案件募集お話し。
郵便局21円足りないので訪問して発送。
Iot制作プログラムシュミレーション。
https://github.com/microsoft/IoT-For-Beginners
mkdir nightlight
cd nightlight
python3 -m venv .venv
×python3 -m venv nightlight これは必要なさそう
ターミナルフォルダが(.venv)の中に表示されるようになるので
python --version
きちんとPython 3.9.5が確認できた。
pip install CounterFit
この後に下記を入れるとCollecting CounterFitと出る。
pip install counterfit-connection
さらに下記をいれると、いろいろダウンロードする。
pip install counterfit-shims-grove
落ち着いたところで
touch app.py
ファイルを作成。
code .
こちらにvscodeで書いていけば良い。この中でターミナルを開き、
print('Hello World!')
とするとzsh: unknown file attribute: Hというエラー。
先ほどpython3 -m venv nightlight を入れちゃったのがダメな気がするので一旦全部消去。
再度実行。
あと、print('Hello World!’)の中ではなくapp.pyの中に書き込むところも間違ってた笑なんでや。
python app.py
これできちんと
(.venv) ➜ nightlight python app.py
Hello World!
と表示された。連携はうまくいっている感じ。
次ハードに接続。
counterfit
を入れるとエラー。
OSError: [Errno 48] Address already in us
これは何ぞ。
ポートで何かが生きているのが問題のよう。
lsof -i:5000
これで出てきたPIDをkillすれば良いよう。
Kill 479
Kill しても別のが生成されている。
Kill -9 をしても別のものが生成される。
調べるとAirPlayが5000を占有しているとのこと。
設定の共有からこれをオフ。
ついにlsof -i:5000を実行しても何も出てこなくなった。
これできちんとcounterfitが通る。
ライブサーバーを押したら5500でページが表示されるので5000に直してあげるときちんとブラウザ表示できた。
http://127.0.0.1:5000/
下記もapp.pyに追加。
from counterfit_connection import CounterFitConnection
CounterFitConnection.init('127.0.0.1', 5000)
counterfit
CounterFit - virtual IoT hardware running on port 5000
Sensor units called: {'type': 'Button'}
https://github.com/microsoft/IoT-For-Beginners/blob/main/1-getting-started/lessons/1-introduction-to-iot/virtual-device.md
なんだきちんとポート番号を変えるやり方も載っていた。 CounterFit --port <port_number>
きちんとボタンとLEDをconnectedできたとのこと。なんじゃこりゃ。
import time
from counterfit_shims_grove.grove_light_sensor_v1_2 import GroveLightSensor
from counterfit_connection import CounterFitConnection
CounterFitConnection.init('127.0.0.1', 5000)
light_sensor = GroveLightSensor(0)
while True:
light = light_sensor.light
print('Light level:', light)
time.sleep(1)
ライトセンサーを生成。永遠にループするのでctr+Cで離脱。
光を入れたらそれを数値のレベルで出すものなのだが、実物の光のないのでvalueに数値を入れて、それをレベルで吐き出すようにしている。
あとは調整機能もあるよう。多めにもらったら少なめに出したり、少なめの場合は多めに出すように制御する感じか。
実物があったほうがおもロイ感じがする。一通りやってみる。