2020년 6월 14일 일요일

(old) Tinkable IoT 키트 V3.1 그림 사용 설명서

1. 바로 사용하기

Tinkable IoT 키트는 ESP8266 보드, Tinkable 쉴드, 그리고 조도센서, 온습도세서, 단색OLED, 터치버튼이 미리 조립되어 있습니다. Tinkable IoT 키트는 지원하는 I2C 센서와 D7 핀에 연결된 버튼 센서는 자동으로 인식합니다. 다음과 같이 조도센서(BH1740, GY302), 온습도기압센서(BME280), 1인치 단색 OLED 화면, 터치버튼을 연결하면 I2C로 연결되어 있는 조도센서, 온습도 센서, 1인치 단색 OLED 화면, 그리고 D7에 연결된 터치 버튼을 바로 사용할 수 있습니다. 다음은 키트에 microUSB 케이블로 전원을 공급하고 약간의 시간이 지난 뒤의 모습입니다. 조도, 온도, 기압이 화면에 표시중입니다.

[그림1] Tinkable IoT 키트를 켠 모습

한 화면에 3개 항목만 표시되므로 터치 버튼을 한번 천천히 누르면 다음 화면이 표시됩니다. 시간이 지나면 화면이 꺼집니다. 이 때도 터치 버튼을 누르면 화면이 다시 켜집니다.

[그림2] 터치 버튼을 클릭한 후

전원이 부족하면 키트가 정상적으로 동작하지 않습니다. PC의 경우 파란색 USB3.1 단자가 USB2.0 단자보다 더 안정적입니다. PC의 USB 포트보다 핸드폰 충전기의 전원이 더 안정적입니다. 휴대폰용 배터리를 사용하는 경우에는 좋은 배터리와 좋은 케이블을 사용하시기 바랍닏.ㅏ

2. data.tinkabe.net에 기기 등록하기

https://data.tinkable.net 을 방문하여 회원가입 후에 로그인해주시기 바랍니다. GOOGLE로 가입하면 별도의 전자우편 인증을 하지 않아도 되므로 편리합니다. 로그인한 다음에 "Device List" 화면에서 "Register Device" 탭을 눌러줍니다. 우측 상단의 메뉴에서 "내 기기 등록"으로 접근할 수 있습니다.

[그림3] 기기 등록 웹페이지로 가기

기기를 등록하려면 시리얼번호와 인증코드가 필요합니다. 시리얼번호와 인증코드는 키트 하단에 적혀 있습니다.

[그림4] 키트 하단의 시리얼 번호와 인증코드

다음과 같이 시리얼번호와 인증코드를 입력하고 새기기 등록하기 버튼을 눌러줍니다.

[그림4] 기기 등록 웹페이지

새기기 등록이 되면 다음과 같이 기기 기본 정보 수정 화면(Intro)으로 이동합니다. MAC 주소, MAC 주소 사용여부, 센서목록응답 부분을 살펴봅니다. 여러분이 입력한 시리얼 번호에는 미리 Tinkable IoT 키트의 MAC 주소가 미리 등록되어 있어 그 MAC 주소가 표시됩니다. MAC 주소 사용여부를 기본값인 사용(응답함)으로 그대로 두면 Tinkabe IoT 키트에서 MAC 주소를 사용하여 data.tinkable.net에 접속할 수 있는 접속코드(accessCode)를 가져가서 사용할 수 있습니다. 그리고 센서목록응답 부분도 그대로 사용(응답함)으로 두면 Tinkable IoT 키트에서 접속코드를 사용하여 data.tinkable.net에 설정된 센서 정보를 가져가서 센서를 생성활 수 있습니다. 지도보기를 두번 누르면 구글 지도가 표시되고 키워드 검색으로 원하는 지역으로 이동한 다음에 지도에 원하는 부분을 클릭하면 해당 위치가 기기의 위치가 됩니다. 기기에 대한 설명을 적고 기기정보 저장하기를 누르면 기기 정보가 저장됩니다.

[그림5] 기기 개요 웹페이지

상단의 accessCode 탭을 누르면 여러분이 등록한 기기의 시리얼번호와 자동으로 생성된 접속코드(Access Code)가 있습니다. MAC 주소를 사용하여 접속 코드를 받지 않는 경우에는 Tinkable IoT 기기의 설정에 이 접속 코드를 적어줘야 합니다. 접속코드가 누출된 경우에는 접속코드 바꾸기를 통해서 접속코드를 변경할 수 있습니다. 지금은 아무런 작업을 하지 않고 그대로 둡니다.

