반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형

Configuring the onboard WiFi  (English)



Yún(雲)은 액세스 포인트 역할을하지만 기존 네트워크에도 연결할 수 있습니다. 이 지침은 Yún(雲)을 무선 네트워크에 연결하는 과정을 안내합니다. Yún(雲)은 WEP, WPA 및 WPA2 암호화를 지원하는 네트워크는 물론 암호화되지 않은 네트워크에도 연결할 수 있습니다.


처음 Yún(雲)의 전원을 켜면 Linino-XXXXXXXX라는 WiFi 네트워크가 생성됩니다. 컴퓨터를 이 네트워크에 연결하십시오.


IP 주소를 얻은 다음 웹 브라우저를 열고 주소 표시 줄에 http : //linino.local 또는 192.168.240.1을 입력하십시오. 잠시 후 암호를 묻는 웹 페이지가 나타납니다. "doghunter"를 입력하고 로그인 버튼을 클릭하십시오.






현재 네트워크 연결에 대한 진단 정보가있는 페이지를 찾을 수 있습니다. 첫 번째는 WiFi 인터페이스이고, 두 번째는 Ethernet 연결입니다. 진행하려면 Configuration 버튼을 누르십시오.





새 페이지에서 Yún(雲)을 구성하고 고유 한 이름을 지정하고 연결할 네트워크를 식별합니다.


board 이름 입력란에 Arduino의 고유 이름을 입력하십시오. 이것을 나중에 참조 할 때 사용할 것입니다.


Arduino에 8 자 이상의 암호를 선택하십시오. 이 필드를 공백으로두면 기본 암호 인 doghunter가 유지됩니다


원하는 경우 시간대와 국가를 설정할 수 있습니다. 이러한 옵션은 로컬 WiFi 네트워크 연결에 도움이되므로 설정하는 것이 좋습니다. 현지 시간대를 설정하면 해당 국가의 규제 도메인도 선택됩니다.


연결하려는 WiFi 네트워크의 이름을 입력하십시오.


보안 유형을 선택하고 암호를 입력하십시오.





Configure & Restart (구성 및 재시작) 버튼을 누르면 Arduino가 재설정되고 지정된 네트워크에 연결됩니다. Arduino 네트워크는 잠시 후 종료됩니다.





이제 Yún(雲)에게 지정한 네트워크에 가입 할 수 있습니다.





Programming the 32U4 over WiFi


Yún(雲)이 컴퓨터와 동일한 네트워크에 있으면 무선으로 연결하여 프로그래밍 할 수 있습니다.

Yún(雲)을 구성한 후 구성 설정에서 지정한 네트워크에 연결하십시오. Arduino IDE를 엽니 다.

Tools> Port 메뉴에서 Yún(雲)의 이름과 IP 주소를 나열하는 항목이 보여야 합니다. board 메뉴에서 Arduino Yún(雲)을 선택하십시오.

Blink example (File > Examples > 01Basics > Blink)을 열고 board에 스케치를 업로드하십시오. 관리자 암호를 묻는 메시지가 나타납니다. 구성 화면에서 입력 한 것을 사용하십시오.

프로그램이 업로드되면 32U4 프로세서가 다시 시작됩니다. 13 번 핀에 연결된 LED가 깜박 거려야합니다.


Using the onboard Ethernet


Yun을 Ethernet 케이블로 유선 네트워크에 연결하면 DHCP를 통해 자동으로 연결을 시도합니다. board는 Wi-Fi와 마찬가지로 포트 메뉴에 표시됩니다.

Yun을 컴퓨터에 직접 연결하려면 컴퓨터의 인터페이스가 고정 IP 주소를 갖도록 구성하거나 DHCP 서버의 역할을 수행하십시오.

NB : Ethernet 인터페이스는 eth1이 아니라 eth0입니다.


Tutorial (English)





Tutorial (Korean)






Communicating with LininoOS via Bridge


