💭 Project/📐 Lidar-Lite V3
03. Time Stamp
정하요
2022. 8. 28. 01:11
✔️목표
NTP(Network Time Protocol) 서버에서 시간 정보를 가져오기
[TimeStamp][Lidar1] . . [Lidar4] 형태의 데이터 뽑기
✔️Arduino Model
Arduino Uno WiFi Rev2(WiFi 내장 모듈)
⇨ Wire.h에서 충돌이 발생
⇨ Arduino Uno + ESP32 조합으로 변경
✔️ESP32 Code
#include <WiFi.h>
#include "time.h"
#include <Wire.h>
#include <LIDARLite.h>
LIDARLite lidarLite, lidarLite2;
int cal_cnt = 0;
const char* ssid = "myssid";
const char* password = "mypassword";
const char* ntpServer = "pool.ntp.org";
unsigned long epochTime;
unsigned long getTime() {
time_t now;
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
return(0);
}
time(&now);
return now;
}
void initWiFi() {
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi ..");
while (WiFi.status() != WL_CONNECTED) {
Serial.print('.');
delay(1000);
}
Serial.println(WiFi.localIP());
}
void setup() {
Serial.begin(115200);
initWiFi();
configTime(0, 0, ntpServer);
lidarLite.begin(0, true, 0x62);
lidarLite.configure(0, 0x62);
lidarLite.setI2Caddr(0x64, 0x08, 0x62);
Serial.println("initial_1");
delay(5000);
lidarLite2.begin(0, true, 0x62);
lidarLite2.configure(0, 0x62);
Serial.println("initial_2");
}
void loop() {
epochTime = getTime();
Serial.print("Epoch Time: ");
Serial.println(epochTime);
int dist;
int dist2;
if ( cal_cnt == 0 ) {
dist = lidarLite.distance(true, 0x64);
dist2 = lidarLite2.distance(true, 0x62);
} else {
dist = lidarLite.distance(false, 0x64);
dist2 = lidarLite2.distance(false, 0x62);
}
cal_cnt++;
cal_cnt = cal_cnt % 100;
Serial.print("dist1:");
Serial.print(dist);
Serial.println(" cm");
Serial.print("dist2:");
Serial.print(dist2);
Serial.println(" cm");
delay(1000);
}