아두이노 클라우드 IOT 시작 : ESP8266을 아두이노 클라우드 IOT연결

2021. 7. 21. 23:46카테고리 없음

아두이노 클라우드 IoT

2019년 아두이노 플랫폼은 IoT 매니아와 전문가들이 쉽게 연계 프로젝트를 만들 수 있도록 지원하는 엔드 투 엔드 솔루션인 아두이노 클라우드 IoT를 선보였습니다. Arduino IoT Cloud는 엔드 투 엔드 IoT 솔루션을 제공하는 데 필요한 하드웨어, 펌웨어, 클라우드 서비스 및 지식 지원을 결합하여 바로 사용할 수 있는 전체 스택 접근 방식을 제공합니다. 이 IoT 클라우드 플랫폼을 통해 사용자는 센서 데이터를 수집, 그래프 작성 및 분석하고 이벤트를 트리거하며 디바이스를 완벽하게 제어할 수 있습니다. 이렇게 하면 사용자는 집이나 사업을 한 곳에서 쉽게 자동화할 수 있습니다.

이 튜토리얼에서는 Arduino Cloud IoT를 사용하여 NodeMCU-ESP8266을 설정할 예정입니다. 이를 테스트하기 위해 보드에서 클라우드로 DHT11 센서 데이터를 전송하고, 노드MCU에 연결된 LED를 제어할 수 있는 스위치를 설정합니다.

 

아두이노 클라우드 IOT 주요특징

Arduino Cloud IoT 플랫폼은 사용자가 브라우저에서 직접 코드를 작성하고 컴파일 및 업로드하며 IoT 기기를 연결하고 실시간 대시보드를 구축할 수 있도록 지원합니다. 정의된 변수에 따라 새 항목을 설정할 때 스케치가 자동으로 생성됩니다. Arduino Cloud IoT의 모든 기능은 다음과 같습니다.

자동으로 생성된 코드입니다. 아두이노 클라우드 IoT는 사용자가 설정한 변수에 따라 스케치를 자동으로 생성해 코딩에 익숙하지 않은 사용자의 장벽을 해소하고 모든 연령과 경험의 메이커에게 권한을 부여합니다. 

플러그 앤 플레이 보딩은 다음과 같습니다. Arduino 클라우드 IoT 플랫폼을 사용하면 브라우저에서 직접 코드를 작성하고 컴파일 및 업로드하며 IoT 기기를 연결하고 실시간 대시보드를 구축할 수 있습니다. 따라서 하드웨어 프로그래밍을 위해 아두이노 IDE로 이동할 필요가 없습니다.

'이동 중' 모바일 대시보드입니다. 이를 통해 사용자는 어디서나 액세스 가능한 위젯을 사용하여 원격 센서 모니터링을 액세스, 확인 및 제어할 수 있습니다.

다른 플랫폼과의 통합: Arduino Cloud IoT는 Amazon Alexa, Google 시트, IFTT 및 ZAPIER와 통합될 수 있어 사용자가 음성, 스프레드시트, 데이터베이스를 사용하여 장치를 프로그래밍하고 관리하고 Webhook을 사용하여 알림을 자동화할 수 있습니다. 또한 개발자는 이 플랫폼을 통해 Arduino IoT API를 사용하여 맞춤형 앱을 만들 수 있으며, 사용자 지정 엔드포인트 웹 훅을 추가하여 유연성을 높일 수 있습니다.

이러한 모든 기능 때문에 Arduino Cloud IoT에도 몇 가지 제약이 있습니다. 그 중 하나는 특정 아두이노와 ESP 보드에서만 작동한다는 것입니다. 지원되는 모든 보드는 아래에 나열되어 있습니다.

 

아두이노 보드

아르뒤노 나노 33 I T.
아르뒤노 MKR Wi-Fi 1010.
아르뒤노 MKR WAN 1310.
아르뒤노 MKR WAN 1300.
아르뒤노 MKR NB 1500.
아르뒤노 MKR GSM 1400.
아르뒤노 MKR1000.
아르뒤노 포르텐타 H7(M7 코어)
아르뒤노 나노 RP2040 연결.

 

ESP 및 기타보드

ESP8266
ESP32
Pelion
Generic LoRa

 

또한 Arduino Cloud IoT 무료 요금제를 이용하면 2개의 기기만 추가할 수 있으며 하루에 200초의 제한된 컴파일 시간을 제공합니다. 따라서 두 개 이상의 기기를 연결하려면 프리미엄 요금제를 구입해야 합니다. 현재 아두이노 클라우드 IoT는 4가지 요금제를 다양한 기능과 가격으로 제공하고 있습니다. 모든 계획이 아래 이미지에 요약되어 있습니다.

 

ESP8266을 Arduino 클라우드 IoT에 연결하는 데 필요한 구성요소입니다.

NodeMCU ESP8266
DHT11 Sensor
LED (5mm)

 

아두이노 클라우드 IoT에 ESP8266을 연결하기 위한 회로 다이어그램입니다.

아두이노 IoT 클라우드에 DHT11 센서 데이터를 전송하기 위한 회로도는 아래와 같습니다.

연결은 아주 간단합니다. DHT11 센서는 노드MCU의 5V 및 GND 핀을 통해 전원이 공급되며, DHT11의 데이터 핀은 노드MCU의 D0에 연결되고 LED의 양극 리드는 노드MCU의 D7 핀에 연결됩니다.

Arduino 클라우드 IoT를 설정합니다.

이제 필요한 하드웨어를 연결했으므로 ESP8266용 Arduino Cloud IoT를 설정하겠습니다. 당신의 아두이노 계정에 로그인하려면요 계정이 없다면 Arduino Cloud IoT로 이동하여 계정을 만드십시오.