Bridge 라이브러리는 Arduino와 LininoOS 간의 통신을 가능하게합니다. 아래에 표현된 대로 둘 사이에서 서로 다른 종류의 커뮤니케이션을 용이하게 해 주는 여러개의 utility class들이 있습니다. 좀 더 자세한 내용은 Bridge library reference 페이지를 참조하세요.





WiFi 및 Ethernet 인터페이스, USB 호스트 및 SD 카드는 모두 AR9331에 연결됩니다. Bridge 라이브러리를 사용하면 이러한 장치로 작업하고 스크립트를 실행하고 웹 서비스와 통신 할 수 있습니다.


The Console

Bridge를 기반으로 한 콘솔을 사용하면 직렬 모니터에서와 같이 무선으로 정보를 Yún(雲)에서 컴퓨터로 보낼 수 있습니다. 그것은 SSH를 통해 Yún(雲)과 컴퓨터 사이의 보안 연결을 만듭니다.

다음을 Yún(雲)에 Load 하세요.

#include <Console.h>

const int ledPin = 13; // the pin that the LED is attached to
int incomingByte;      // a variable to read incoming serial data into

void setup() {
  // initialize serial communication:
  Bridge.begin();
  Console.begin();

  while (!Console){
    ; // wait for Console port to connect.
  }
  Console.println("You're connected to the Console!!!!");
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // see if there's incoming serial data:
  if (Console.available() > 0) {
    // read the oldest byte in the serial buffer:
    incomingByte = Console.read();
    // if it's a capital H (ASCII 72), turn on the LED:
    if (incomingByte == 'H') {
      digitalWrite(ledPin, HIGH);
    }
    // if it's an L (ASCII 76) turn off the LED:
    if (incomingByte == 'L') {
      digitalWrite(ledPin, LOW);
    }
  }
  delay(100);
}




콘솔을 보려면 포트 메뉴에서 Yún(雲)의 이름과 IP 주소를 선택하십시오. Yún(雲)은 컴퓨터가 Yún(雲)과 동일한 LAN에있는 경우에만 포트 메뉴에 나타납니다. board가 다른 네트워크에 있으면 Ports (포트) 메뉴에 표시되지 않습니다. 포트 모니터를 엽니 다. Yún(雲)의 암호를 묻는 메시지가 나타납니다.


터미널 창을 열고 ssh root@yourYunsName.local 'telnet localhost 6571'을 입력 한 다음 enter를 눌러 콘솔을 볼 수도 있습니다.


주의 : Windows를 사용하는 경우 터미널 에뮬레이터를 설치해야합니다. PuTTY는 좋은 프로그램입니다. PuTTY에서는 위의 두 명령을 별도로 입력해야합니다.


'H'를 입력하면 핀 13의 LED가 켜지고 'L'을 입력하면 LED가 꺼집니다.


Process


프로세스 명령을 사용하면 Arduino를 통해 LininoOS에서 Linux 프로세스를 실행할 수 있습니다.

다음 예에서 LininoOS는 curl을 사용하여 서버에 연결하고 ASCII 텍스트를 다운로드합니다. 텍스트를 직렬 연결로 인쇄합니다.

#include <Process.h>

void setup() {
  // Initialize Bridge
  Bridge.begin();

  // Initialize Serial
  Serial.begin(9600);

  // Wait until a Serial Monitor is connected.
  while (!Serial);

  // run various example processes
  runCurl();
}

void loop() {
  // Do nothing here.
}

void runCurl() {
  // Launch "curl" command and get Arduino ascii art logo from the network
  // curl is command line program for transferring data using different internet protocols
  Process p;        // Create a process and call it "p"
  p.begin("curl");  // Process that launch the "curl" command
  p.addParameter("http://arduino.cc/asciilogo.txt"); // Add the URL parameter to "curl"
  p.run();      // Run the process and wait for its termination

  // Print arduino logo over the Serial
  // A process output can be read with the stream methods
  while (p.available()>0) {
    char c = p.read();
    Serial.print(c);
  }
  // Ensure the last bit of data is sent.
  Serial.flush();
}




Using Bridge to pass information between processors

