Arduino 제어를 위한 클라우드 서비스. myDevices Cayenne 서비스를 사용하여 Arduino에서 IoT 장치 개발

Eespeshniks - 눈가리개 대열에 합류하세요!
오늘 우리는 새로운 Blink 클라우드 서비스를 사용하여 5분 안에 스마트폰(iOS 또는 Android)에서 ESP8266 제어를 설정할 것입니다. 컷 아래의 비디오 및 세부 정보.


스마트폰에 Blynk 앱을 설치하세요.

응용 프로그램에 등록하고 새 프로젝트를 만듭니다.

예를 들어 프로젝트 이름을 입력하십시오. ESP8266. 현장에서 하드웨어 모델선택하다 ESP8266. (지원되는 하드웨어 목록이 인상적이기를 바랍니다.) 자동으로 생성됨 인증 토큰사서함으로 보내십시오.

버튼을 누른 후 만들다 ESP8266 제어판의 UI를 설계하기 위한 빈 필드가 있습니다.

오른쪽 상단의 더하기 기호를 클릭하면 도구 모음이 나타납니다. 위젯 상자대시보드에 위젯을 추가합니다. 위젯 목록이 계속 채워질 것이라는 점은 주목할 가치가 있습니다.

테스트를 위해 위젯 유형을 선택하십시오. 단추- 이 위젯은 패널에 즉시 추가됩니다. 원터치로 편집하세요. 이름은 비워 둘 수 있으며 약간 오른쪽으로 필드에서 표시기의 색상을 선택할 수 있습니다. 출력 핀오른쪽 선택 디지털, 왼쪽에는 무료 핀이 있습니다. 지피오. 아래에서 버튼 유형을 스위치.

다음으로 Arduino IDE에 Blynk 라이브러리를 설치합니다. 공식 지침이 도움이 될 것입니다. 저장소에서 직접 라이브러리의 최신 버전을 가져와서 수동으로 설치할 수도 있습니다. 다음으로 예를 선택합니다. ESP8266_독립형그리고 그것에 쓰십시오 인증 토큰우리가 우편으로 받은 SSID 및 암호당신의 와이파이 네트워크. 스케치를 컴파일하고 ESP8266에 업로드합니다.

Wire 라이브러리가 아직 "raw"였던 옛날을 생각하면 Arduino 플랫폼은 약간의 배선이 있는 마이크로컨트롤러에 불과했습니다. 이제 ESP32와 같은 Wi-Fi가 내장된 단일 보드 컴퓨터와 저렴한 마이크로컨트롤러가 있습니다. 그러나 오늘날 사용 가능한 수백 개의 장치 중에서 임베디드 프로그래밍 및 개발에 보다 쉽게 ​​접근하고 보다 광범위하게 지원되도록 할 필요가 항상 있습니다.



그래서 최근 임베디드 리눅스 컨퍼런스에서 아두이노 설립자 마시모 밴지는 클라우드 개념에 대한 아두이노의 해답이 될 온라인 개발 환경과 연결된 장치의 광대한 생태계의 시작을 발표했습니다. 이 모든 것을 Arduino Create라고 하며 모든 개발자가 임베디드 시스템 프로젝트를 만들고 원격으로 관리할 수 있는 온라인 IDE입니다.


Massimo의 프리젠테이션에서 입증된 바와 같이 Arduino Create의 주요 아이디어는 플러그인 장치를 인터넷으로 가져오고 원격 프로그래밍 및 무선 플래싱을 허용하는 것입니다. 이것은 Arduino 생태계이기 때문에 이를 가능하게 하기 위해 수백 개의 다양한 플랫폼에서 사용할 수 있는 많은 라이브러리가 사용되었습니다. Raspberry Pi, BeagleBone 및 여러 Intel IoT 보드를 포함하여 현재 많은 수의 보드가 지원됩니다.


