/*
            Blink
          
            Turns an LED on for one second, then off for one second, repeatedly.
          
            Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
            it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
            the correct LED pin independent of which board is used.
            If you want to know what pin the on-board LED is connected to on your Arduino
            model, check the Technical Specs of your board at:
            https://www.arduino.cc/en/Main/Products
          
            modified 8 May 2014
            by Scott Fitzgerald
            modified 2 Sep 2016
            by Arturo Guadalupi
            modified 8 Sep 2016
            by Colby Newman
          
            This example code is in the public domain.
          
            https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
          */
          const int sensorPin = 2; //センサのピン番号
          unsigned long previousMillis = 0;
          
          int TRIG = 3;
          int ECHO = 2;
          
          double duration = 0;
          double distance = 0;
          double speed_of_sound = 331.5 + 0.6 * 25; // 25℃の気温の想定
          const long interval = 10000; //データを送信する間隔(ミリ秒)
          
          // the setup function runs once when you press reset or power the board
          void setup() {
            Serial.begin( 9600 );
            pinMode(ECHO, INPUT );
            pinMode(TRIG, OUTPUT );
            // initialize digital pin LED_BUILTIN as an output.
          }
          
          // the loop function runs over and over again forever
          void loop() {
            digitalWrite(TRIG, LOW); 
            delayMicroseconds(2); 
            digitalWrite(TRIG, HIGH);
            delayMicroseconds(10);
            digitalWrite(TRIG, LOW);
            duration = pulseIn(ECHO, HIGH); // 往復にかかった時間が返却される[マイクロ秒]
          
            if (duration > 0) {
              duration = duration / 2; // 往路にかかった時間
              distance = duration * speed_of_sound * 100 / 1000000;
              //Serial.print("Distance:");
              Serial.println(distance);
              //Serial.println(" cm");
          
              unsigned long currentMillis = millis();
          
              if (currentMillis - previousMillis >= interval) {
                previousMillis = currentMillis;
          
                // センサからデータを読み取る
                int sensorValue = analogRead(sensorPin);
          
                // データをシリアルポート経由で送信
                Serial.println(sensorValue);
              }
            }
          
            delay(200);
          }