Bridge를 사용하면 키 / 값 쌍을 사용하여 두 프로세서간에 정보를 전달할 수 있습니다.

이 예제는 Bridge 라이브러리를 사용하여 REST 호출을 통해 board의 디지털 및 아날로그 핀에 액세스하는 방법을 보여줍니다. 브라우저를 통해 REST 스타일 호출을 사용할 때 자신의 API를 만드는 방법을 보여줍니다.

이 예제를 실행할 때 컴퓨터가 Yun과 동일한 네트워크에 있는지 확인하십시오.

board를 프로그래밍했으면 핀에 값을 요청하고 핀에 값을 쓰고 핀을 입력 또는 출력으로 구성 할 수 있습니다.

REST 암호가 해제되어 있으면 다음과 같은 URL 구조의 브라우저를 사용할 수 있습니다.



원하는 경우 브라우저 대신 명령 행에서 curl 명령을 사용할 수 있습니다.

Bridge, YunServer 및 YunClient 라이브러리를 포함해야합니다.


#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>



Yun이 연결된 클라이언트를 청취 할 수 있도록 서버를 인스턴스화하십시오.

YunServer server;

setup ()에서 디버깅을 위해 직렬 통신을 시작하고 Bridge가 시작되는 동안 핀 13의 내장 LED를 HIGH로 설정하십시오. Bridge.begin ()이 (가) 차단 중이며 완료하는 데 약 2 초가 걸립니다. 브리지가 시동되면 LED를 끄십시오.

void setup() {
  Serial.begin(9600);
  pinMode(13,OUTPUT);
  digitalWrite(13, LOW);
  Bridge.begin();
  digitalWrite(13, HIGH);



setup ()의 두 번째 부분에서는 YunServer의 인스턴스에 localhost에서만 들어오는 연결을 수신 대기하도록 지시합니다. LininoOS와의 연결은 핀 분석 및 제어를 위해 32U4 프로세서로 전달됩니다. 이것은 포트 5555에서 발생합니다. server.begin ()을 사용하여 서버를 시작합니다.



server.listenOnLocalhost();
  server.begin();
}


loop ()에서 YunClient의 인스턴스를 만들어 연결을 관리합니다. 클라이언트가 연결되면 사용자 정의 기능 (아래 설명 참조)에서 요청을 처리하고 완료되면 연결을 닫습니다.

루프 ()의 끝 부분에 지연을 두는 것은 프로세서가 너무 많은 일을하지 않도록하는 데 도움이됩니다.


void loop() {
  YunClient client = server.accept();

  if (client) {
    process(client);
    client.stop();
  }

  delay(50);
}



YunClient를 인수로 사용하는 process라는 함수를 만듭니다. 들어오는 정보를 보관할 문자열을 작성하여 명령을 읽으십시오. REST 명령을 기능 (디지털, 아날로그 및 모드)별로 구문 분석하고 해당 이름이 지정된 함수에 정보를 전달하십시오.


void process(YunClient client) {
  String command = client.readStringUntil('/');

  if (command == "digital") {
    digitalCommand(client);
  }
  if (command == "analog") {
    analogCommand(client);
  }
  if (command == "mode") {
    modeCommand(client);
  }
}




디지털 명령을 처리하는 함수를 만듭니다. 클라이언트를 인수로 승인하십시오. 명령의 핀과 값을 보유 할 로컬 변수를 작성하십시오.

