13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M5Stackで会議室の使用状況をモニタリングしよう①(マグネットスイッチ編)

Last updated at Posted at 2021-02-11

概要

会議室の利用状況をWeb上で把握できる仕組みを
 M5Stack+マグネットスイッチ→ThingSpeak
を使って構築しました。

UIFlowを使ったブロックプログラミングを使用したので、コードは1行も書かずに済んでいます。
M5Door2.JPG

使用したもの

・M5Stack(Basic)
・マグネットスイッチ
 →ダイソーの「ドアが開くと点灯するライト」の部品を流用
  →参考:ラズパイで100均のドア開閉センサー検知

接続方法

マグネットスイッチ
 →21ピン
 →GND

コード

M5Door.JPG

M5Door.py
from m5stack import *
from m5ui import *
from uiflow import *
import time
import machine
import urequests

setScreenColor(0x222222)


isOpen = None


DoorStatus = M5TextBox(88, 44, "DoorStatus", lcd.FONT_DejaVu24, 0xFFFFFF, rotate=0)




setScreenColor(0x000000)
DoorStatus.setText('Started')
wait(5)
pin0 = machine.Pin(21, mode=machine.Pin.IN, pull=machine.Pin.PULL_UP)
while True:
  isOpen = pin0.value()
  if isOpen == 0:
    setScreenColor(0xff0000)
    lcd.print('Close', 0, 0, 0x000000)
  else:
    setScreenColor(0x009900)
    lcd.print('Open', 0, 0, 0x000000)
  if 0 == 0:
    try:
      req = urequests.request(method='GET', url=(str('https://api.thingspeak.com/update?api_key=★ここにAPIKeyを入れます★&field1=') + str(isOpen)), headers={})
      lcd.print('Posted', 50, 120, 0x000000)
    except:
      lcd.print('NG', 50, 120, 0x000000)
  wait(5)
  lcd.print('Checking...', 0, 30, 0x000000)
  wait(1)
  wait_ms(2)


苦労したところ

1.ThingSpeakへの送り方が分からなかった
最初は、下記のDataのところに値を入れるようにしたけどうまくいかず。Pythonのコードを見てもDataの項目がはいっていなかったので、HTTPの項目ですべてデータを渡すようにしたらうまくいった。
TS.JPG

2.Pin35,36だとうまくいかなかった
下記の記載を見つけて、Pin21に変更したところうまくいきました。

参考:M5 Stack ハマりどころ

注意して使うポート
GPIO 34-39 入力オンリー
M5 Stack のポートで外に出ている中では 34, 35, 36 だけですが, これらは入力専用で出力が使えません。 また, 内部でPULLUP も出来ない>ので,外付けする必要があります。

参考:M5Stackでできること 〜使用可能なデジタル入力端子

ただし、35, 36は入力専用端子で、これらについては「INPUT_PULLUP」が使えないようです。
今回は、pinModeで「INPUT_PULLUP」にしたいので、これら2ピンも使えません。

その他

初めてのM5Stack,UIFlowだったので試行錯誤で何とか”動くようになった”感じです。
もし間違った点、改良点等ありましたらコメント頂けると助かりますのでよろしくお願いします。

13
14
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?