Developed by the Sweet Pea team, LeoFi is an Arduino-compatible board with an integrated Wi-Fi module.
LeoFi board is built an ATmega32u4MCU and the CC3300 module with the onboard WiFi chip. TI CC3300 module is an wireless network processor which supports IEEE 802.11 b/g and Embedded IPv4 TCP/IP stack.
There are so many cloud-based service platform for Internet of Things. The platform which is cobined by “Arduino + Ethernet shied” is chosen as their reference end-node device. So, I found the list cloud platform which uses Ethernet shield for their device.
#Cloud Service는 이제 Smart phone으로 대표되는 Smart Device만의 전유물리 아닌 #IoT의 화두가 되었습니다.
Xively가 처음 보여주었던 #Visualization은 물론이고 이제는 #Log, #Trigger, #Alert까지 그 기능이 확대되고 있습니다.
쉽게 말씀드리면, IoT Device가 보내온 데이터를 수신한 Cloud Server는 그 데이터를 수신하여 그 데이터를 기반으로 (log) 임의의 설정 값과 비교하여 설정값에서 (Trigger) Twitter같은 SNS와 연동하여 개인에게 메시지를 (Alert)를 보내고 있습니다. 한마디로 IoT / SNS / Cloud 의 장벽이 모호해지고 있습니다.
아래에 리스트된 Could Service업체들은 Arduino Platform이 IoT Device에 가능하면서 Ethernet혹은 WiFi를 가진 업체들입니다. 아래의 업체들도 지원하겠지만, 3G/BLE/Zigbee등을 지원하는 업체까지 포함하면 더욱 많은 업체들이 있습니다.
친근하게 접할 수 있는 OpenHardware Platform인 Arduino에서 Ethernet Shield에 적용한 업체들의 Blog/Github/Website/Forum을 살펴보았습니다.
플랫폼른 점점 가격이 떨어지고 대량생산만들어가면 3D Printer값도 현실적이 되겠네 ㅋㅋ AT90USB: The high-performance, low-power Atmel 8-bit AVR RISC-based microcontroller combines 128KB ISP flash memory with read-while-write capabilities, 4KB EEPROM, 8KB SRAM, 48 general purpose I/O lines, 32 general purpose working registers, real time counter, 4 flexible timer/counters with compare modes and PWM, USART, byte oriented 2-wire serial interface, USB 2.0 low-speed and full-speed device, an 8-channel 10-bit A/D converter with optional differential input stage with programmable gain, programmable watchdog timer with internal oscillator, SPI serial port, JTAG (IEEE 1149.1 compliant) interface for on-chip debugging, and six software selectable power saving modes.
By executing powerful instructions in a single clock cycle, the device achieves throughputs approaching 1 MIPS per MHz, balancing power consumption and processor speed.
#Becky Sten@Adafruit이 최근 #Wearable관련 발표를 OSH2014 Rome에서도 발표했어고 그이에 이 Makefair2014 Rome에서는 Adafuit&Adruino가 Wearable분야에 협력하기로 했었죠. Platform은 #Arduino Gemma! 뭐 그 뒤에는 Atmel!
WINC1500 wireless module *The Arduino Wi-Fi Shield 101 is powered by Atmel’s wireless network controller, part of the Atmel SmartConnect family. It also includes the ATECC108 device, from the CryptoAuthentication family, which allows users to easily incorporate hardware authentication capability in their design.
최근 많은 Cloud Service들이 Client들이 Device에 접속하기 위해 Device에 바로 접속하는 것이 아니고 이미 등록되어 있는 Server에 접속하여 Device를 제어 및 모니터링 하는 Service들이 다양하게 존재한다. 이러한 경우 Server는 보안 및 네트워크 구성이 다양하며, Device의 경우 Light weight한 구현을 할 수 있고, Clinet도 물론 편리한 UI, Visulaztion등의 이유로 많은 장점을 갖는다.
이번 Posting에서는 Cloud service중 Yaler를 통해 Cloud Service를 경험해보자. ㅋㅋ
Yaler는 embedded system의 접근을 위해 relay infrastructure을 제공한다. relay infrastructure는 control, manage, secure등을 보장한다.
아리의 두그림은 yaler.net에서 relay infrastructure를 설명하는 자료이다. 위의 그림(a)은 Device를 NAT/Farewell 하위에 네트워크를 구성한 경우이며 이때에는 Web client가 Device에 접근하기 위해 Device의 정보이외에도 Network상에서 보안관련 정보나 NAT의 설정등의 정보 및 설정이필요하다. IoT시대에 많은 Device등을 고려한다면 Device정보을 비롯한 접근을 위한 정보까지 관리하는 것은 그렇게 쉽지는 않을 것으로 생각되며Yaler는 그림(b)의 relay infrastructure을 구성하여 Yaler relay라고 불리는 Server를 통해 Device를 접속할 수 있다. Device를 Yaler relay에 binding하여 Device에 대응되는 Relay Host, Relay Domain, Secret Key를 할당받게된다. Web Client 는 이를 이용하여 Device가 아닌 Yaler relay에 접속하게 되며 Yaler relay는 Binding 정보를 이용하여 Device에 접속하는 구조이다.
아래의 Yaler이해하기 자료의 slideshare의 자료에서는 Publish HTTP라는 단어로 좀 더 추체적으로 Yaler에 대해 설명되어 있습니다.
Do Yaler:
Yaler를 체험하기 위해 필요한 Hardware는 Arduino Board와 Ethernet Shield이다. 그리고 Yaler relay는 yaler.net를 사용하였다
Make account on yaler.net: 무료계정은 한달간 이용할 수 있다. 계정을 만드는 동시에 아래와 같이 Relay Host, Relay Domain, Secret Key을 할당 받는다.
Setting Device : 위의 그림에서 “set up a device” 거침없이 클릭! 아래서 Arduino선택!
Yaler.net Lib.: 위의 단계에서 Arduino를 클릭하면 아래와 같은 페이지가 나온다. 하기의 페이지에 Yaler Lib의 설치 예제까지 나와 있다. 일단 “YalerEthernetServer.zip”를 다운받고 IDE.1.5.7인경우 “C:\Program Files\Arduino\libraries”밑에 압축을 푼다. 그럼 라이브러리 준비 끝.
// Enter a MAC address for your controller below. // Some Ethernet shields have a MAC address printed on a sticker // Local EthernetServer at http://LOCAL_IP/ // (e.g.http://192.168.0.7/) #if defined(WIZ550io_WITH_MACADDRESS) // Use assigned MAC address of WIZ550io ; //WIZ550io은 MAC 내장이기 때문에 이부분이 필요없다. #else byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; #endif
// Get a free relay domain at http://yaler.net/ to replace RELAY_DOMAIN below // Public YalerEthernetServer is accessible athttp://RELAY_DOMAIN.yaler.net/ YalerEthernetServer server(“try.yaler.net”, 80, “RELAY_DOMAIN”);// REALY_DOMAIN 대신 할당받는 Relay Domain을 입력한다.
void setup() { Serial.begin(9600); Serial.println(“Aquiring IP address…”);
#if defined(WIZ550io_WITH_MACADDRESS) // Use assigned MAC address of WIZ550io
void sendResponse(EthernetClient client) { client.print(“HTTP/1.1 200 OK\r\n”); client.print(“Connection: close\r\n”); client.print(“Content-Length: 5\r\n”); //Hello는 5자라서 Content-Length는 5! client.print(“\r\n”); client.print(“Hello”); //이부분이 Http Client 즉 Web brower에 표시되는 부분 위의 Content-Length에 설정된 Length만큼 출력되니 이부분 참고 하여 msg 부분을 수정한다 }
void loop() { EthernetClient client = server.available(); if (client && client.connected()) { client.find(“\r\n\r\n”); // Consume incoming request sendResponse(client); delay(1); // Give the Web browser time to receive the data client.stop(); } }
Demo: Web Client (Chrome)에 URL을 Relay Domain.try.yaler.net형식으로 입력한뒤 Device에 접속하여 message을 받은 모습