void digitalCommand(YunClient client) {
  int pin, value;


 
client.parseInt ()를 사용하여 핀에 대한 클라이언트의 요청을 구문 분석하십시오.

핀의 뒤의 문자가 「/」의 경우는, URL가 1 또는 0의 값을 가지는 것을 의미합니다. 이 값은 핀에 값을 할당하여 HIGH 또는 LOW로 만듭니다. 말미의 「/」가없는 경우, 지정된 핀으로부터 값을 읽어들입니다.

pin = client.parseInt();

  if (client.read() == '/') {
    value = client.parseInt();
    digitalWrite(pin, value);
  }
  else {
    value = digitalRead(pin);
  }


값을 클라이언트에 인쇄하고 데이터 저장소 키를 현재 핀 값으로 업데이트하십시오.

F ()에서 클라이언트에 값을 래핑하면 플래시 메모리 형태로 인쇄됩니다. 이렇게하면 URL과 같은 긴 문자열을 처리 할 때 유용한 SRAM의 공간을 절약 할 수 있습니다.

키는 핀이 될 것이고, 타입이 될 것이다. 예를 들어 디지털 핀 2에 대해 D2가 저장됩니다.이 값은 핀이 현재 설정되어 있거나 핀에서 읽은 값이됩니다.

client.print(F("Pin D"));
  client.print(pin);
  client.print(F(" set to "));
  client.println(value);

  String key = "D";
  key += pin;
  Bridge.put(key, String(value));
}


아날로그 입력 핀으로 작업 할 때 D 대신 A로 키를 설정하는 것을 제외하면 동일한 방식으로 아날로그 통화를 처리하는 기능을 설정하십시오.


void analogCommand(YunClient client) {
  int pin, value;

  pin = client.parseInt();

  if (client.read() == '/') {
    value = client.parseInt();
    analogWrite(pin, value);

    // Send feedback to client
    client.print(F("Pin D"));
    client.print(pin);
    client.print(F(" set to analog "));
    client.println(value);

    String key = "D";
    key += pin;
    Bridge.put(key, String(value));
  }
  else {
    value = analogRead(pin);

    client.print(F("Pin A"));
    client.print(pin);
    client.print(F(" reads analog "));
    client.println(value);

    String key = "A";
    key += pin;
    Bridge.put(key, String(value));
  }
}




핀 모드 변경을 처리하는 하나 이상의 함수를 만듭니다. YunClient를 인수로 받아들이고 핀 번호를 저장할 로컬 변수를 만듭니다. 디지털 및 아날로그 기능에서와 마찬가지로 핀 값을 읽습니다.

void modeCommand(YunClient client) {
  int pin;
  pin = client.parseInt();



URL이 올바른지 확인하십시오.


if (client.read() != '/') {
    client.println(F("error"));
    return;
  }



유효한 URL 인 경우 URL을 문자열로 저장하십시오. 모드가 입출력이면, 핀을 구성하여 클라이언트에보고하십시오. 문자열이이 값과 일치하지 않으면 오류를 반환합니다.

String mode = client.readStringUntil('\r');

  if (mode == "input") {
    pinMode(pin, INPUT);
    // Send feedback to client
    client.print(F("Pin D"));
    client.print(pin);
    client.print(F(" configured as INPUT!"));
    return;
  }

  if (mode == "output") {
    pinMode(pin, OUTPUT);
    // Send feedback to client
    client.print(F("Pin D"));
    client.print(pin);
    client.print(F(" configured as OUTPUT!"));
    return;
  }

  client.print(F("error: invalid mode "));
  client.print(mode);
}


이 예제에 대한 자세한 내용은 Bridge Example 페이지에서 확인할 수 있습니다.




최종 수정 2011 년 11 월 4 일 SM

Arduino 시작 안내서의 텍스트는 Creative Commons Attribution-ShareAlike 3.0 License에 따라 사용이 허가되었습니다. 가이드의 코드 샘플은 공개 도메인으로 배포됩니다.

반응형


반응형

Getting Started with the Arduino Yún LininoOS



Arduino Yún(雲)은 다른 Arduino board와는 많이 다릅니다. 프로그래밍 중에는 Arduino Leonardo와 매우 유사하며 동일한 프로세서 인 Atmel ATmega32U4를 사용합니다. 그리고 LininoOS 및 OpenWrt 무선 스택을 실행하는 Atheros AR9331이라는 추가 프로세서가 있습니다. USB를 통해 32U4를 프로그래밍하는 것은 Arduino Leonardo와 동일합니다. Wi-Fi 네트워크에 연결하도록 Yún(雲)을 구성하면 Wi-Fi를 통해 32U4를 프로그래밍 할 수 있습니다.