[그림6] 기기 접속코드 웹페이지

3. data.tinkable.net에서 센서 설정하기

이제 상단의 Sensors 탭을 눌러서 센서를 설정해봅시다. Add New Sensor에서 먼저 BME280 (온도, 기압, 습도)를 선택하여 미리 정의된 센서 설정을 불러옵니다. bme280이름의 센서에는 형식이 float인 temp, baro, humi인 값이 설정되어 있습니다. 수정 없이 그대로 추가하기 버튼을 눌러봅니다.

[그림7] 센서 설정하기

다음으로 Add New Sensor를 눌러서 이번에는 BH1750 (조도)를 선택하고 추가하기 버튼을 누릅니다. 마지막으로 Button(버튼)을 선택하고 추가하기 버튼을 누릅니다. 스크롤해보면 아래에 추가된 센서가 보입니다. + 버튼을 눌러서 자세한 정보를 볼 수 있고 설정을 수정한 다음에 Save 버튼을 눌러서 저장할 수도 있습니다.

[그림8] 센서 추가 결과

마지막으로 이제 상단의 Upload Off를 눌러서 Upload On으로 바꾸어줍니다. On으로 켜져있어야 Tinkable IoT 기기에서 보내는 데이터를 받을 수 있습니다.

4. Tinkable IoT 기기 설정하기

접속코드나 설정된 센서 정보는 Tinkable IoT 기기에서 등록된 MAC 주소를 사용하여 자동으로 가져오므로 따로 설정할 필요가 없습니다. 설정이 필요한 유일한 부분은 Tinkable IoT 기기가 연결될 WiFi의 SSID와 비밀번호입니다.

Tinkable IoT 기기에서 microUSB 케이블을 뽑아서 끕니다. 그리고, Tinkable IoT 기기에서 D0 핀과 GND(0V) 핀을 2.54mm male-male 케이블을 사용하여 연결합니다. 오른쪽 위의 8핀 헤더에서 오른쪽에서 세번째, 아래쪽 가운데의 8핀 헤더에서 오른쪽에서 세번째 입니다. 이렇게 연결하고 Tinkable IoT 보드에 전원을 다시 공급하면 화면에는 다음과 같이 "1. connnect WiFi tink_6967D2. PW is issmart! 2. visit con.tinkable.net"이라고 표시됩니다. tink_6967D2에서 6967D2는 키트마다 달라집니다.

[그림9] D0핀과 GND 핀 연결하기

핸드폰이나 PC를 사용하여 화면에 표시된 WiFi에 연결을 합니다.

[그림10] Tink_로 시작하는 WiFi 연결하기

WiFi가 연결된 뒤에 인터넷 없음으로 나와도 정상입니다.

[그림11] Tink_로 시작하는 WiFi 연결 성공

핸드폰이나 PC에서 tinkable IoT 키트가 제공하는 WiFi에 연결되었으면 이제 웹브라우저를 실행하여(크롬 추천) 주소 칸에 http://con.tinkable.net이라고 입력하면 다음 웹페이지가 표시됩니다. 만일 접속이 안되면 http://192.168.4.1이라고 입력해보시기 바랍니다.

[그림12] Tinkable IoT 키트 설정 페이지

+ 버튼을 누르면 상세설정이 펼쳐집니다.

[그림13] Tinkable IoT 키트 상세 설정 페이지

여기서는 Tinkable IoT 키트가 연결될 WiFi의 SSID와 패스워드를 입력합니다. 저는 사무실 WiFi가 pubpub이고 비밀번호가 issmart!라서 그렇게 입력했습니다. SSID는 한글을 사용할 수 없고 한글, 숫자, _만 사용할 수 있습니다. 비밀번호는 영문, 숫자, 기호를 모두 사용해야 합니다. 비밀번호가 없으면 지정하지 않아도 됩니다. 혹시 사용중인 WiFi의 SSID와 패스워드가 형식에 맞지 않는 경우에는 변경해야 합니다. WiFi가 없는 경우에는 핸드폰의 테더링을 사용하면 됩니다.

WIFI_AUTO 모드는 WiFi 연결이 되면 데이터를 전송하고 안되면 그냥 화면에 측정 값을 표시하는 모드입니다. 데이터 전송 간격은 서버로 측정한 데이터를 보내는 간격으로 단위는 1/1000 초입니다. 기본값인 60만을 그대로 두면 600초, 즉 10분에 1번 데이터를 전송합니다. 최소값은 6만 이라서 데이터 전송은 1분에 1번만 가능합니다.

