回答編集履歴

2

testsub.pyの例追加

2021/08/01 08:41

投稿

__horito
__horito

スコア364

test CHANGED
@@ -49,3 +49,63 @@
49
49
  </script>
50
50
 
51
51
  ```
52
+
53
+
54
+
55
+ testsub.pyの例
56
+
57
+ ```python
58
+
59
+
60
+
61
+ #!/usr/bin/env python
62
+
63
+ # coding:utf-8
64
+
65
+ from websocket_server import WebsocketServer
66
+
67
+ from time import sleep
68
+
69
+ import RPi.GPIO as GPIO
70
+
71
+ import time
72
+
73
+
74
+
75
+ GPIO.setmode(GPIO.BCM)
76
+
77
+ GPIO.setup(14, GPIO.OUT)
78
+
79
+ GPIO.setup(27, GPIO.IN, GPIO.PUD_DOWN)
80
+
81
+
82
+
83
+
84
+
85
+ def sendMessage(client, server):
86
+
87
+ while True:
88
+
89
+ if GPIO.input(27) == 0:
90
+
91
+ print("LED消灯中")
92
+
93
+ time.sleep(1)
94
+
95
+
96
+
97
+ elif GPIO.input(27) == 1:
98
+
99
+ print("LED点灯中")
100
+
101
+ time.sleep(1)
102
+
103
+
104
+
105
+ server = WebsocketServer(9002, host="192.168.43.57")
106
+
107
+ server.set_fn_new_client(sendMessage)
108
+
109
+ server.run_forever()
110
+
111
+ ```

1

修正例の提示

2021/08/01 08:41

投稿

__horito
__horito

スコア364

test CHANGED
@@ -1,3 +1,51 @@
1
1
  まずpythonサーバーのポートが被ってますので被らないように設定する必要があります。
2
2
 
3
3
  あとはpythonサーバーを1つにまとめるかJSクライアントを2つにするかですかね。
4
+
5
+
6
+
7
+ JSクライアントを2つにする
8
+
9
+ ```
10
+
11
+ <script>
12
+
13
+ $(function(){
14
+
15
+ var ws1 = new WebSocket("ws://192.168.43.57:9001/");
16
+
17
+ var ws2 = new WebSocket("ws://192.168.43.57:9002/");
18
+
19
+ $('#btn').on('click', function () {
20
+
21
+ if($('#btn').text() == "OFF") {
22
+
23
+ $('#btn').text("ON")
24
+
25
+ ws1.send('led_on');
26
+
27
+ } else {
28
+
29
+ $('#btn').text("OFF")
30
+
31
+ ws1.send('led_off');
32
+
33
+ }
34
+
35
+ });
36
+
37
+
38
+
39
+ ws2.onmessage = function (message) {
40
+
41
+ $('#test').append(message.data);
42
+
43
+ $('#test').css('background-color', 'red');
44
+
45
+ };
46
+
47
+ })
48
+
49
+ </script>
50
+
51
+ ```