Quick Start

Arduino Yún(雲)은 모든 board에 공통적 인 통합 개발 환경 인 Arduino Software (IDE)를 사용하여 프로그래밍됩니다. Getting Started에서 설명 된대로 PC에 이 IDE가 설치되어 있어야합니다.



Installing Drivers for the Yún(雲)

OSX


첫 번째로 Yún(雲)을 Mac에 연결하면 "Keyboard Setup Assistant"가 시작됩니다. Yún(雲)을 위해 따로 구성 할 것은 없습니다. 창 왼쪽 상단의 빨간색 버튼을 클릭하여이 대화 상자를 닫을 수 있습니다.




Windows


Arduino Software (IDE)의 Windows 버전에는 이미 적절한 드라이버가 들어 있습니다. 설치하면 운영 체제에서 설치하게됩니다. Yún(雲)을 연결하면 드라이버가 자동으로 설치됩니다.



Linux
Ubuntu 10.0.4 이상용 드라이버를 설치할 필요는 없지만 포트 5353이 방화벽에 의해 차단되지 않도록하십시오.


Open your first sketch

LED blink 예제 스케치를 엽니 다 : File > Examples >01.Basics > Blink.





Select your board type and port


Arduino 또는 Genuino board에 해당하는 Tools> Board 메뉴에서 항목을 선택해야합니다.





Tools | Serial Port menu에서 board의 serial device를 선택하십시오. COM3 나 그 이상이 될 것입니다. (COM1 및 COM2는 일반적으로 하드웨어 직렬 포트 용으로 예약 됨). 이것을 알려면 board를 disconnect 한 후 메뉴를 다시 여세요. 사라지는 항목이 Arduino 또는 Genuino board 입니다. board를 다시 연결하고 해당 직렬 포트를 선택하십시오. board가 WiFi에서 제대로 구성되면 스크린 샷과 같이 포트 목록에서 board를 찾을 수 있습니다.





Upload the program

이제 environment에서 'Upload'버튼을 클릭하기 만하면됩니다. 잠시 기다린 후 - board의 RX 및 TX LED가 깜박이는 것이 보여야 합니다. 업로드가 완료되면 'Done uploading'라는 메시지가 상태 표시 줄에 나타납니다.





업로드가 완료되고 몇 초 후에 on-board LED가 깜박일 것입니다. If it does, congratulations! Arduino Yún(雲)을 잘 사용하고 있는 겁니다. 문제가있는 경우 troubleshooting suggestions을 참조하십시오.




Get inspired

이제 Yún(雲) board를 설정하고 프로그래밍 했으므로  Project Hub 튜토리얼 플랫폼에서 영감을 얻거나 Bridge library and examples를 더 깊이 파고들 수 있습니다. Yún(雲)  hardware page에서 추가 기술 정보를 확인할 수도 있습니다.






Please Read...



Arduino Leonardo와의 차이점





YUn은 32U4 칩 외에도 OpenWrt를 기반으로 한 LininoOS라는 임베디드 시스템 용 Linux 배포판을 실행하는 Atheros AR9331이라는 추가 프로세서를 보유하고 있습니다. Python 2.7의 full install도 포함되어 있습니다.

Yún(雲)은 Leonardo보다 다양한 물리적 특성과 connectors 를 가지고 있습니다. on-board SD 슬롯, Ethernet jack 및 USB-A Host connector가 있습니다. Yún(雲)에는 ower barrel connector가 없습니다. 마이크로 USB 커넥터에서 전원을 공급받을 수 있습니다.

5V 레귤레이터가 내장되어 있지 않습니다. 5V 이상으로 Yún(雲)에 전원을 공급하면 손상 될 수 있습니다. 마이크로 USB 연결에서 Yún(雲)에 전원을 공급하지 않으면 board의 VIN 및 5V 핀에 전원을 공급할 수 있습니다. VIN 핀을 사용하는 경우 5V 이상을 공급할 수 없으므로 board가 손상 될 수 있습니다. 되도록 USB 연결로 Yún(雲)에 전원을 공급하는 것이 권장됩니다.

