상세 컨텐츠

본문 제목

IoT 정보를 머신러닝으로 데이터 분석_IoT프로그래밍

AI-VR-AR

by 김일국 2021. 11. 16. 18:51

본문

오늘은 ThingPost 작업예제 8가지를 실습하였습니다.

작업중 중요한 사항만 기록합니다(아래)

esp32 Functional 다이어그램(아래)

출처:http://esp32.net/

1.BH1750test_ThingPost(I2C_시리얼데이터 25핀, I2C_시리얼 통신포트26번핀 사용)

- IIC 통신 초기화 코드: Wire.begin(I2C_SDA, I2C_SCL);

- 전원Vcc digitalWrite(GPIO4번핀,1): 조도센서, 온도/습도센서, 습기센서, 염도센서, 배터리잔량감지회로

 

2.BH1750test2_ThingPost

- RAW데이터를 노이즈제거 후 신뢰성 있는 데이터로 만들기코드(아래)

- 노이즈 제거 샘플링 코드[아래 함수 인자값: sort(배열시작위치, 배열의크기) ]

//1초 안에 2밀리세컨드씩 samples배열크기만큼 값 구하기
for(int i=0; i<samples; i++) {
  array[i] = lightMeter.readLightLevel();
  delay(2);
}
//c언어의 표준라이브러리의 sort 함수로 샘플데이터정렬
std::sort(array, array + samples);
//샘플데이터에서 Max값, Min값제거 후 합계저장
for(int i=0; i<samples; i++) {
  if (i == 0 || i == samples-1)
  continue;
  lux += array[i];
}

- 신뢰성 있는 대표 데이터 만들기(아래)

-- lux /= samples - 2;

 

3.DHT12test_ThingPost

- 아날로그 데이터를 읽어 들일때, 샘플링데이터에 추가되는 코드(아래)

for (int i = 0; i < samples; i++) {
    while (1) {
      float _t12 = 0.0;
      _t12 = dht12.readTemperature();
	//아날로드 데이터 누락시 추가되는 코드(아래)
      if (!isnan(_t12)) {
        array[i] = _t12;
        break;
      }
      delay(100);
    }
    delay(2);
}

 

4.SoilMoistureTest_ThingPost + 5.SoilSaltTest_ThingPost

- 토양습기 데이터를 백분율로 만들기(아래)

#define PERVALUE            0.0244141  //  100/4096
...
mapsoil = map(soil, 0, 4095, 4095, 0);
per_soil = mapsoil * PERVALUE;

 

6.BattADCtest_ThingPost

- 배터리잔량감지는 최고값이 3.3V 이기 때문에, 현재 작동 전압인 3.7V 를 체크할 수 없다, 그래서 회로자체가 병렬로 검사한 결과로 나오기 때문에, 결과값에 x2 를 해 주어야 한다.

- float battery_voltage = ((float)volt / 4095.0) * 2.0 * 3.3 * (vref);

 

7.deepSleep

- esp_deep_sleep_start(); 딥슬립 절전 실행 후 정해진 시간이 지나면 setup() 이 자동으로 실행된다.

 

8.watchDogTimer 구현순서

- esp_task_wdt_init(3, true); //워치독 시작기능을 3초로 초기화

- esp_task_wdt_add(NULL); //현재 프로세스 스레드를 워치독에 등록

- if (millis() - last >= 2000 && i < 5) { //매번2초 지나고, 5번반복 이전일때만 esp_task_wdt_reset(); 실행

- esp_task_wdt_reset(); 실행하면, 2초를 넘지 않게 됨.

- if (i == 5) { //5번 반복되면,  esp_task_wdt_reset(); 을 건너띄기 때문에, 워치독 타임이 리셋되지 않아서 프로세스 리셋됨, 즉, setup() 부터 다시 시작.

- 작업중인 모습(아래)

위 붉은 사각형이 BH1750 조도센서

#다음 시간에는 클라우드 thingspeak 채널로 데이터 연동해서 그래프로 출력하기 실습예정

https://thingspeak.com/channels/1469792

 

ThingPost Smart Sensor - ThingSpeak IoT

This website uses cookies to improve your user experience, personalize content and ads, and analyze website traffic. By continuing to use this website, you consent to our use of cookies. Please see our Privacy Policy to learn more about cookies and how to

thingspeak.com

 

관련글 더보기

댓글 영역