ESPr × Milkcocoa for Arduino SDK
ESPr × Milkcocoa for Arduino SDK
11월에 명성 화악 라는 IT 페스티벌에서 아트를 테마로 한 IoT의 전시를 실시했습니다.
올해의 MashupAwards에도 참가했습니다.
htp://는 ckぉg. jp/rks/49919
전시물에는 ESPr Developer (ESP-WROOM-02 개발 보드) 을 사용하고 있습니다만, ESPr에는 Arduino의 스케치를 직접 기입할 수 있습니다.
즉, Milkcocoa의 ArduinoSDK를 사용한 스케치를 그대로 유용할 수 있습니다.
샘플 코드
동작으로서는
onpush()
로 모니터링하여 처리합니다.라는 간단한 것입니다.
setColor
주위는, 작성한 IoT 디바이스의 LED 색을 바꾸는 처리입니다. (이번은 상세 할애합니다.)실제로는 ArduinoIDE로 작성한 파일이므로 확장자가
.ino
입니다만, 코드 하이라이트 유효화를 위해 .c
로 기재하고 있습니다.sample.c
#include <Milkcocoa.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <Adafruit_NeoPixel.h>
#define MILKCOCOA_APP_ID "<your-milkcocoa-app-id>"
#define MILKCOCOA_DATASTORE_NETWORK "network_status"
#define MILKCOCOA_DATASTORE_COLOR "color"
#define MILKCOCOA_SERVERPORT 1883
#define MAX_VAL 64 // 0 to 255 for brightness
const char* ssid = "<your-wifi-ssid>";
const char* password = "<your-wifi-password>";
const char MQTT_SERVER[] PROGMEM = MILKCOCOA_APP_ID ".mlkcca.com";
const char MQTT_CLIENTID[] PROGMEM = __TIME__ MILKCOCOA_APP_ID;
boolean connectedStatus = false;
int colorCode = 1;
WiFiServer server(80);
WiFiClient client;
Milkcocoa milkcocoa = Milkcocoa(&client, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID);
Adafruit_NeoPixel pixel = Adafruit_NeoPixel(60, 12, NEO_GRB + NEO_KHZ800);
extern "C" {
#include "user_interface.h"
}
void onpush(DataElement *elem);
void setup() {
Serial.begin(115200);
// Connect to WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.println(WiFi.localIP());
pixel.begin();
pixel.show(); // Initialize all pixels to 'off'
// Milkcocoa
milkcocoa.on(MILKCOCOA_DATASTORE_COLOR, "push", onpush);
}
void loop() {
if (!connectedStatus) {
milkcocoa.loop();
DataElement elem = DataElement();
elem.setValue("status", "connected");
milkcocoa.push(MILKCOCOA_DATASTORE_NETWORK, &elem);
connectedStatus = true;
}
milkcocoa.loop();
}
void onpush(DataElement *elem) {
Serial.println(elem->getInt("colorCode"));
colorCode = elem->getInt("colorCode");
setColor(colorCode);
}
void setColor(uint16_t colorCode) {
uint16_t i;
switch (colorCode) {
case 1:
// red
for (i=0; i<pixel.numPixels(); i++) {
pixel.setPixelColor(i, pixel.Color(MAX_VAL, 0, 0));
pixel.show();
}
break;
case 2:
// green
for (i=0; i<pixel.numPixels(); i++) {
pixel.setPixelColor(i, pixel.Color(0, MAX_VAL, 0));
pixel.show();
}
break;
case 3:
// blue
for (i=0; i<pixel.numPixels(); i++) {
pixel.setPixelColor(i, pixel.Color(0, 0, MAX_VAL));
pixel.show();
}
break;
}
}
요약
Arduino 계열의 IoT 보드는 SDK 덕분에 Milkcocoa를 쉽게 사용할 수 있습니다. ESPr은 WiFi만 있으면 그것 단독으로 네트워크에 접속 가능하므로, Milkcocoa와의 궁합은 발군입니다.
이쪽의 발표 자료에도 개요를 실고 있으므로, 흥미있는 분은 꼭 참조해 주세요.
htps : // speake r에서 ck. 코 m / 샤노 m / 아 rt-i-t-in-Myojo Wuraku-2016
Reference
이 문제에 관하여(ESPr × Milkcocoa for Arduino SDK), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shanonim/items/1bf62bda2dd4288b22d4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)