SD, Ethernet 및 USB-A 커넥터는 물리적으로 32U4 프로세서에 연결되지 않으며 AR9331에 연결됩니다.

Yún(雲)의 32U4는 Serial1을 사용할 수 없다는 점을 제외하면 Leonardo와 같은 방식으로 작동합니다. AR9331 프로세서와 통신하기 위해 예약되어 있습니다.

또한 Yún(雲)에는 WiFi 모듈이 내장되어있어 무선 라우터에 연결하거나 액세스 포인트 역할을 할 수 있습니다.

32u4, WiFi 및 AR9331 프로세서에는 모두 자체 재설정 단추가 있습니다.






Yún(雲)에는 전원, WLAN 연결, WAN 연결 및 USB를 나타내는 몇 가지 상태 LED가 있습니다. 또한 핀 13은 상태 표시등 중 하나에 연결됩니다.





OpenWrt LininoOS


LininoOS는 약 3000 개의 패키지가 내장되어 있으며 OpenWRT 배포를 기반으로합니다. LininoOS는 GPG 서명이있는 패키지 관리 기능을 갖춘 완벽하게 쓰기 가능한 파일 시스템을 제공합니다. LininoIO와 통합되어 IoT 공간을위한 완벽한 리눅스 시스템입니다. LininoOS는 Arduino Yun을 위해 많은 혁신적인 기능들을 제공합니다.


    LininoIO는 마이크로 프로세서 환경에 마이크로 컨트롤러 기능을 통합 할 수있는 소프트웨어 프레임 워크입니다. LininoOS를 사용하여 Linux 측에서 Node.js, Python, Bash 등을 사용하여 응용 프로그램을 간단하게 작성하여 board와 모든 장치를 완벽하게 제어 할 수 있습니다.


    Ideino Node.js가 포함 된 Node.js는 빠르고 확장 가능한 네트워크 애플리케이션을 손쉽게 구축 할 수 있도록 Chrome의 JavaScript 런타임에 구축 된 플랫폼입니다. Node.js는 가볍고 효율적이며 분산 장치에서 실행되는 데이터 집약적 인 실시간 애플리케이션에 완벽한 이벤트 구동 비 차단 I / O 모델을 사용합니다. Ideino는 node.js 응용 프로그램을 작성하고 디버깅 할 수있는 임베디드 편집기입니다.


    AllJoyn은 범용 소프트웨어 프레임 워크와 연결된 제품 및 소프트웨어 응용 프로그램 간의 상호 운용성을 지원하여 동적 인 근거리 네트워크를 만들 수있는 핵심 시스템 세트를 제공하는 오픈 소스 프로젝트입니다.


지속적인 개선과 OpenWrt 커뮤니티와 Arduino 커뮤니티의 제안으로 인해 LininoOS는 계속 개선 되고 있습니다. Yún(雲)에 설치된 LininoOS 를 설치한 지 오래 된 경우 upgrade tutorial 을 확인하고 사용 가능한 최신 버전을 실행하고 있는지 확인하십시오.


웹 인터페이스에 액세스하는 방법은 아래에 설명되어 있습니다.



Install additional software on Linux


Yún(雲)은 "curl"과 "python"을 포함하여 LininoOS에 사전 설치된 여러 소프트웨어를 제공합니다. Yún(雲)에 다른 소프트웨어를 설치 할 수 있습니다. Linux 시스템에서는 "opkg"도구를 사용하여 추가 소프트웨어를 설치할 수 있습니다. LininoOS에 대한 사전 컴파일 된 패키지는 최신 버전에서 찾을 수 있습니다.
LininoOS 시스템과 인터페이스 할 때 Arduino 's Bridge 라이브러리를 통해 액세스하거나 SSH를 통해 명령 행을 사용해야합니다. command line에 익숙하지 않다면 자주 사용되는 프로그램과 몇 가지 기본 사항에 대해 읽어보십시오.