이 개발의 주요 초점은 플랫폼 독립성이며 거의 전적으로 사용 용이성과 상호 운용성에 중점을 둡니다. 이는 예를 들어 5년 전 Arduino 보드가 대부분 ATmega328p 마이크로컨트롤러를 기반으로 했을 때 Arduino 생태계에서 주목할 만한 변화입니다. 몇 년 후 ATtiny85 마이크로컨트롤러에 Arduino 스케치를 프로그래밍하고 작성하는 것이 이미 가능했습니다. 그 이후로 많은 것이 변했습니다. 우리는 이제 라즈베리 파이를 가지고 있고 인텔은 IoT 시장에서 그 자체로 이름을 올렸습니다.


다른 회사와 조직은 이미 Raspberry Pi 및 기타 단일 보드 컴퓨터의 온라인 환경에 기여했지만 Massimo Banzi가 마침내 공개한 것은 Arduino 조직에서 오랫동안 기다려온 의미 있는 변화입니다.


Massimo Banzi의 공연을 보고 싶은 분들을 위해 영상을 제공합니다.

RemoteXY 클라우드 서버를 통해 연결하면 인터넷이 있는 전 세계 어디에서나 장치를 제어할 수 있습니다.

ESP8266 모듈은 WiFi 핫스팟에 연결하기 위한 클라이언트로 구성됩니다. 액세스 포인트는 인터넷에 액세스할 수 있어야 합니다. RemoteXY 라이브러리는 장치가 클라우드 서버에 등록되었는지 확인합니다.

모바일 앱은 장치에 직접 연결되지 않고 클라우드 서버에 연결됩니다. 따라서 장치는 인터넷의 어느 곳에서나 액세스할 수 있습니다.

메모:현재 클라우드 서버를 통한 연결은 테스트 단계에 있습니다. 결과적으로 서버 작동이 중단될 수 있습니다.

1단계: GUI 프로젝트 생성

단계 5ESP8266 구성

ESP8266 모듈을 구성해야 합니다. 모듈에 이미 필요한 기본 설정이 있을 수 있지만 확인하는 것이 좋습니다.

확인 사항:

  • 이 모듈에는 v0.40 이상의 버전의 AT 명령을 지원하는 펌웨어가 있습니다.
  • 모듈은 115200의 속도로 구성됩니다.

6 단계 ESP8266을 Arduino Uno에 연결

아래와 같이 ESP8266을 Arduino Uno에 연결합니다. RX-TX 핀은 교차 연결되어 있습니다.

ESP8266 모듈의 신호 레벨은 3.3V이고 Arduino는 5V이므로 신호 레벨을 변환하려면 저항 전압 분배기를 사용해야 합니다.


7단계 Arduino에 스케치를 업로드합니다.

스케치는 일반적인 방법으로 Arduino에 로드됩니다. 그러나 ESP8266 모듈은 핀 0과 1에 연결되어 있기 때문에 프로그래밍이 불가능합니다. 컴파일러에 오류가 표시됩니다.

프로그래밍하기 전에 핀 0과 1에서 ESP8266으로 가는 전선을 분리하십시오. 프로그래밍을 수행하십시오. 그런 다음 연락처를 제자리에 다시 놓습니다. Arduino 재설정 버튼을 누릅니다.

메모:프로그래밍이 성공했다는 첫 번째 표시는 재설정 직후 깜박이는 ESP8266 모듈의 파란색 LED입니다. 깜박이는 파란색 LED는 Arduino와 ESP8266 간의 통신을 의미합니다. 이 0.5초 동안 Arduino는 액세스 포인트에 연결하도록 ESP8266을 구성합니다. 잠시 후 LED가 다시 깜박이면 RemoteXY 클라우드 서버에 등록을 시도한다는 의미입니다.

8단계. 모바일 앱에서 연결합니다.

ESP8266 전원 확인

ESP8266에 전원 공급 장치의 전원이 충분하지 않을 수도 있습니다. 일부 Arduino 보드에는 피크 모드에서 200-300mA를 전달할 수 없는 약한 3.3V 전압 조정기가 있습니다. 이 경우 직렬 모니터에서 명령 시퀀스의 중단도 볼 수 있습니다.