Tinkable IoT 기기가 연결될 WiFi SSID와 패스워드를 입력했으면 설정 저장하기 버튼을 누릅니다. 그러면 다음과 같이 설정 저장 결과 페이지가 표시됩니다.

[그림14] Tinkable IoT 키트 설정 저장 결과
[그림15] Tinkable IoT 키트 설정 저장 결과

이제 Tinkable IoT 키트가 껏다켜지는 데 D0-GND가 연결되어 있으면 계속 설정 모드로 동작하므로 D0-GND를 연결한 케이블을 제거합니다. 혹시 다시 또 파라미터 설정 모드로 들어갔으면 D0-GND를 연결한 케이블을 제거하고 microUSB 케이블을 뽑았다 꽂아서 껏다 켜시면 됩니다.

이제 Tinkable IoT 키트는 켜지면서 설정에서 입력한 SSID와 패스워드로 인터넷에 연결합니다.

[그림16] WiFi 연결하는 중

이제 WiFi에 연결되면 시간을 가져와서 우측 상단에 표시하고, 자동으로 센서 데이터를 서버로 전송합니다. 터치 버튼을 더블클릭하면 최종 데이터 전송 시간, 에러 시간, 에러 코드를 확인할 수 있습니다. 다음은 data.tinkable.net에서 기기 설정할 때 Upload를 On으로 하지 않은 경우입니다. 에러 코드가 -8로 표시되어 있습니다. 버튼을 한번 더 클릭하면 센서 측정 데이터를 표시하는 화면으로 돌아옵니다.

[그림17] 버튼을 더블 클릭해서 데이터 전송 상황 확인하기

5. data.tinkable.net에서 전송된 데이터 확인하기

Tinkable IoT 키트에서 데이터를 전송하면 data.tinkable.net 웹페이지의 intro 화면에서 우측 상단에 노란색으로 Updating이라고 표시됩니다. 그리고 센서 정보 부분에서 저장된 데이터 줄 수가 늘어나고 왼쪽에는 센서에서 측정한 최종값이 실시간 티커로 표시됩니다. 화면은 실시간으로 자동 반영되므로 다시 읽을 필요가 없습니다.

[그림18] 데이터가 전송된 후의 기기 개요 화면

이제 센서 정보나 센서 티커에서 센서를 클릭하여 센서 화면으로 이동해봅시다. List 탭에는 전송된 데이터가 표로, Graph 탭에는 그래프로 표시됩니다.

[그림19] 센서 데이터 표
[그림20] 센서 그래프

지나치게 많은 데이터가 쌓이면 데이터 분석이 어렵습니다. 지금은 데이터 줄 수에 제한이 없지만 향후 제한이 생길 수도 있습니다. 여기서는 테스트를 위해서 전송간격을 1분으로 했지만 테스트 후에 정상적으로 동작하면 D0와 GND를 케이블로 연결하고 IoT 키트를 껐다가 켜서 설정 모드로 들어가서 데이터 전송 간격은 10분 혹은 1시간 정도로 수정하는 것이 좋습니다.

6. CO2 센서 추가하기

data.tinkable.net의 기기 페이지의 센서 탭에서 Add New Sensor를 눌러서 S8(CO2)를 선택한 후에 추가하기 버튼을 눌러서 C02 센서를 추가합니다.

[그림21] 기기 센서 설정에 CO2 센서 추가

이제 Tinkable IoT 보드의 microUSB 케이블을 제거하여 끕니다. 그리고 CO2 센서를 다음 그림과 같이 꽂아줍니다. 위쪽에 5핀, 아래 쪽이 4핀입니다. 이 때 가운데 CO2 측정 부위는 손가락으로 누르지 않는 것이 좋습니다.

[그림22] Tinkable IoT 보드에 CO2 센서 추가하기

이렇게 CO2 센서를 추가하고 Tinkable IoT 보드에 전원을 인가하면 약 1분 정도 뒤부터 CO2 측정 값이 표시됩니다. CO2 센서와 같이 초기 히팅이 필요한 경우에는 일정한 시간이 경과한 뒤부터 측정을 시작합니다.