Python



LininoOS에는 Python 2.7 설치가 포함되어 있으며, 여기에 응용 프로그램이나 스크립트를 작성할 수 있습니다. Python에 대한 자세한 내용은 Python 2.7 documentation pages를 참조하십시오.


처음으로 Python을 시작한다면 많은 훌륭한 자료가 온라인에 있습니다. "Learn Python the Hard Way" 는 자신 만의 스크립트로 시작하고 실행하기 위해 알아야 할 모든 것을 다루고 있습니다.



External storage on the Yún


Yún(雲)에 내장 된 비 휘발성 메모리는 쓰기가 제한되어 있으므로 사용하지 않는 것이 좋습니다.


데이터 저장을 위해 microSD 카드 나 thumb drive와 같은 외부 메모리를 사용하거나 스크립트, 웹 페이지 등을 사용할 수 있습니다. Yún(雲)이 32U4를 통해 이러한 드라이브에 대한 정보에 액세스하여 저장하려면 volume의 root에 arduino라는 디렉토리가 있어야합니다.


Web services


LininoOS는 클라이언트와 서버에 REST를 사용합니다. REST는 "Representational State Transfer"의 머리 글자입니다. Arduino 하드웨어의 여러 부분을 URL을 통해 노출하는 소프트웨어 아키텍처입니다.


기본적으로 REST API 액세스는 비밀번호로 보호됩니다. 암호를 변경하지 않고 서비스에 액세스하려면이 설정을 변경할 수 있습니다. 이 설정을 변경하려면 Yún(雲) 구성 패널을 입력하십시오. 페이지 하단에 액세스 변경을위한 토글이 표시됩니다.



REST의 개념에 대한 훌륭한 소개는 여기에서 찾을 수 있습니다.


Yún(雲)이 인식하는 세 가지 REST 엔드 포인트는 다음과 같습니다.


    / arduino
    /데이터
    /mailbox



"/ arduino"디렉토리에는 사전 구성된 것이 없습니다. end point 다음에 URL에 추가 된 것은 웹 서버에서 32U4의 스케치로 전달됩니다. 스케치 내부에서 API를 정의 할 수 있습니다. board의 핀에 액세스하는 방법을 보려면 Bridge 예제를 참조하십시오.


"/ data"는 내부 키 / 값 저장에 액세스하는 데 사용됩니다. 사용할 수있는 통화는 다음과 같습니다.


    / put / KEY / VALUE : 저장소에 값을 저장합니다.
    / get / KEY : JSON에서 요청한 키의 값을 얻습니다.
    / get : JSON에서 전체 저장 목록을 가져옵니다.
    / delete : 내부 저장소를 삭제합니다.



"mailbox"은 Mailbox라는 대기열에 메시지를 추가하는 데 사용됩니다. 메시지 대기열은 Linux 시스템에 저장되며 Arduino 마이크로 컨트롤러에서 읽을 수 있습니다. 사용 가능한 REST 호출은 다음과 같습니다.


    "/ mailbox / message"
   



Resetting the processors (AR9331, WiFi, and 32U4)


LininoOS를 재부팅하는 AR9331을 다시 시작하려면 아날로그 입력 핀과 board의 LED에 가까운 "Yún(雲) RST"재설정 버튼을 누릅니다.


32U4를 다시 시작하고 현재 설치된 Arduino 스케치를 다시 시작하려면 Ethernet 포트 옆에있는 버튼을 두 번 누릅니다.


WiFi 용 재설정 버튼은 USB-A 커넥터 옆에 있습니다. "WLAN RST"라고 표시되어 있습니다. 버튼을 누르면 WLAN LED가 깜박입니다.


다른 네트워크로 이동하여 더 이상 웹 인터페이스를 통해 Yún(雲)에 무선으로 액세스 할 수없는 경우 Wi-Fi 재설정 버튼 (WLAN RST)을 5 초 이상 30 초 미만으로 길게 눌러 Yún(雲)의 네트워크 구성을 재설정 할 수 있습니다. AR9331 프로세서가 재부팅됩니다. WiFi 구성이 재설정되고 Yún(雲)이 자체 Wi-Fi 네트워크 Arduino Yún(雲)-XXXXXXXXXXXXX를 시작합니다. 다른 모든 수정 / 구성은 유지됩니다.


