teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

更新

2020/03/25 07:25

投稿

raspypy
raspypy

スコア247

title CHANGED
@@ -1,1 +1,1 @@
1
- Python Heroku Raspi Lチカ
1
+ Python Heroku Lチカ
body CHANGED
@@ -26,67 +26,4 @@
26
26
 
27
27
  ##GPIO動作を伴う場合 (困っているところ)
28
28
  LINEから「点灯」または「消灯」と送信すると、LEDが「点灯」または「消灯」しますが、
29
- このときにエラーが発生してしまいます。「点灯」と送った時のログは、次の通りです。
30
-
31
- **今回の構成 Raspberry pi ⇔ Heroku ⇔ LINE**で、
32
- LINEから、Raspberry piのGPIOを動作させることは不可能なのでしょうか。
33
-
34
- ```text
35
- 2020-01-06T03:36:05.095931+00:00 app[web.1]: Traceback (most recent call last):
36
- 2020-01-06T03:36:05.097434+00:00 app[web.1]: File "LED_ON.py", line 10, in <module>
37
- 2020-01-06T03:36:05.097499+00:00 app[web.1]: import RPi.GPIO as GPIO
38
- 2020-01-06T03:36:05.097530+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/RPi/GPIO/__init__.py", line 23, in <module>
39
- 2020-01-06T03:36:05.097781+00:00 app[web.1]: from RPi._GPIO import *
40
- 2020-01-06T03:36:05.097871+00:00 app[web.1]: RuntimeError: This module can only be run on a Raspberry Pi!
41
- 2020-01-06T03:36:05.107940+00:00 app[web.1]: [2020-01-06 03:36:05,107] ERROR in app: Exception on /callback [POST]
42
- 2020-01-06T03:36:05.107944+00:00 app[web.1]: Traceback (most recent call last):
43
- 2020-01-06T03:36:05.107946+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 2292, in wsgi_app
44
- 2020-01-06T03:36:05.107949+00:00 app[web.1]: response = self.full_dispatch_request()
45
- 2020-01-06T03:36:05.107952+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
46
- 2020-01-06T03:36:05.107954+00:00 app[web.1]: rv = self.handle_user_exception(e)
47
- 2020-01-06T03:36:05.107955+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1718, in handle_user_exception
48
- 2020-01-06T03:36:05.107958+00:00 app[web.1]: reraise(exc_type, exc_value, tb)
49
- 2020-01-06T03:36:05.107960+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
50
- 2020-01-06T03:36:05.107962+00:00 app[web.1]: rv = self.dispatch_request()
51
- 2020-01-06T03:36:05.107964+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1799, in dispatch_request
52
- 2020-01-06T03:36:05.107967+00:00 app[web.1]: return self.view_functions[rule.endpoint](**req.view_args)
53
- 2020-01-06T03:36:05.107969+00:00 app[web.1]: File "app.py", line 74, in callback
54
- 2020-01-06T03:36:05.107971+00:00 app[web.1]: handler.handle(body, signature)
55
- 2020-01-06T03:36:05.107973+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/linebot/webhook.py", line 260, in handle
56
- 2020-01-06T03:36:05.107975+00:00 app[web.1]: func(event)
57
- 2020-01-06T03:36:05.107977+00:00 app[web.1]: File "app.py", line 117, in handle_postback
58
- 2020-01-06T03:36:05.107979+00:00 app[web.1]: subprocess.check_call(['python','LED_ON.py'])
59
- 2020-01-06T03:36:05.107981+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/subprocess.py", line 190, in check_call
60
- 2020-01-06T03:36:05.107983+00:00 app[web.1]: raise CalledProcessError(retcode, cmd)
61
- 2020-01-06T03:36:05.107985+00:00 app[web.1]: CalledProcessError: Command '[u'python', u'LED_ON.py']' returned non-zero exit status 1
62
- 2020-01-06T03:36:05.109608+00:00 app[web.1]: 10.63.60.103 - - [06/Jan/2020 03:36:05] "POST /callback HTTP/1.1" 500 -
63
- 2020-01-06T03:36:05.114140+00:00 heroku[router]: at=info method=POST path="/callback" host=remote-plc.herokuapp.com request_id=219d1fa7-b0f5-48f3-b7f9-95188a6e2c53 fwd="147.92.149.169" dyno=web.1 connect=0ms service=93ms status=500 bytes=450 protocol=https
64
- ```
65
-
66
- ##プログラムコード(一部)
67
- ```python
68
- @handler.add(PostbackEvent)
69
- def handle_postback(event):
70
- if event.postback.data == '点灯':
71
- subprocess.check_call(['python','LpikaON.py'])
72
- line_bot_api.reply_message(
73
- event.reply_token, TextSendMessage(text='点灯しました。'))
74
- elif event.postback.data == '消灯':
75
- subprocess.check_call(['python','LpikaOFF.py'])
76
- line_bot_api.reply_message(
77
- event.reply_token, TextSendMessage(text='消灯しました。'))
78
-
79
-
80
- if __name__ == "__main__":
81
- arg_parser = ArgumentParser(
82
- usage='Usage: python ' + __file__ + ' [--port <port>] [--help]'
83
- )
84
- arg_parser.add_argument('-p', '--port', default=8000, help='port')
85
- arg_parser.add_argument('-d', '--debug', default=False, help='debug')
86
- options = arg_parser.parse_args()
87
-
88
- # create tmp dir for download content
89
- make_static_tmp_dir()
90
-
91
- app.run(debug=options.debug, port=options.port)
92
- ```
29
+ このときにエラーが発生してしまいます。「点灯」と送った時のログは、次の通りです。