또한 C02 센서는 전기를 많이 소모하므로 1분에 1번씩 데이터를 읽습니다. 센서 설정에서 읽기 간격을 줄이더라도 30초 이하로 줄이지 않는 것이 좋습니다.

[그림23] CO2 센서 측정 결과

다음은 data.tinkable.net으로 돌아와서 CO2 측정 그래프를 확인한 것입니다. 아침부터 문을 닫고 에어컨을 켜놓으니 CO2 측정값이 2000ppm이 넘습니다. 깜짝 놀라서 에어컨을 끄고 환기를 하니 CO2 측정값이 내려갑니다.

[그림24] CO2 그래프

7. 미세 먼지 센서 추가하기

아직까지 Tinkable IoT 키트에서는 메모리 부족으로 미세먼지 센서와 CO2 센서를 동시에 사용할 수 없습니다. 미세먼지 센서를 추가하기 전에 먼저 CO2 센서를 사용중지합니다. 기기의 센서 탭에서 S8 CO2 센서(co2)에서 사용중지를 선택하고 Save 버튼을 누릅니다.

[그림25] CO2 센서 사용 중지 하기

CO2 센서를 사용중지 했으면 기기의 센서 탭에서 Add New Sensor를 눌러서 PMS5003, PMS7003(PM2.5) 센서를 선택하고 추가하기 버튼을 눌러줍니다.

[그림26] PMS 센서 추가하기

PMS 센서는 Tinkable IoT 키트의 쉴드 뒷면의 4핀 헤더에 연결하는 것이 좋습니다. 이를 위해서 먼저 키트를 분해합니다. 다음은 분해된 각 부분입니다.

[그림27] Tinkable IoT 키트의 각 부분

다시 조립할 때는 센서의 핀과 보드의 핀이 일치해야합니다. VCC=5V, GND=0V는 동일한 의미입니다.

VCC와 GND가 반대가 되면 센서가 고장날 수 있습니다. 액정 화면의 경우 핀 배열이 GND-VCC-SCL-SDA인 것과 VCC-GND-SCL-SDA인 것이 있습니다. VCC-GND-SCL-SDA인 것은 뒤집어서 가운데 부분의 핀에 꽂아야 합니다. 그리고 화면이 거꾸로 보이는 것은 GND-D0를 연결하여 파라미터 서버에 들어간 다음에 상세 설정해서 화면 반전하기를 선택하면 바른 방향으로 볼 수 있습니다.

버튼 센서는 3핀인데 쉴드에서 버튼 센서를 꽂는 부분은 4핀입니다. 왼쪽에서부터 꽂아서 맨 오른쪽의 핀은 비워둬야합니다. 쉴드에서 이렇게 4핀으로 한 것은 다양한 핀배열의 디지털 센서를 바로 꽂아서 사용하기 위해서 입니다.

이제 쉴드의 뒷면의 SoftSerial2 4핀 헤더에 Tinkable 4핀 케이블을 꽂아줍니다.

[그림28] 쉴드 뒷면에 4핀 케이블 꽂기

다음으로 ESP8266 보드에 Tinkable 쉴드를 꽂아줍니다. 이 때 옆으로 빠져나오는 핀이 없도록 합니다.

[그림29] 쉴드와 ESP8266 보드 연결하기

이제 위의 [그림 27]을 참고로 화면, 조도센서, 온도습도기압센서, 버튼 센서를 다지 꽂아줍니다.

그리고 PM2.5 먼지 센서에 어댑터를 꽂고 어댑터에 Tinkable 4핀 케이블을 꽂아줍니다.

[그림30] PM2.5 먼지 센서 연결하기

최종적으로 연결된 모습은 다음과 같습니다.

[그림31] PM2.5 먼지 센서가 키트에 연결된 모습

Tinkable IoT 키트에 microUSB 케이블을 꽂아서 전원을 공급하면 1분 정도 지나면 PM1.0, PM2.5, PM10.0 값을 읽어서 화면에 표시하고 서버로 전송합니다.

8. 에러 확인하기

키트가 정상적으로 동작하지 않으면 키트를 컴퓨터에 USB로 연결하면 상세한 로그를 볼 수 있습니다. 키트를 USB로 PC에 연결하고 PC에서 아두이노 IDE 프로그램을 실행하여 툴 메뉴에서 포트를 가장 큰 값으로 지정하고 시리얼 모니터를 실행합니다. 그리고 키트의 ESP8266 보드의 좌측 상단의 Reset 버튼을 눌러서 키트를 껐다 켭니다.