LininoOS 배포를 기본 상태로 재설정하려면 WiFi 재설정 버튼 (WLAN RST)을 30 초 이상 누릅니다. board는 원래 설정으로 되돌아갑니다. 상자에서 꺼내거나 이전에 다시 플래시 한 LininoOS 이미지의 최신 업데이트로 가져 왔습니다. 무엇보다도 이것은 설치된 모든 파일과 네트워크 설정을 제거합니다.



Resetting the password


웹 패널 암호를 재설정하고 변경할 수 있습니다. USB 케이블로 Arduino Yún(雲)을 컴퓨터에 연결하고 YunSerialTerminal 스케치를 업로드하십시오. Arduino IDE의 Bridge 예제에서 찾을 수 있습니다. Yún(雲) 부팅이 완료되면 직렬 모니터를 열고 드롭 다운 메뉴에서 New Line 문자를 선택한 다음 Enter 키를 누릅니다. 아래와 같은 것이 직렬 모니터에 나타나야합니다.






이제 암호를 변경하려면 passwd 명령을 실행해야합니다. passwd를 직렬 모니터 입력에 입력하고 Enter 키를 누릅니다. 새 암호를 입력하라는 메시지가 나타나면 암호를 다시 입력하여 확인하십시오. 원하는 경우 약한 암호 오류를 무시할 수 있습니다. 입력 한 두 암호가 일치하면 시스템 암호가 변경되고 새 암호로 웹 패널에 액세스 할 수 있습니다.



Serial re-enumeration on reset.


Yún(雲)에는 직렬 통신을 처리하는 전용 칩이 없기 때문에 직렬 포트가 가상이라는 것을 의미합니다. 이는 운영 체제와 board 자체의 소프트웨어 루틴입니다. Arduino를 연결할 때 컴퓨터가 직렬 포트 드라이버 인스턴스를 생성하는 것처럼 32u4는 부트 로더를 실행할 때마다 직렬 인스턴스를 생성합니다. 이 board는 USB의 CDC (Connected Device Class) 드라이버의 인스턴스입니다.


즉, 32U4 프로세서를 리셋 할 때마다 USB 직렬 연결이 끊어지고 다시 설정됩니다. board가 직렬 포트 목록에서 사라지고 목록이 다시 열거됩니다. Yún(雲)에 대한 직렬 연결이 열려있는 프로그램은 연결을 끊습니다. 이것은 USB 연결 (보조 ATmega8U2 또는 ATmega16U2 프로세서에서 유지 관리)을 닫지 않고 주 프로세서 (ATmega328P)를 재설정 할 수있는 Arduino Uno와는 대조적입니다. 이 차이점은 드라이버 설치, 업로드 및 통신에 영향을 미칩니다.
직렬 포트를 열면 재설정되지 않습니다.


Yún(雲)은 컴퓨터에서 직렬 포트를 열 때 스케치를 다시 시작하지 않습니다. 즉, board에서 컴퓨터로 이미 전송 된 직렬 데이터 (예 : setup ()에서 전송 된 대부분의 데이터 포함)가 표시되지 않습니다.


이는 아래에 설명 된 콘솔에도 적용됩니다.



즉, 직렬 또는 콘솔 print (), println () 또는 write () 문을 setup ()에 사용하면 직렬 모니터 또는 콘솔 연결을 열 때 해당 문구가 표시되지 않습니다. 이 문제를 해결하려면 포트가 다음과 같이 열려 있는지 여부를 확인할 수 있습니다.

// Serial Monitor가 열릴 때까지 프로그램을 멈춘다.
   while (! Serial);


또는
// Console이 열릴 때까지 프로그램을 중지합니다.
   while (! Console);

반응형
이전 1 다음