質問編集履歴

1

詳細の追記

2017/02/20 05:18

投稿

bobby2128
bobby2128

スコア42

test CHANGED
@@ -1 +1 @@
1
- Arduino M0 Pro, ESP-WROOM-02, MILKCOCOA, Arduino IDEのシリアルモニタのプログラム動作のデバック
1
+ Arduino M0 Pro, ESP-WROOM-02, MILKCOCOA, Arduino IDEプログラム動作検証ー
test CHANGED
@@ -1,519 +1,527 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- ここに質問したいことを詳細に書いてください
4
-
5
- (例)PHP(CakePHP)で●●なシステムを作ています。
3
+ ランプ(赤色)が点灯している時、光センサでそれを検知しarduinoとESP-WROOM-02を用いてmilkcocoaへ送信させたいため、プログラムを下記のように成いたしました。点灯していないときも、点灯していない情報を同様にmilkcocoaへ送信させます。
6
-
7
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
8
4
 
9
5
 
10
6
 
11
7
  ###発生している問題・エラーメッセージ
12
8
 
9
+ ①点灯が無い場合のモード(モード0)の全箇所をコメント化した際は、赤ランプが点灯した際にmilkcocoaへランプの点灯情報を送信しました。
10
+
11
+ ②しかし、無点灯のモードに関わるプログラムを有効にし実行すると、(初期状態は無点灯です。)無点灯中は無事にmilkcocoaへ無点灯中の情報を送信するのですが、そこからランプを点灯させると、Arduino IDEのシリアルモニタ上では点灯情報(zennouという変数が4になり)連続的に出力しているにもかかわらず、milkcocoaにはデータが来ていない状態になります。
12
+
13
+ ③その後さらにランプを消灯すると、シリアルモニタ上にはzennou変数が0になり連続的に出力しているのにも関わらず、milkcocoaへはデータが来ていない状態が続きます。
14
+
15
+ ④その後さらにランプを点灯させると、シリアルモニタに「Connecting to MQTT... MQTT Connected!」と表示された後、zennou変数が4とシリアルモニタに連続的に表示された後、不思議とmilkcocoaにデータが送信されるようになります。
16
+
17
+
18
+
19
+ ※④の後消灯すると、シリアルモニタ上にはzennnou変数が0になり無点灯の情報がmilkcocoへ無事に送信されますが、その後は②、③、④を繰り返します。
20
+
21
+
22
+
23
+ 従いまして、奇数回目の点灯は送信されず、偶数回目の点灯は送信されている不思議な状態です。
24
+
25
+
26
+
27
+ 全ての状態を送信したいのですが、何か解決に際して良いアイデアや助言、アドバイスなどございましたらお教えいただけますと幸甚に存じます。
28
+
29
+
30
+
31
+
32
+
33
+ ###該当のソースコード
34
+
35
+ ```c
36
+
37
+ /**
38
+
39
+ * ループ処理
40
+
41
+ */
42
+
43
+ void loop() {
44
+
45
+ // Milkcocoaのループ処理を実行
46
+
47
+ milkcocoa.loop();
48
+
49
+
50
+
51
+ // センサーの値
52
+
53
+ int sensorValue = analogRead(sensorPin);
54
+
55
+ int sensorValue1 = analogRead(sensorPin1);
56
+
57
+ int sensorValue2 = analogRead(sensorPin2);
58
+
59
+ int sensorValue3 = analogRead(sensorPin3);
60
+
61
+ int partscounter = 0;
62
+
63
+ int bluestep = 0;
64
+
65
+ int step1 = 0;
66
+
67
+ int step2 = 0;
68
+
69
+ int STEP = 0;
70
+
71
+ int zennou = 0;
72
+
73
+
74
+
75
+ Serial.print("Sensor Value : ");
76
+
77
+ Serial.println(sensorValue);
78
+
79
+ Serial.print("Sensor Value1 : ");
80
+
81
+ Serial.println(sensorValue1);
82
+
83
+ Serial.print("Sensor Value2 : ");
84
+
85
+ Serial.println(sensorValue2);
86
+
87
+ Serial.print("Sensor Value3 : ");
88
+
89
+ Serial.println(sensorValue3);
90
+
91
+ Serial.print("zennou : ");
92
+
93
+ Serial.println(zennou);
94
+
95
+
96
+
97
+
98
+
99
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
100
+
101
+ /////////////////////////////////////////////////////////↓↓↓赤ランプ点灯判定(モード3)↓↓↓/////////////////////////////////////////////////////////
102
+
103
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
104
+
105
+
106
+
107
+ if(sensorValue3 > threshold3){
108
+
109
+ digitalWrite(AKA,HIGH);
110
+
111
+ digitalWrite(ledPin1, HIGH); //noticeボタン近くのLED点灯
112
+
113
+ nowSensorState3 = true;
114
+
115
+ zennou = 4;
116
+
117
+
118
+
119
+ sensorValue1 = analogRead(sensorPin1);
120
+
121
+ sensorValue2 = analogRead(sensorPin2);
122
+
123
+ sensorValue3 = analogRead(sensorPin3);
124
+
125
+ Serial.print("Sensor Value1 : ");
126
+
127
+ Serial.println(sensorValue1);
128
+
129
+ Serial.print("Sensor Value2 : ");
130
+
131
+ Serial.println(sensorValue2);
132
+
133
+ Serial.print("Sensor Value3 : ");
134
+
135
+ Serial.println(sensorValue3);
136
+
137
+ Serial.print("zennou : ");
138
+
139
+ Serial.println(zennou);
140
+
141
+
142
+
143
+ // Milkcocoaへ送信するデータを作成
144
+
145
+ DataElement elem = DataElement();
146
+
147
+
148
+
149
+ // 各データ名で値を追加
150
+
151
+ elem.setValue("zennou", zennou);
152
+
153
+ elem.setValue("Partscounter", partscounter);
154
+
155
+
156
+
157
+ // Milkcocoaへデータを送信
158
+
159
+ milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
160
+
161
+
162
+
163
+ // 1秒処理を止める
164
+
165
+ delay(1000);
166
+
167
+
168
+
169
+ ///////////////////////////////////////////////////////↑↑↑赤ランプ点灯判定(モード3)↑↑↑/////////////////////////////////////////////////////////
170
+
171
+ /////////////////////////////////////////////////////////↓↓↓赤色ランプ点灯時の動作↓↓↓/////////////////////////////////////////////////////////////
172
+
173
+ // 赤色ランプ点灯している間
174
+
175
+ while(sensorValue3 > threshold3){
176
+
177
+ STEP = 1;
178
+
179
+ if(step1 == 1){
180
+
181
+ zennou = 6;
182
+
183
+ }
184
+
185
+ if(step1 == 0){
186
+
187
+ zennou = 4;
188
+
189
+ }
190
+
191
+
192
+
193
+ sensorValue1 = analogRead(sensorPin1);
194
+
195
+ sensorValue2 = analogRead(sensorPin2);
196
+
197
+ sensorValue3 = analogRead(sensorPin3);
198
+
199
+ Serial.print("Sensor Value1 : ");
200
+
201
+ Serial.println(sensorValue1);
202
+
203
+ Serial.print("Sensor Value2 : ");
204
+
205
+ Serial.println(sensorValue2);
206
+
207
+ Serial.print("Sensor Value3 : ");
208
+
209
+ Serial.println(sensorValue3);
210
+
211
+ Serial.print("zennou : ");
212
+
213
+ Serial.println(zennou);
214
+
215
+ // Milkcocoaへ送信するデータを作成
216
+
217
+ DataElement elem = DataElement();
218
+
219
+
220
+
221
+ // 各データ名で値を追加
222
+
223
+ elem.setValue("zennou", zennou);
224
+
225
+ elem.setValue("Partscounter", partscounter);
226
+
227
+
228
+
229
+ // Milkcocoaへデータを送信
230
+
231
+ milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
232
+
233
+
234
+
235
+ // 1秒処理を止める
236
+
237
+ delay(1000);
238
+
239
+
240
+
241
+ // オペレーターのnotice待ち
242
+
243
+ if(digitalRead(operatornoticebutton) == HIGH){ //operatorがnoticeボタンをONしたら
244
+
245
+ digitalWrite(ledPin1, LOW); //noticeボタン用のライトが消える
246
+
247
+ digitalWrite(ledPin2, HIGH); //finishボタン用のライトを点灯させる
248
+
249
+ step1 = 1;
250
+
251
+ zennou=6;
252
+
253
+
254
+
255
+ sensorValue1 = analogRead(sensorPin1);
256
+
257
+ sensorValue2 = analogRead(sensorPin2);
258
+
259
+ sensorValue3 = analogRead(sensorPin3);
260
+
261
+ Serial.print("Sensor Value1 : ");
262
+
263
+ Serial.println(sensorValue1);
264
+
265
+ Serial.print("Sensor Value2 : ");
266
+
267
+ Serial.println(sensorValue2);
268
+
269
+ Serial.print("Sensor Value3 : ");
270
+
271
+ Serial.println(sensorValue3);
272
+
273
+ Serial.print("zennou : ");
274
+
275
+ Serial.println(zennou);
276
+
277
+
278
+
279
+ // Milkcocoaへ送信するデータを作成
280
+
281
+ DataElement elem = DataElement();
282
+
283
+
284
+
285
+ // lightというデータ名で値を追加
286
+
287
+ elem.setValue("zennou", zennou);
288
+
289
+ elem.setValue("Partscounter", partscounter);
290
+
291
+
292
+
293
+ // Milkcocoaへデータを送信
294
+
295
+ milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
296
+
297
+
298
+
299
+ // 1秒処理を止める
300
+
301
+ delay(1000);
302
+
303
+ }
304
+
305
+
306
+
307
+
308
+
309
+ // オペレーターのnotice後
310
+
311
+ if(zennou == 6 && digitalRead(operatorfinishbutton) == HIGH){ //operatorがfinishボタンをONしたら
312
+
313
+ step2 = 1;
314
+
315
+ zennou = 6;
316
+
317
+ digitalWrite(ledPin2, LOW);
318
+
319
+ digitalWrite(ledPin1, LOW);
320
+
321
+
322
+
323
+ // Milkcocoaへ送信するデータを作成
324
+
325
+ DataElement elem = DataElement();
326
+
327
+
328
+
329
+ // lightというデータ名で値を追加
330
+
331
+ elem.setValue("zennou", zennou);
332
+
333
+ elem.setValue("Partscounter", partscounter);
334
+
335
+
336
+
337
+ // Milkcocoaへデータを送信
338
+
339
+ milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
340
+
341
+
342
+
343
+ // 1秒処理を止める
344
+
345
+ delay(1000);
346
+
347
+
348
+
349
+ }//operatornotice後のif文カッコ閉じ
350
+
351
+ }//赤色ランプ点灯している間
352
+
353
+ sensorValue1 = analogRead(sensorPin1);
354
+
355
+ sensorValue2 = analogRead(sensorPin2);
356
+
357
+ sensorValue3 = analogRead(sensorPin3);
358
+
359
+ Serial.print("Sensor Value1 : ");
360
+
361
+ Serial.println(sensorValue1);
362
+
363
+ Serial.print("Sensor Value2 : ");
364
+
365
+ Serial.println(sensorValue2);
366
+
367
+ Serial.print("Sensor Value3 : ");
368
+
369
+ Serial.println(sensorValue3);
370
+
371
+ Serial.print("zennou : ");
372
+
373
+ Serial.println(zennou);
374
+
375
+
376
+
377
+ STEP = 0;
378
+
379
+ step1 = 0;
380
+
381
+ step2 = 0;
382
+
383
+ nowSensorState3 = false; //赤ランプ点灯終わったらnowSensorState3の状態を更新
384
+
385
+ }//赤ランプ点灯判定 モード3
386
+
387
+
388
+
389
+ digitalWrite(ledPin2, LOW);
390
+
391
+ digitalWrite(ledPin1, LOW);
392
+
393
+ digitalWrite(AKA,LOW);
394
+
395
+ STEP = 0;
396
+
397
+ step1 = 0;
398
+
399
+ step2 = 0;
400
+
401
+ /////////////////////////////////////////////↑↑↑赤色ランプ点灯時の動作↑↑↑//////////////////////////////////////////////////////
402
+
403
+
404
+
405
+ //赤色ランプが点灯していないとき
406
+
407
+ if(sensorValue3<threshold3){
408
+
409
+ nowSensorState3 = false;
410
+
411
+ }
412
+
413
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
414
+
415
+ ////////////////////////////////////////////↑↑↑赤ランプ(モード3)関連のプログラム↑↑↑//////////////////////////////////////////////////
416
+
417
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
418
+
419
+
420
+
421
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
422
+
423
+ ////////////////////////////////////////////↓↓↓何も点灯していないとき点灯判定(モード0)↓↓↓////////////////////////////////////////////
424
+
425
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
426
+
427
+
428
+
429
+ if(sensorValue1 < threshold1 && sensorValue2 < threshold2 && sensorValue3 < threshold3){
430
+
431
+ zennou = 0;
432
+
433
+
434
+
435
+ while(sensorValue1 < threshold1 && sensorValue2 < threshold2 && sensorValue3 < threshold3){ //無点灯の間
436
+
437
+ sensorValue1 = analogRead(sensorPin1);
438
+
439
+ sensorValue2 = analogRead(sensorPin2);
440
+
441
+ sensorValue3 = analogRead(sensorPin3);
442
+
443
+ Serial.print("Sensor Value1 : ");
444
+
445
+ Serial.println(sensorValue1);
446
+
447
+ Serial.print("Sensor Value2 : ");
448
+
449
+ Serial.println(sensorValue2);
450
+
451
+ Serial.print("Sensor Value3 : ");
452
+
453
+ Serial.println(sensorValue3);
454
+
455
+ Serial.print("zennou : ");
456
+
457
+ Serial.println(zennou);
458
+
459
+
460
+
461
+ // Milkcocoaへ送信するデータを作成
462
+
463
+ DataElement elem = DataElement();
464
+
465
+
466
+
467
+ // 各データ名で値を追加
468
+
469
+ elem.setValue("zennou", zennou);
470
+
471
+ elem.setValue("Partscounter", partscounter);
472
+
473
+
474
+
475
+ // Milkcocoaへデータを送信
476
+
477
+ milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
478
+
479
+
480
+
481
+ // 1秒処理を止める
482
+
483
+ delay(1000);
484
+
485
+ }//無点灯を続けている限り
486
+
487
+ }//もし何も点灯していないとき。
488
+
489
+ ////////////////////////////////////////////↑↑↑何も点灯していないとき点灯判定(モード0)↑↑↑////////////////////////////////////////////////////
490
+
491
+ }//loop文のカッコ閉じ
492
+
493
+
494
+
495
+
496
+
497
+ /*
498
+
499
+ * Milkcocoaへ光センサーの値がpushされた
500
+
501
+ */
502
+
503
+ void milkcocoaPushDataHandler(DataElement *pelem) {
504
+
505
+ // 明るさの状態を更新
506
+
507
+ sensorState1 = nowSensorState1;
508
+
509
+ sensorState2 = nowSensorState2;
510
+
511
+ sensorState3 = nowSensorState3;
512
+
513
+ }
514
+
13
515
 
14
516
 
15
517
  ```
