質問編集履歴

3

ソースコード改良

2021/12/19 03:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -12,15 +12,19 @@
12
12
 
13
13
  現状AのLED(親機)は制御できているのですがBのLED(子機)ができておりません。
14
14
 
15
+ シリアルを出力したところ親機側にて子機との通信ができておりません。。
16
+
15
17
  アドバイスをいただきたいです!
16
18
 
17
- ※エラーは出ておりません。
18
-
19
19
  ```
20
20
 
21
- ### 該当のソースコード
21
+ ### 該当のソースコード(追記)
22
+
23
+
24
+
22
-
25
+ 以下ソース
26
+
23
- /*AP親機*/
27
+ /*親機*/
24
28
 
25
29
  #include <ESP8266WiFi.h>
26
30
 
@@ -30,9 +34,9 @@
30
34
 
31
35
  const char *ssid = "LED";
32
36
 
33
- const char *password = "123456789";
37
+ const char *password = "123456789"; //子機
34
-
38
+
35
- const IPAddress ip(192, 168, 4, 1);
39
+ const IPAddress ip(192, 168, 4, 3); //子機
36
40
 
37
41
  const IPAddress subnet(255, 255, 255, 0);
38
42
 
@@ -42,7 +46,7 @@
42
46
 
43
47
  ESP8266WebServer server(80);
44
48
 
45
- WiFiServer Lserver(81);
49
+ WiFiClient client;
46
50
 
47
51
  String form ="<html>"
48
52
 
@@ -78,22 +82,24 @@
78
82
 
79
83
  WiFi.softAP(ssid, password);
80
84
 
81
- IPAddress myIP = WiFi.softAPIP(); //デフォルト192.168.4.1
85
+ IPAddress myIP = WiFi.softAPIP();
82
86
 
83
87
  Serial.print("AP IP address: ");
84
88
 
85
89
  Serial.println(myIP);
86
90
 
91
+ WiFi.begin("BLED","123456789");
92
+
87
93
  server.begin();
88
94
 
89
- Lserver.begin();
90
-
91
95
  server.on("/", handleRoot);
92
96
 
93
97
  server.on("/A_LED",Atika);
94
98
 
95
99
  server.on("/B_LED",Btika);
96
100
 
101
+
102
+
97
103
  Serial.println("HTTP server started");
98
104
 
99
105
 
@@ -142,107 +148,117 @@
142
148
 
143
149
  void B_LED(){
144
150
 
151
+ if(client.connect(ip,80))Serial.println("success");
152
+
145
- WiFiClient client = Lserver.available();
153
+ if(client.connected())Serial.println("success");
146
-
147
- if(client){
154
+
148
-
149
- client.connected();
150
-
151
- if(client.available()){
152
-
153
- BLED = !BLED;
155
+ BLED = !BLED;
154
-
156
+
155
- client.write(BLED);
157
+ client.write(BLED);
156
-
158
+
157
- delay(5000);
159
+ delay(1000);
158
-
160
+
159
- }
161
+ }
162
+
160
-
163
+ /*子機*/
164
+
165
+ #include <ESP8266WiFi.h>
166
+
167
+
168
+
169
+ const char* ssid = "BLED";
170
+
171
+ const char* password = "123456789";
172
+
173
+ const IPAddress ip(192,168,4,3);
174
+
175
+ const IPAddress subnet(255,255,255,0);
176
+
177
+ WiFiServer server(80);
178
+
179
+
180
+
181
+ boolean BLED=false;
182
+
183
+
184
+
185
+ void B_tika();
186
+
187
+
188
+
189
+ void setup() {
190
+
191
+ delay(1000);
192
+
193
+ Serial.begin(115200);
194
+
195
+
196
+
197
+ Serial.println();
198
+
199
+ Serial.println();
200
+
201
+ Serial.print("Connecting to ");
202
+
203
+ Serial.println(ssid);
204
+
205
+
206
+
207
+ WiFi.mode(WIFI_AP);
208
+
161
- }
209
+ delay(100);
210
+
211
+ WiFi.softAP(ssid,password);
212
+
213
+ WiFi.softAPConfig(ip,ip,subnet);
214
+
215
+ IPAddress myIP = WiFi.softAPIP();
216
+
217
+
218
+
219
+ while (WiFi.status() != WL_CONNECTED) {
220
+
221
+ delay(500);
222
+
223
+ Serial.print(".");
162
224
 
163
225
  }
164
226
 
165
227
 
166
228
 
167
- /*STA子機側*/
168
-
169
- #include <ESP8266WiFi.h>
170
-
171
- #define STASSID "LED"
172
-
173
- #define STAPSK "123456789"
174
-
175
- const char* ssid = STASSID;
176
-
177
- const char* password = STAPSK;
178
-
179
- const IPAddress ip(192,168,4,1);
180
-
181
- static WiFiClient client;
182
-
183
-
184
-
185
- void setup() {
186
-
187
- Serial.begin(115200);
188
-
189
- Serial.println();
190
-
191
- Serial.println();
192
-
193
- Serial.print("Connecting to ");
194
-
195
- Serial.println(ssid);
196
-
197
-
198
-
199
- WiFi.mode(WIFI_STA);
200
-
201
- WiFi.begin(ssid, password);
202
-
203
-
204
-
205
- while (WiFi.status() != WL_CONNECTED) {
206
-
207
- delay(500);
208
-
209
- Serial.print(".");
210
-
211
- }
212
-
213
-
214
-
215
229
  Serial.println("");
216
230
 
217
231
  Serial.println("WiFi connected");
218
232
 
219
233
  Serial.println("IP address: ");
220
234
 
221
- Serial.println(WiFi.localIP());
235
+ Serial.println(myIP);
222
-
223
- if(client.connect(ip,81))Serial.println("success");
224
-
225
-
226
236
 
227
237
  pinMode(4, OUTPUT);
228
238
 
229
239
  digitalWrite(4, LOW);
230
240
 
241
+ server.begin();
242
+
231
- }
243
+ }
232
-
233
- boolean BLED=false;
244
+
245
+
234
246
 
235
247
  void loop() {
236
248
 
249
+ B_tika();
250
+
251
+ }
252
+
237
- server.handleClient();
253
+ void B_tika(){
254
+
238
-
255
+ WiFiClient client = server.available();
256
+
239
- if(client.connected()==true){
257
+ client.connected();
240
-
258
+
241
- BLED=client.read();
259
+ BLED=client.read();
242
-
260
+
243
- digitalWrite(4, BLED);
261
+ digitalWrite(4,BLED);
244
-
245
- }
246
262
 
247
263
  }
248
264
 
@@ -250,7 +266,7 @@
250
266
 
251
267
  ### 詳細
252
268
 
253
- 子機と親機が通信できていないためと思われます・・・
269
+
254
270
 
255
271
  ### 補足情報(FW/ツールのバージョンなど)
256
272
 

2

内容の加筆

2021/12/19 03:06

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  お世話になります!
4
4
 
5
- スマホ1台で、2台のesp8266それぞれのLEDを点灯と消灯をさせてみたいです。
5
+ スマホ1台で、WiFiを使用し直接2台のesp8266それぞれのLEDを点灯と消灯をさせてみたいです。
6
6
 
7
7
  具体的には、
8
8
 

1

誤字の訂正

2021/12/18 08:09

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- お世話になります
3
+ お世話になります
4
4
 
5
5
  スマホ1台で、2台のesp8266それぞれのLEDを点灯と消灯をさせてみたいです。
6
6