[그림32] 아두이노 IDE 프로그램에서 시리얼 모니터 실행하기

다음은 일부로 에러를 만든 경우 시리얼모니터에 표시된 로그입니다.

ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 3456, room 16
tail 0
chksum 0x84
csum 0x84
va5432625
~ld


[info] init: Tinkable inited. Serial/Wire/adc begins.
updateInterval:600000
[info] initSpiffs: mounted SPIFFS file system.
[info] readConfigJson: capacity = 1024, memorayUsage = 0
[info] setUpdateInterval: set updateInterval to 60000
[info] setDeepSleepReadDelay: set deepSleepReadDelay to 10000
[info] setDeepSleepInterval: set deepSleepInterval to 300000
[info] readConfigJson: configJson Applied.
ssid: pubpub / password: issmart!_mode: WIFI_AUTO / updateInterval: 60000 / deepSleepReadDelay: 10000 /
deepSleepInterval:300000 / flipScreenVertically:1 / showInfoScreen:0
[info] TinkableOledDisplay::init: screen vertically flipped.
[info] TinkableOledDisplay::displayOn: display On!
[info] TinkableOledDisplay::init:TinkableOledDisplay inited.
[info] initScreen: Screen Init Success.
[info] showSystemInfo:
ChipId:6967D2, Sketch:572256Bytes, F.Heap:29728Bytes, digitalRead(D0):1
[info] showSpiffsInfo:
total:1907.50KB, used:1.23KB, files:2
***** [info] showI2CInfo:3 founds, BH1750 / SSD1306 / BME280
***** [info] initWifi: wifiCheckInterval = 60000. Wifi Inited. MAC Address: CC:50:E3:69:67:D2
[info] connectWifi: start! RSSI = 31, IP = (IP unset), status = 0
[info] connectWifi: isWifiConnected() = 0
[info] connectWifi: connectWifi using SSID - pubpub
[info] ssid = pubpub, password = issmart!
[info] connectWifi: wifi connection timeout = 22
[info] showConnectingWifiInfo: Connecting WiFi - using WiFi.begin. timeout: 22seconds, WiFi.status(): 6
[info] wifiOnGotIPCallback: Wifi Got IP Address.
SSID: pubpub, BSSID: E8:65:D4:6D:49:21, IP: 192.168.5.192, RSSI: -30, WiFi.status(): 3
[info] WiFi Connected: SSID: pubpub, IP: 192.168.5.192, RSSI: -33

[info] request URI: https://us-central1-tinkable-real.cloudfunctions.net/app/http/timestamp
[info] request method: GET
[info] request data:
[info] request size: 0
[info] response httpCode: 200

[info] poolWifiTime: request millis - 23686, received millis - 27515, received - 1591944516920, bootTime - 1591944491

[info] request URI: https://us-central1-tinkable-real.cloudfunctions.net/app/getAcode?mac=DD%3A50%3AE3%3A69%3A67%3AD2
[info] request method: GET
[info] request data:
[info] request size: 0
[info] response httpCode: 200

[info] poolAccessCode: accessCode = BsJRy0xaFEyRy74gABEi

[info] request URI: https://us-central1-tinkable-real.cloudfunctions.net/app/getSensorsJson?acode=BsJRy0xaFEyRy74gABEi
[info] request method: GET
[info] request data:
[info] request size: 0
[info] response httpCode: 200

[info] readSensorsJson: capacity = 4096, memorayUsage = 0
[info] co2 S8Sensor created.
[info] button ButtonSensor created.
[info] bh1750 BH1750Sensor created.
[info] pms PMSSensor created.
[info] bme280 BME280Sensor created.
[info] poolSensorsJson: received Sensors Json File and Applied.
[info] co2 S8Sensor begin.
[info] co2 TinkableSensor begin.
[info] button ButtonSensor begin.
[info] button TinkableSensor begin.
[info] bh1750 BH1750Sensor begin.
[info] bh1750 TinkableSensor begin.

Exception (29):
epc1=0x401004a3 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

>>>stack>>>