16
518
 
17
- エラーメッセージ
18
-
19
- ```
20
-
21
-
22
-
23
- ###該当のソースコード
24
-
25
- ```ここに言語を入力
26
-
27
- /**
28
-
29
- * ループ処理
30
-
31
- */
32
-
33
- void loop() {
34
-
35
- // Milkcocoaのループ処理を実行
36
-
37
- milkcocoa.loop();
38
-
39
-
40
-
41
- // センサーの値
42
-
43
- int sensorValue = analogRead(sensorPin);
44
-
45
- int sensorValue1 = analogRead(sensorPin1);
46
-
47
- int sensorValue2 = analogRead(sensorPin2);
48
-
49
- int sensorValue3 = analogRead(sensorPin3);
50
-
51
- int partscounter = 0;
52
-
53
- int bluestep = 0;
54
-
55
- int step1 = 0;
56
-
57
- int step2 = 0;
58
-
59
- int STEP = 0;
60
-
61
- int zennou = 0;
62
-
63
-
64
-
65
- Serial.print("Sensor Value : ");
66
-
67
- Serial.println(sensorValue);
68
-
69
- Serial.print("Sensor Value1 : ");
70
-
71
- Serial.println(sensorValue1);
72
-
73
- Serial.print("Sensor Value2 : ");
74
-
75
- Serial.println(sensorValue2);
76
-
77
- Serial.print("Sensor Value3 : ");
78
-
79
- Serial.println(sensorValue3);
80
-
81
- Serial.print("zennou : ");
82
-
83
- Serial.println(zennou);
84
-
85
-
86
-
87
-
88
-
89
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
90
-
91
- /////////////////////////////////////////////////////////↓↓↓赤ランプ点灯判定(モード3)↓↓↓/////////////////////////////////////////////////////////
92
-
93
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
94
-
95
-
96
-
97
- if(sensorValue3 > threshold3){
98
-
99
- digitalWrite(AKA,HIGH);
100
-
101
- digitalWrite(ledPin1, HIGH); //noticeボタン近くのLED点灯
102
-
103
- nowSensorState3 = true;
104
-
105
- zennou = 4;
106
-
107
-
108
-
109
- sensorValue1 = analogRead(sensorPin1);
110
-
111
- sensorValue2 = analogRead(sensorPin2);
112
-
113
- sensorValue3 = analogRead(sensorPin3);
114
-
115
- Serial.print("Sensor Value1 : ");
116
-
117
- Serial.println(sensorValue1);
118
-
119
- Serial.print("Sensor Value2 : ");
120
-
121
- Serial.println(sensorValue2);
122
-
123
- Serial.print("Sensor Value3 : ");
124
-
125
- Serial.println(sensorValue3);
126
-
127
- Serial.print("zennou : ");
128
-
129
- Serial.println(zennou);
130
-
131
-
132
-
133
- // Milkcocoaへ送信するデータを作成
134
-
135
- DataElement elem = DataElement();
136
-
137
-
138
-
139
- // 各データ名で値を追加
140
-
141
- elem.setValue("zennou", zennou);
142
-
143
- elem.setValue("Partscounter", partscounter);
144
-
145
-
146
-
147
- // Milkcocoaへデータを送信
148
-
149
- milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
150
-
151
-
152
-
153
- // 1秒処理を止める
154
-
155
- delay(1000);
156
-
157
-
158
-
159
- ///////////////////////////////////////////////////////↑↑↑赤ランプ点灯判定(モード3)↑↑↑/////////////////////////////////////////////////////////
160
-
161
- /////////////////////////////////////////////////////////↓↓↓赤色ランプ点灯時の動作↓↓↓/////////////////////////////////////////////////////////////
162
-
163
- // 赤色ランプ点灯している間
164
-
165
- while(sensorValue3 > threshold3){
166
-
167
- STEP = 1;
168
-
169
- if(step1 == 1){
170
-
171
- zennou = 6;
172
-
173
- }
174
-
175
- if(step1 == 0){
176
-
177
- zennou = 4;
178
-
179
- }
180
-
181
-
182
-
183
- sensorValue1 = analogRead(sensorPin1);
184
-
185
- sensorValue2 = analogRead(sensorPin2);
186
-
187
- sensorValue3 = analogRead(sensorPin3);
188
-
189
- Serial.print("Sensor Value1 : ");
190
-
191
- Serial.println(sensorValue1);
192
-
193
- Serial.print("Sensor Value2 : ");
194
-
195
- Serial.println(sensorValue2);
196
-
197
- Serial.print("Sensor Value3 : ");
198
-
199
- Serial.println(sensorValue3);
200
-
201
- Serial.print("zennou : ");
202
-
203
- Serial.println(zennou);
204
-
205
- // Milkcocoaへ送信するデータを作成
206
-
207
- DataElement elem = DataElement();
208
-
209
-
210
-
211
- // 各データ名で値を追加
212
-
213
- elem.setValue("zennou", zennou);
214
-
215
- elem.setValue("Partscounter", partscounter);
216
-
217
-
218
-
219
- // Milkcocoaへデータを送信
220
-
221
- milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
222
-
223
-
224
-
225
- // 1秒処理を止める
226
-
227
- delay(1000);
228
-
229
-
230
-
231
- // オペレーターのnotice待ち
232
-
233
- if(digitalRead(operatornoticebutton) == HIGH){ //operatorがnoticeボタンをONしたら
234
-
235
- digitalWrite(ledPin1, LOW); //noticeボタン用のライトが消える
236
-
237
- digitalWrite(ledPin2, HIGH); //finishボタン用のライトを点灯させる
238
-
239
- step1 = 1;
240
-
241
- zennou=6;
242
-
243
-
244
-
245
- sensorValue1 = analogRead(sensorPin1);
246
-
247
- sensorValue2 = analogRead(sensorPin2);
248
-
249
- sensorValue3 = analogRead(sensorPin3);
250
-
251
- Serial.print("Sensor Value1 : ");
252
-
253
- Serial.println(sensorValue1);
254
-
255
- Serial.print("Sensor Value2 : ");
256
-
257
- Serial.println(sensorValue2);
258
-
259
- Serial.print("Sensor Value3 : ");
260
-
261
- Serial.println(sensorValue3);
262
-
263
- Serial.print("zennou : ");
264
-
265
- Serial.println(zennou);
266
-
267
-
268
-
269
- // Milkcocoaへ送信するデータを作成
270
-
271
- DataElement elem = DataElement();
272
-
273
-
274
-
275
- // lightというデータ名で値を追加
276
-
277
- elem.setValue("zennou", zennou);
278
-
279
- elem.setValue("Partscounter", partscounter);
280
-
281
-
282
-
283
- // Milkcocoaへデータを送信
284
-
285
- milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
286
-
287
-
288
-
289
- // 1秒処理を止める
290
-
291
- delay(1000);
292
-
293
- }
294
-
295
-
296
-
297
-
298
-
299
- // オペレーターのnotice後
300
-
301
- if(zennou == 6 && digitalRead(operatorfinishbutton) == HIGH){ //operatorがfinishボタンをONしたら
302
-
303
- step2 = 1;
304
-
305
- zennou = 6;
306
-
307
- digitalWrite(ledPin2, LOW);
308
-
309
- digitalWrite(ledPin1, LOW);
310
-
311
-
312
-
313
- // Milkcocoaへ送信するデータを作成
314
-
315
- DataElement elem = DataElement();
316
-
317
-
318
-
319
- // lightというデータ名で値を追加
320
-
321
- elem.setValue("zennou", zennou);
322
-
323
- elem.setValue("Partscounter", partscounter);
324
-
325
-
326
-
327
- // Milkcocoaへデータを送信
328
-
329
- milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
330
-
331
-
332
-
333
- // 1秒処理を止める
334
-
335
- delay(1000);
336
-
337
-
338
-
339
- }//operatornotice後のif文カッコ閉じ
340
-
341
- }//赤色ランプ点灯している間
342
-
343
- sensorValue1 = analogRead(sensorPin1);
344
-
345
- sensorValue2 = analogRead(sensorPin2);
346
-
347
- sensorValue3 = analogRead(sensorPin3);
348
-
349
- Serial.print("Sensor Value1 : ");
350
-
351
- Serial.println(sensorValue1);
352
-
353
- Serial.print("Sensor Value2 : ");
354
-
355
- Serial.println(sensorValue2);
356
-
357
- Serial.print("Sensor Value3 : ");
358
-
359
- Serial.println(sensorValue3);
360
-
361
- Serial.print("zennou : ");
362
-
363
- Serial.println(zennou);
364
-
365
-
366
-
367
- STEP = 0;
368
-
369
- step1 = 0;
370
-
371
- step2 = 0;
372
-
373
- nowSensorState3 = false; //赤ランプ点灯終わったらnowSensorState3の状態を更新
374
-
375
- }//赤ランプ点灯判定 モード3
376
-
377
-
378
-
379
- digitalWrite(ledPin2, LOW);
380
-
381
- digitalWrite(ledPin1, LOW);
382
-
383
- digitalWrite(AKA,LOW);
384
-
385
- STEP = 0;
386
-
387
- step1 = 0;
388
-
389
- step2 = 0;
390
-
391
- /////////////////////////////////////////////↑↑↑赤色ランプ点灯時の動作↑↑↑//////////////////////////////////////////////////////
392
-
393
-
394
-
395
- //赤色ランプが点灯していないとき
396
-
397
- if(sensorValue3<threshold3){
398
-
399
- nowSensorState3 = false;
400
-
401
- }
402
-
403
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
404
-
405
- ////////////////////////////////////////////↑↑↑赤ランプ(モード3)関連のプログラム↑↑↑//////////////////////////////////////////////////
406
-
407
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
408
-
409
-
410
-
411
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
412
-
413
- ////////////////////////////////////////////↓↓↓何も点灯していないとき点灯判定(モード0)↓↓↓////////////////////////////////////////////
414
-
415
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
416
-
417
-
418
-
419
- if(sensorValue1 < threshold1 && sensorValue2 < threshold2 && sensorValue3 < threshold3){
420
-
421
- zennou = 0;
422
-
423
-
424
-
425
- while(sensorValue1 < threshold1 && sensorValue2 < threshold2 && sensorValue3 < threshold3){ //無点灯の間
426
-
427
- sensorValue1 = analogRead(sensorPin1);
428
-
429
- sensorValue2 = analogRead(sensorPin2);
430
-
431
- sensorValue3 = analogRead(sensorPin3);
432
-
433
- Serial.print("Sensor Value1 : ");
434
-
435
- Serial.println(sensorValue1);
436
-
437
- Serial.print("Sensor Value2 : ");
438
-
439
- Serial.println(sensorValue2);
440
-
441
- Serial.print("Sensor Value3 : ");
442
-
443
- Serial.println(sensorValue3);
444
-
445
- Serial.print("zennou : ");
446
-
447
- Serial.println(zennou);
448
-
449
-
450
-
451
- // Milkcocoaへ送信するデータを作成
452
-
453
- DataElement elem = DataElement();
454
-
455
-
456
-
457
- // 各データ名で値を追加
458
-
459
- elem.setValue("zennou", zennou);
460
-
461
- elem.setValue("Partscounter", partscounter);
462
-
463
-
464
-
465
- // Milkcocoaへデータを送信
466
-
467
- milkcocoa.push(MILKCOCOA_DATASTORE, &elem);
468
-
469
-
470
-
471
- // 1秒処理を止める
472
-
473
- delay(1000);
474
-
475
- }//無点灯を続けている限り
476
-
477
- }//もし何も点灯していないとき。
478
-
479
- ////////////////////////////////////////////↑↑↑何も点灯していないとき点灯判定(モード0)↑↑↑////////////////////////////////////////////////////
480
-
481
- }//loop文のカッコ閉じ
482
-
483
-
484
-
485
-
486
-
487
- /*
488
-
489
- * Milkcocoaへ光センサーの値がpushされた
490
-
491
- */
492
-
493
- void milkcocoaPushDataHandler(DataElement *pelem) {
494
-
495
- // 明るさの状態を更新
496
-
497
- sensorState1 = nowSensorState1;
498
-
499
- sensorState2 = nowSensorState2;
500
-
501
- sensorState3 = nowSensorState3;
502
-
503
- }
504
-
505
-
506
-
507
- ```
508
-
509
-
510
-
511
- ###試したこと
512
-
513
- 課題に対してアプローチしたことを記載してください
514
-
515
519
 
516
520
 
517
521
  ###補足情報(言語/FW/ツール等のバージョンなど)
518
522
 
523
+ Arduino IDE 1.8.0
524
+
525
+ Arduino M0Pro
526
+
519
- より詳細な情報
527
+ ESP-WROOM-02