작년에 Microsoft는 스마트 장치 및 통합 전자 장치를 관리하기 위한 클라우드 기반 백엔드를 발표했습니다. Azure IoT Hub를 사용하면 최소한의 프로그래밍으로 장치 간 상호 작용을 설정하고 Azure 기반 프로젝트에 포함할 수 있습니다. 이것이 어떻게 작동하는지 확인하기 위해 Arduino 컨트롤러에 연결된 센서에서 클라우드로 판독값을 보내는 간단한 작업을 분석합니다.

그래서 우리는 간단한 장치를 가지고 있습니다. 컨트롤러, 소형 브레드보드, 포토레지스터(광센서) 및 안정화 저항으로 구성됩니다. 컨트롤러는 Wi-Fi가 내장된 Genuino MKR1000입니다. 같은 것을 원하면 35달러입니다. 보드는 마이크로 USB로 전원이 공급됩니다.


원칙적으로 모든 센서를 설치할 수 있습니다. 이는 향후 계획에 어떤 식으로도 영향을 미치지 않습니다. 아래 그림은 우리 장치가 클라우드와 통신하는 체계를 보여줍니다.



디바이스는 데이터를 IoT Hub로 전송하며, 여기에서 Stream Analytics 서비스를 통과한 후 데이터베이스에 입력되고 Power BI를 사용하여 처리됩니다. 나중에 이 모든 것을 다루겠지만 지금은 기본부터 시작하겠습니다.

정보

기사 끝에 결과 프로젝트의 소스가 있습니다. 비슷한 일을 계획하고 있다면 확인하는 것을 잊지 마십시오.

IoT Hub는 공식적으로 러시아어로 "Internet of Things Center"로 번역됩니다. 장치에서 데이터를 수신하고 메시지나 명령을 보낼 수 있습니다.

IoT Hub 외에도 Event Hub("이벤트 허브")라는 또 다른 서비스가 장치와 상호 작용할 수 있습니다. 대역폭이 더 높지만 장치에서 클라우드로 한 방향으로만 메시지를 보냅니다. IoT Hub는 MQTT, WebSocket을 통한 MQTT, AMQP, WebSocket을 통한 AMQP 및 HTTP와 같은 프로토콜을 지원합니다. Event Hub는 AMQP, WebSocket 및 HTTP를 통한 AMQP를 지원합니다. Microsoft 웹 사이트에서 허브의 차이점과 허브를 함께 사용하는 방법에 대해 자세히 알아볼 수 있습니다. 우리는 IoT Hub에 대해 공부할 것입니다(더 흥미롭습니다).

이전에 그는 모니터링을 위한 Arduino 장치를 만들기 위해 자전거를 발명했습니다.

그것은 흥미로웠다.

