- 필요한 구성 요소
- 회로도
- ESP8266 온도 로거 용 Thinger.io 설정
- NodeMCU 데이터 로거를위한 IFTTT 설정
- 데이터 로깅을위한 NodeMCU 프로그래밍
- NodeMCU에서 Thinger.io에 데이터 로깅
- Thinger.io에서 엔드 포인트를 생성하여 이메일 경고 보내기
이전에는 NodeMCU를 사용하여 Google 시트에 온도 데이터를 기록했습니다. 이제 여기에서는 Thinger.io IoT 클라우드 로 데이터를 전송 하여 매력적인 그래픽 형식으로 표시합니다. BMP180 센서는 NodeMCU ESP8266과 인터페이스되어 온도, 습도 및 고도 데이터를 수집하고 Thinger.io 플랫폼으로 전송됩니다. 이 튜토리얼에서는 디바이스, 엔드 포인트, 데이터 버킷 또는 액세스 토큰과 같은 thinger.io 플랫폼의 다양한 기능을 관리하는 방법을 배웁니다.
필요한 구성 요소
- NodeMCU ESP8266
- BMP180 압력 센서
- 점퍼 와이어
- 브레드 보드
회로도
이 ESP8266 데이터 로거의 회로도 는 매우 간단합니다. 여기서는 BMP180 센서 만 NodeMCU와 인터페이스됩니다.
BMP180 센서는 I2C 통신 프로토콜을 사용합니다. 따라서 BMP180의 SCL 및 SDA 핀을 NodeMCU의 SCL 및 SDA 핀 (D1 및 D2)에 연결해야합니다. 또한 BMP180 의 V IN 및 GND 핀을 NodeMCU의 3.3V 및 GND에 연결합니다. 센서를 영구적으로 손상시킬 수 있으므로 센서를 5V에 직접 연결하지 마십시오.
NodeMCU에 대해 자세히 알아 보려면 NodeMCU ESP8266을 기반으로하는 다양한 IoT 프로젝트를 확인하세요.
ESP8266 온도 로거 용 Thinger.io 설정
Thinger.io는 사물 인터넷을위한 오픈 소스 플랫폼입니다. 매우 간단한 방법으로 연결된 제품의 프로토 타입, 확장 및 관리에 필요한 모든 도구를 제공합니다. Thinger.io는 장치 데이터 작업을 위해 데이터 벅, 대시 보드 및 엔드 포인트와 같은 세 가지 필수 도구를 제공합니다. 이러한 도구를 사용하여 장치 데이터를 시각화하고 장치의 상호 운용성을 확장 할 수 있습니다.
데이터 벅: 데이터 벅 도구를 사용하여 확장 가능한 방식으로 장치 데이터를 저장하고 다양한 샘플링 간격을 프로그래밍하거나 장치에서 발생한 이벤트를 기록 할 수 있습니다.
대시 보드: 대시 보드 도구에는 실시간 및 저장된 데이터를 시각화하기 위해 드래그 앤 드롭 기술을 사용하여 몇 분 내에 생성 할 수있는 사용자 정의 가능한 위젯이 포함 된 패널이 있습니다.
엔드 포인트: 엔드 포인트를 사용하여 IFTTT, 사용자 지정 웹 서비스, 이메일과 같은 다른 서비스와 플랫폼을 통합하거나 다른 장치를 호출 할 수 있습니다.
이 ESP8266 로깅에서 이러한 도구를 살펴 보겠습니다.
Thinger.io로 데이터를 보내려면 Thinger.io 플랫폼에서 무료 계정을 만들고 아래 단계에 따라 장치를 연결해야합니다.
1 단계: 첫 번째 단계는 새 장치를 만드는 것입니다. 새 장치를 생성하려면 메뉴 탭 에서 장치 를 클릭 한 다음 장치 추가 버튼 을 클릭 합니다.
그런 다음 양식에 장치 ID, 설명 및 자격 증명을 입력하거나 장치에 대한 임의 자격 증명을 생성하고 ' 장치 추가 '를 클릭합니다.
그게 다야; 장치를 연결할 준비가되었습니다. 다음 단계에서는 데이터를 Thinger.io 플랫폼으로 전송하도록 NodeMCU를 프로그래밍합니다.
NodeMCU 데이터 로거를위한 IFTTT 설정
여기에서는 온도가 한도를 초과 할 때 IFTTT를 사용하여 이메일 경고를 보냅니다. IFTTT (If This Then That)는 애플릿이라고하는 조건문 체인을 생성 할 수있는 웹 기반 서비스입니다. 이 애플릿을 사용하여 이메일, Twitter, Facebook 알림을 보낼 수 있습니다.
IFTTT를 사용하려면 IFTTT 계정이 이미있는 경우 로그인하거나 계정을 만드십시오.
이제 ' Webhooks '를 검색 하고 Services 섹션에서 Webhooks를 클릭하십시오.
그런 다음 Webhooks 창에서 오른쪽 상단의 'Documentation' 을 클릭 하여 개인 키를 가져옵니다. 이 키를 복사합니다.이 키는 Thinger.io에서 엔드 포인트를 생성하는 동안 사용됩니다.
그런 다음 웹훅 및 이메일 서비스를 사용하여 애플릿을 만듭니다. 애플릿을 만들려면 프로필을 클릭 한 다음 ' 만들기 를 클릭 하십시오. '
이제 다음 창에서 ' This '아이콘을 클릭하십시오. 이제 검색 섹션에서 웹훅을 검색하고 ' 웹훅 '을 클릭합니다.
이제 ' 웹 요청 수신' 트리거를 선택 하고 이벤트 이름을 임시 로 입력 한 다음 트리거 만들기를 클릭합니다.
그런 다음 ' Then That' 을 클릭 한 다음 이메일을 클릭합니다.
이제 이메일에서 '나에게 이메일 보내기' 를 클릭하고 이메일 제목과 본문을 입력 한 다음 작업 생성을 클릭합니다. 마지막 단계에서 ' 마침 '을 클릭 하여 애플릿 설정을 완료합니다.
데이터 로깅을위한 NodeMCU 프로그래밍
Thinger.io로 데이터를 전송하기 위한 전체 코드 는 페이지 끝에 제공됩니다. 여기서는 몇 가지 중요한 부분을 설명합니다.
필요한 모든 라이브러리를 포함하여 코드를 시작합니다. ThingerESP8266.h는 여잔 플랫폼과 Adafruit_BMP085.h BMP는 센서 데이터를 판독하는 데 사용되는 반면 NodeMCU 간의 연결을 설정하는데 사용된다. Arduino IDE 라이브러리 관리자에서 ThingerESP8266.h 라이브러리를 설치할 수 있습니다.
#포함
그런 다음 코드에 자격 증명을 입력하면 장치가 인식되고 계정과 연결될 수 있습니다.
#define USERNAME "사용자 계정 사용자 이름"#define DEVICE_ID "NodeMCU"// 장치 이름 #define DEVICE_CREDENTIAL "FcLySVkP8YFR"
그런 다음 엔드 포인트 이름을 입력하십시오. 엔드 포인트는 IFTTT, HTTTP 요청 등과 같은 외부 서비스와 플랫폼을 통합하는 데 사용됩니다.
#define EMAIL_ENDPOINT "IFTTT"
압력, 온도 및 고도 데이터를 저장할 변수를 정의합니다.
int 압력, 온도, 고도;
void 루프 () 내부에서 센서 데이터를 읽습니다. PSON의 데이터 유형이 다른 데이터 유형을 보유 할 수 있습니다. 따라서 Pson 데이터 유형은 동시에 여러 값을 수신하는 데 사용됩니다.
물건 >> (pson & out) {out = bmp.readPressure () / 100; out = bmp.readAltitude (); out = bmp.readTemperature (); };
온도 값이 15도를 넘으면 엔드 포인트를 호출하는 if 조건을 사용 합니다 . 여기 데이터 는 끝점 이름입니다.
if (온도> 15) {thing.call_endpoint (EMAIL_ENDPOINT, "data");} Serial.print ("데이터 전송");
NodeMCU에서 Thinger.io에 데이터 로깅
이제 BMP 센서를 NodeMCU에 연결하고 코드를 업로드합니다. NodeMCU는 계정 자격 증명을 사용하여 이전에 생성 한 장치에 연결합니다. 성공적으로 연결되면 아래 이미지와 같이 연결됨이 표시됩니다.
장치 메뉴에서 장치 이름을 클릭하기 만하면 전송 된 데이터, 수신 된 데이터, IP 주소, 연결 시간 등과 같은 장치 통계를 확인할 수 있습니다.
이제 데이터를 수신 할 때 위젯을 사용하여 데이터를 시각화하는 대시 보드를 만들 것입니다.
대시 보드를 만들려면 메뉴 탭에서 대시 보드를 클릭 한 다음 ' 대시 보드 추가 '를 클릭하십시오.
이제 다음 창에서 대시 보드 이름, ID 및 설명과 같은 대시 보드 세부 정보를 입력 한 다음 대시 보드를 클릭합니다.
그런 다음 대시 보드 이름을 클릭하여 새 대시 보드에 액세스합니다. 기본적으로 대시 보드는 비어 있습니다. 위젯을 추가하려면 먼저 대시 보드의 오른쪽 상단 스위치를 클릭하여 편집 모드를 활성화해야합니다. 그런 다음 ' 위젯 추가' 버튼을 클릭합니다.
' 위젯 추가' 버튼을 클릭하면 위젯 유형, 배경색 등을 선택할 수있는 팝업이 표시됩니다. 제 경우에는 게이지 위젯을 선택했습니다.
저장을 클릭하면 소스 값, 장치, 리소스, 값 및 새로 고침 모드를 선택해야하는 다음 화면으로 이동합니다. 모든 값을 선택한 다음 저장 버튼을 클릭합니다.
이제 나머지 변수에 대해 동일한 절차를 반복합니다. 내 대시 보드는 다음과 같습니다.
Thinger.io에서 엔드 포인트를 생성하여 이메일 경고 보내기
이제 Thinger.io를 IFTTT와 통합하는 엔드 포인트를 생성합니다. 디바이스는 엔드 포인트를 호출하여 이메일 전송, SMS 전송, REST API 호출, IFTTT와 상호 작용, 다른 계정에서 디바이스 호출 또는 다른 HTTP 엔드 포인트 호출과 같은 작업을 수행 할 수 있습니다.
엔드 포인트를 생성하려면 메뉴 탭에서 '엔드 포인트'옵션을 클릭 한 다음 '엔드 포인트 추가'를 클릭하십시오.
이제 다음 창에서 필요한 세부 정보를 입력하십시오. 세부 사항은 다음과 같습니다.
엔드 포인트 ID: 엔드 포인트의 고유 식별자입니다.
엔드 포인트 설명: 엔드 포인트에 대한 설명 또는 자세한 정보를 작성합니다.
끝점 유형: 주어진 옵션에서 끝점 유형을 선택합니다.
메이커 이벤트 이름: IFTTT 애플릿 이름을 입력합니다.
메이커 채널 키: Webhooks 비밀 키.
그런 다음 Test Endpoint를 클릭하여 모든 것이 작동하는지 확인하십시오. 온도 데이터에 대한 경고가 포함 된 이메일을 보내야합니다.
IFTTT 웹훅 트리거를 사용하는 대신 이메일 또는 텔레 그램 메시지를 보내거나 엔드 포인트 기능을 사용하여 HTTP 요청을 보낼 수 있습니다.
이것이 NodeMCU ESP8266을 사용하여 BMP180 센서의 온도, 압력 및 고도 데이터를 인터넷에 기록하는 방법입니다.
작동하는 비디오와 완전한 코드는 페이지 끝에 제공됩니다.