1

プログラムコードを追加しました。

2020/03/25 07:25

投稿

raspypy
raspypy

スコア247

title CHANGED
File without changes
body CHANGED
@@ -61,4 +61,32 @@
61
61
  2020-01-06T03:36:05.107985+00:00 app[web.1]: CalledProcessError: Command '[u'python', u'LED_ON.py']' returned non-zero exit status 1
62
62
  2020-01-06T03:36:05.109608+00:00 app[web.1]: 10.63.60.103 - - [06/Jan/2020 03:36:05] "POST /callback HTTP/1.1" 500 -
63
63
  2020-01-06T03:36:05.114140+00:00 heroku[router]: at=info method=POST path="/callback" host=remote-plc.herokuapp.com request_id=219d1fa7-b0f5-48f3-b7f9-95188a6e2c53 fwd="147.92.149.169" dyno=web.1 connect=0ms service=93ms status=500 bytes=450 protocol=https
64
+ ```
65
+
66
+ ##プログラムコード(一部)
67
+ ```python
68
+ @handler.add(PostbackEvent)
69
+ def handle_postback(event):
70
+ if event.postback.data == '点灯':
71
+ subprocess.check_call(['python','LpikaON.py'])
72
+ line_bot_api.reply_message(
73
+ event.reply_token, TextSendMessage(text='点灯しました。'))
74
+ elif event.postback.data == '消灯':
75
+ subprocess.check_call(['python','LpikaOFF.py'])
76
+ line_bot_api.reply_message(
77
+ event.reply_token, TextSendMessage(text='消灯しました。'))
78
+
79
+
80
+ if __name__ == "__main__":
81
+ arg_parser = ArgumentParser(
82
+ usage='Usage: python ' + __file__ + ' [--port <port>] [--help]'
83
+ )
84
+ arg_parser.add_argument('-p', '--port', default=8000, help='port')
85
+ arg_parser.add_argument('-d', '--debug', default=False, help='debug')
86
+ options = arg_parser.parse_args()
87
+
88
+ # create tmp dir for download content
89
+ make_static_tmp_dir()
90
+
91
+ app.run(debug=options.debug, port=options.port)
64
92
  ```