/* -- 새 프로젝트 -- 그래픽 사용자 인터페이스의 이 소스 코드는 RemoteXY 편집기에 의해 자동으로 생성되었습니다. RemoteXY 라이브러리 2.3.5 이상 버전을 사용하여 이 코드를 컴파일하려면 http://remotexy.com/en/library/ 링크로 다운로드하십시오. RemoteXY 모바일 앱을 사용하여 연결하려면 http://remotexy.com/en/download/ 링크를 사용하십시오. ANDROID 4.3.1 이상 버전 - iOS 1.3.5 이상 버전의 경우 이 소스 코드는 자유 소프트웨어입니다. Free Software Foundation에서 발행한 GNU Lesser General Public License의 조건에 따라 이를 재배포 및/또는 수정할 수 있습니다. 라이선스 버전 2.1 또는 (귀하의 선택에 따라) 이후 버전. */ ////////////////////////////////////////// // RemoteXY 라이브러리 포함 ///////////////////////////////////////////////////// // 연결 모드 정의 및 RemoteXY 라이브러리 연결 #define REMOTEXY_MODE__ESP8266_HARDSERIAL_CLOUD #include // 연결 설정 #define REMOTEXY_SERIAL Serial #define REMOTEXY_SERIAL_SPEED 9600 #define REMOTEXY_WIFI_SSID "***********" #define REMOTEXY_WIFI_PASSWORD "**********" #define REMOTEXY_CLOUD_SERVER "cloud.remotexy .com" #define REMOTEXY_CLOUD_PORT 6376 #define REMOTEXY_CLOUD_TOKEN "******************************" #include // DHT11 라이브러리 추가 dht11 DHT; // 클래스 변수 dht11 선언 #define DHT11_PIN 7 // 디지털 핀 4번에 연결된 DHT11 센서 const int analogSignal = A3; //아날로그 신호 핀 연결 const int digitalSignal = 8; //디지털 신호 핀 부울 noGas 연결; //가스 존재 값 저장 변수 int gas = 0; //가스 플로트 hum의 양을 저장하기 위한 변수 = 0; //습도 저장 변수 float temp = 0; //온도를 저장하기 위한 변수 int chk; //DHT 오류 저장을 위한 변수 char msgBuffer; // 인터페이스 구성 #pragma pack(push, 1) uint8_t RemoteXY_CONF = ( 255,1,0,24,0,74,0,8,13,2, 2,0,38,44,22,11,7, 81,22,11, 2,26,31,31,79,78,0,79,70,70, 0,66,132,10,13,31,24,7,10,27, 21,2,24, 66.132.56.13.31.24.4, 41.31.24.2.24.67.4.16.5.20 4, 63,6,20,5,39,52,20,5,2,26, 11); // 구조는 컨트롤 인터페이스의 모든 변수를 정의합니다. level_2; // =0..100 레벨 위치 char text_1; // = null로 끝나는 UTF8 문자열 char text_2; // = null로 끝나는 UTF8 문자열 // 기타 변수 uint8_t connect_flag; // = 와이어가 연결되면 1, 그렇지 않으면 = 0 ) 리모트XY; #pragma 팩(팝) //////////////////////////////////////////// / // END RemoteXY 포함 /////////////////////////////////////////////////// / /// #define PIN_SWITCH_1 13 void setup() ( RemoteXY_Init (); pinMode (PIN_SWITCH_1, OUTPUT); // 당신이 코드를 설정하려면 ) void loop() ( RemoteXY_Handler (); digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1== 0 )?LOW:HIGH); noGas = digitalRead(digitalSignal); //가스 존재 값 읽기 gas = analogRead(analogSignal); // 그리고 그 양 chk = DHT.read(DHT11_PIN); hum = DHT. 습도; 온도 = DHT.온도; RemoteXY.level_1 = hum; RemoteXY.level_2 = temp; dtostrf(hum, 6, 2, RemoteXY.text_1); dtostrf(temp, 6, 2, RemoteXY.text_2); // TODO 당신 루프 코드 // RemoteXY 구조를 사용하여 데이터 전달)

우리는 보드에서 샌드위치를 ​​사용합니다.

갑자기 바로 작동했습니다.

위 사진까지 RemoteXY 클라우드 서비스를 발견한 지 한 시간이 지났습니다.

RemoteXY 작업의 특징.

1. 모든 것이 매우 간단합니다. 나름대로 좋습니다. 예를 들어 Blynk와 Cayenne을 사용하면 한 시간 안에 처음부터 알아낼 수 없을 것입니다. 예를 들어 "KaScada Cloud"를 사용하려면 특수 스트레이를 구입해야 합니다.

2. 서버 측에는 데이터 처리 및 저장이 없습니다. 보드와의 연결이 없습니다. "연결 없음"이 응용 프로그램에서 중단됩니다.

3. 5개의 디자인 요소만 무료이지만 PRO 응용 프로그램은 소요 시간의 반나절을 넘지 않습니다.

4. 하나의 어플리케이션에서 클라우드 서버와 직접적으로 보드와 통신이 가능합니다. 물론 동시에는 아닙니다. 그리고 빠르게 전환하는 것은 불가능합니다. 보드에서 스케치를 변경해야 합니다. 블루투스와 USB를 통해 스마트폰 보드와 통신도 가능하다.