1단계: 계정 설정이 완료되면 새 장치를 추가합니다. 노드 MCU에서 Arduino 클라우드 IoT로 이동합니다. 클라우드에서 "장치" 탭으로 이동합니다. 그런 다음 "장치 추가" 단추를 클릭합니다.

3번째 파트 디바이스 클릭

다음 단계에서 우리가 사용하고 있는 개발 보드를 선택해야 합니다. 먼저 디바이스 유형에서 ESP8266을 선택한 다음 드롭다운 메뉴에서 NodeMCU 1.0을 선택합니다.

그런 다음 프로젝트에 따라 장치 이름을 변경하고 다음을 클릭합니다. 해당 장치에 대한 장치 ID와 비밀 키가 있는 창이 나타납니다. 메모해 두거나 "PDF 다운로드"를 클릭하여 세부 정보를 로컬 시스템에 저장할 수 있습니다. 비밀 키는 복구할 수 없습니다.

그런 다음 CONTINUE(계속을 클릭하여 장치를 추가합니다.

2단계: 장치를 추가한 후 다음 단계는 무언가를 만드는 것입니다. '사물' 탭으로 이동하여 '만들기'를 클릭하십시오.

이제 사물 탭에는 변수, 장치 및 네트워크와 같은 세 가지 옵션을 구성할 수 있습니다. 먼저, 우리의 장치와 우리의 것을 연결할 것입니다. 이 작업은 "장치" 섹션의 링크 아이콘 버튼을 클릭하여 수행할 수 있습니다. 최근에 만든 장치를 선택할 수 있는 창이 열립니다.

 

장치가 연결되면 코드에 사용할 변수를 추가해야 합니다. "Add variable" 단추를 클릭합니다. 그러면 변수 정보를 입력해야 하는 창이 열립니다. 여기서 우리는 세 가지 변수를 만들 것입니다, 하나는 LED에 사용되고, 두 가지는 온도 및 습도 값을 저장하는 데 사용됩니다.

먼저 led_switch를 생성하겠습니다. 데이터 유형은 int이고 권한은 읽기 전용이며 업데이트 정책이 변경 중입니다. 완료되면 "Add variable" 단추를 클릭합니다.

 

마찬가지로 '온도' 변수와 '습도' 변수를 추가합니다. 이러한 변수의 데이터 유형은 float이고 사용 권한은 읽기 및 쓰기이며 업데이트 정책은 변경 중입니다.

이제 다음 단계에서 Wi-Fi 자격 증명을 입력해야 하며 장치 구성 중에 비밀 키가 생성됩니다. 그런 다음 "네트워크 섹션"의 '구성' 버튼을 클릭합니다. 자격 증명을 입력한 다음 '저장'을 클릭하십시오.

3단계: 이제 장치와 변수를 추가했으므로 대시보드를 만드는 다음 단계로 넘어갈 수 있습니다. 이 작업을 수행하려면 'Dashboard' 탭으로 이동하여 'Build Dashboard' 버튼을 클릭합니다.

대시보드에서 위젯을 추가하려면 왼쪽 상단 모서리에 있는 연필 아이콘을 클릭하고 '추가' 버튼을 클릭한 다음 '사물'로 이동하여 항목을 선택합니다. 그런 다음 모든 변수를 선택하고 "위젯 추가"를 클릭합니다.

최종 데스크톱 화면은 다음과 같습니다.

 

데이터를 클라우드로 보내기 위한 노드 MCU 프로그래밍입니다.

 

이제 Arduino Cloud IoT 설정을 마쳤습니다. 다음 단계는 DHT11에서 데이터를 읽도록 NodeMCU를 프로그래밍하여 Arduino Cloud로 전송하는 것입니다. 그러려면 "스케치" 탭으로 이동해야 합니다.

사물에서 변수를 추가하면 변수에 따라 구름의 스케치가 자동으로 업데이트됩니다. 그래서 대부분의 코드는 이미 작성되어 있고 DHT11 센서에 대한 라인만 추가하면 됩니다. 전체 코드는 아래에 제시되어 있습니다.

코드가 준비되면 보드 및 포트를 선택하고 왼쪽 상단 모서리에 있는 업로드 버튼을 누릅니다.

 

이제 이 작업을 완료하면 아두이노 클라우드 IoT 플랫폼을 사용하여 LED를 제어하고 DHT11 센서 데이터를 모니터링할 수 있습니다.

 

프로젝트를 재미있게 작성하고 새로운 것을 배웠기를 바라며, 질문이 있으면 아래 댓글란에 남겨주시거나 포럼을 이용하시기 바랍니다.

#include "thingProperties.h"
#include "DHT.h"
#define DHTTYPE DHT11   // DHT 11
#define dht_dpin 1
DHT dht(dht_dpin, DHTTYPE); 
int LED = D0;
void setup() {
  // Initialize serial and wait for port to open:
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500); 
  // Defined in thingProperties.h
  initProperties();
  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  /*
     The following function allows you to obtain more information
     related to the state of network and IoT Cloud connection and errors
     the higher number the more granular information you’ll get.
     The default is 0 (only errors).
     Maximum is 4
 */
  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
}
void loop() {
  ArduinoCloud.update();
  // Your code here 
  temperature = dht.readTemperature();
  humidity = dht.readHumidity();
}
void onLedSwitchChange() {
  // Do something
  if(led_switch){
    digitalWrite(LED, LOW);
  }
  else{
    digitalWrite(LED, HIGH);
  }
}
void onTemperatureChange() {  
}
void onHumidityChange() {  
}