ctx: cont
sp: 3ffffbc0 end: 3fffffc0 offset: 0190
3ffffd50:  00000069 0000007e 0000003f 00000030
3ffffd60:  8f330b39 00000001 3fffbb44 401004ee
3ffffd70:  8f330b38 000006dc 000006dc 40101090
3ffffd80:  ffffffff 0000000e 00000000 40100bb5
3ffffd90:  c0031035 00000000 0000001f 40100648
3ffffda0:  00000000 00000001 3fffc228 00000022
3ffffdb0:  3fffc200 40100af8 3fffc258 4000050c
3ffffdc0:  4010022c 00000030 00000019 ffffffff
3ffffdd0:  40100235 0000208d 00001630 8f2b6ec6
3ffffde0:  00000019 00000066 fffffee2 ffffffff
3ffffdf0:  00000009 00000018 00000001 3fffbb44
3ffffe00:  00000001 00000000 0000208d 00000030
3ffffe10:  000000a5 00000000 cf000000 00000000
3ffffe20:  0000006e 0000007e 00000010 00000030
3ffffe30:  00003478 0000068f 0000068f 40101090
3ffffe40:  0000003f 4027fc60 00000000 3fffbbbc
3ffffe50:  00000000 3fffbbac 00000020 4010132f
3ffffe60:  007a1200 8f2b6ed9 536c6f00 00000007
3ffffe70:  00000000 00000000 00000001 40100648
3ffffe80:  6e655320 73726f73 3fffbb44 0000208d
3ffffe90:  0000208d 00000001 3fffbb44 4021e84a
3ffffea0:  4021fc4d 3fffbbac 3fffbb44 4021e884
3ffffeb0:  00000000 00000001 0000000c 40100235
3ffffec0:  4021a504 00000001 3fffbb44 401002b6
3ffffed0:  0000000c 00000001 3fffbb44 00000007
3ffffee0:  00000000 3ffe8572 3fffbb44 4010043c
3ffffef0:  000000ff 3ffe8572 fffffee2 00000009
3fffff00:  00000001 00000001 ffffffff 00000018
3fffff10:  3fff0e8c 402093c3 00000020 00000000
3fffff20:  3fff0e8c 3fffbb44 3fffb964 4021a704
3fffff30:  00000040 00000000 00000060 402032a8
3fffff40:  3fffa704 00000003 3fffb964 402093ec
3fffff50:  3fff1540 00000001 00000000 00000000
3fffff60:  3fff0e8c 3fff098c 00000003 40203ffa
3fffff70:  0000000c 3fff098c 3fff1540 3fff1314
3fffff80:  3fffdad0 00000000 3fff098c 3fff1314
3fffff90:  3fffdad0 3fff0e8c 3fff098c 40211a16
3fffffa0:  feefeffe 00000000 3fff12d4 4021e924
3fffffb0:  feefeffe feefeffe 3ffe85b4 401015f1
<<<stack<<<

last failed alloc call: 4021A16C(2564)
)⸮L

로그를 보면 시간을 잘 가져오고, mac 주소로 접속 코드 가져오고 접속코드로 센서 목록을 잘 가져옵니다. 그 다음에 co2 S8 센서, button 센서 bh1750 센서, PMS 센서, bme280 센서를 만들고 각 센서를 시작한 후에 Exception이 뜨고 죽어버렸습니다. 그리고 다시 재부팅을 반복합니다.

Tinkable IoT 키트가 정상적으로 동작하지 않을 때는 이렇게 시리얼모니터의 로그를 data.tinkable@gmail.com으로 보내주시기 바랍니다. 에러가 나는 상황에 대한 자세한 설명을 곁들이면 더 좋습니다.

만일 위와 같은 로그를 보내주시면 저는 exceptionDecoder를 사용하여 에러를 분석합니다. 이 프로그램을 사용하면 코드에서 어떤 부분에서 에러가 난 것인지 알 수 있습니다.

[그림33] exceptionDecoder로 에러 확인하기

사실 이 에러는 아직 Tinkable IoT 키트에서 CO2 센서와 PM2.5 센서를 동시에 연결할 수 없는 데 동시에 사용해서 발생한 에러입니다. 향후 동시에 사용할 수 있도록 개선할 예정입니다. 그럼 이상으로 그림 위주의 사용 설명서를 마치도록 하겠습니다. 다음에는 Tinkable IoT 키트를 세세하게 설정하는 방법에 대한 매뉴얼을 준비하도록 하겠습니다.

그럼 잘 사용하시고 문제가 있으면 문제 내용과 로그를 data.tinkable@gmail.com으로 보내주세요.

댓글 1개:

아두이노 라이브러리

아두이노 라이브러리 https://storage.googleapis.com/imgcdn.tinkable.net/cli/libraries.20221213.zip