오렌지보드 WiFi

Posted by 카이젠8501 카이젠8501
2016.11.24 17:17 IoT/Wi-Fi Module

(주)위즈네트와 (주)네패스가 콜라보레이션 해서 만든 오렌지보드 WiFi를 소개 한다. 아두이노 Uno에 WizFi250(Wi-Fi 모듈)을 연결해서 하나의 보드로 만든 보드이며, 당연히 아두이노 Uno와 완벽 호환하며  아두이노에서 Wi-Fi를 사용하기 위한 WizFi250 Library를 제공한다.


구성품은 아래와 같이 오렌지보드WiFi 1개, 확장 안테나 1개, USB 케이블 1개로 되어 있다.


오렌지 보드를 만드는 과정 중, WizFi250 Library를 구현하기 위해 조금 고생하였지만, (주)네패스를 통해 다양하고 유익한 컨텐츠들이 많이 생성되고 있어 보람을 느끼고 있다.


아래 링크들은 오렌지보드 WiFi를 학습하기 위한 학습 가이드이며 자세한 내용은 아래 링크를 참고 하기 바란다.

http://www.kocoafab.cc/product/orangewifi

 

1Wiznet라이브러리 설치와 WebClient 예제 사용하기
2WebServer 예제 사용하여 조도센서 값 웹브라우저에 출력하기
3OpenWeatherMap API를 사용하여 날씨데이터 받아오기
4OrangeBoard WiFi와 Ubidots를 연동하여 사용하기
5OrangeBoard WiFi와 Ubidots를 연동하여 사용하기2
6OrangeBoard WiFi와 Thingspeak를 연동하여 사용하기
7OrangeBoard WiFi와 Dweet.io를 연동하여 사용하기
8OrangeBoard WiFi의 AP모드 사용하기
9OrangeBoard WiFi, 조이스틱 센서 쉴드로 RC카 제어해보기


저작자 표시
신고
이 댓글을 비밀 댓글로

Using Arduino Serial monitor of Eclipse on Linux

Posted by 카이젠8501 카이젠8501
2014.10.20 13:13 IT 개발/Arduino


Using Arduino Serial monitor of Eclipse on Linux

요 근래 NoteBook의 OS를 windows에서 Linux로 변경 하였다. 변경 된 Linux 환경에서 Eclipse의 Arduino Plugin을 설치하고 Arduino Library 개발 작업을 진행하려고 하는데, Serial Monitor가 동작하지 않는다. 이를 해결하기 위해 구글링한 내용을 정리하여 포스팅 한다.

위 문제를 해결 하기 위해서는 eclipse.ini 파일에 아래 내용을 추가 해야 한다.

-Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0:/dev/ttyACM1:/dev/ttyACM2:/dev/ttyACM3:/dev/ttyUSB0::/dev/ttyUSB1::/dev/ttyUSB2::/dev/ttyUSB3::/dev/ttyUSB4

kaizen@kaizen-SharkBay-Platform ~/eclipse $ pwd
/home/kaizen/eclipse

kaizen@kaizen-SharkBay-Platform ~/eclipse $ ls
about.html   artifacts.xml  dropins  eclipse.ini   features  notice.html  plugins
about_files  configuration  eclipse  epl-v10.html  icon.xpm  p2           readme

kaizen@kaizen-SharkBay-Platform ~/eclipse $ vi eclipse.ini

In Eclipse.ini

위 내용을 추가 한 후, Eclipse.ini 파일을 열면 아래과 같다.

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.standard.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m
-Dgnu.io.rxtx.SerialPorts=/dev/ttyACM0:/dev/ttyACM1:/dev/ttyACM2:/dev/ttyACM3:/dev/ttyUSB0::/dev/ttyUSB1::/dev/ttyUSB2::/dev/ttyUSB3::/dev/ttyUSB4

Reference

http://www.baeyens.it/eclipse/Arduino%20eclipse%20plugin%20FAQ.html#Serialdoesntwork


저작자 표시
신고
이 댓글을 비밀 댓글로
    • 2014.11.24 16:49
    비밀댓글입니다

Arduino Sketch 버전을 1.5.x로 변경시 발생하는 컴파일 에러를 해결하는 방법

Posted by 카이젠8501 카이젠8501
2014.10.20 11:27 IT 개발/Arduino


Arduino Sketch 버전을 1.5.x로 변경시 발생하는 컴파일 에러를 해결하는 방법

아두이노 라이브러리를 작업하면서, Arduino Sketch 버전을 1.5.x로 변경하면 아래와 같은 컴파일 에러가 발생하는 경우가 있다.

error: variable ‘debugreceivingdatatable’ must be const in order to be put into read-only section by means of ‘attribute((progmem))’
error: variable ‘notistring_table’ must be const in order to be put into read-only section by means of ‘__attribute
((progmem))’
error: variable ‘at_cmd_table’ must be const in order to be put into read-only section by means of ‘__attribute
((progmem))’

위와 같은 문제가 발생하였을 때의 제 코드는 아래와 같습니다.

const char at_command_wset[]                PROGMEM = "AT+WSET=0,%s";
const char at_command_wsec[]                PROGMEM = "AT+WSEC=0,%s,%s";
const char at_command_wnet[]                PROGMEM = "AT+WNET=1";
const char at_command_wjoin[]               PROGMEM = "AT+WJOIN";
const char at_command_wstat[]               PROGMEM = "AT+WSTAT";
const char at_command_scon_tcp_client[]     PROGMEM = "AT+SCON=O,TCN,%s,%d,,%d";
const char at_command_scon_tcp_server[]     PROGMEM = "AT+SCON=O,TSN,,,%d,%d";
const char at_command_scon_udp[]            PROGMEM = "AT+SCON=O,UCN,%s,%d,%d,%d";
const char at_command_fdns[]                PROGMEM = "AT+FDNS=%s,%d";
const char at_command_fwebs_down[]          PROGMEM = "AT+FWEBS=0";
const char at_command_fwebs_up[]            PROGMEM = "AT+FWEBS=1,A";
const char at_command_smgmt[]               PROGMEM = "AT+SMGMT=%c";
const char at_command_ssend[]               PROGMEM = "AT+SSEND=%c,%s,%d,%d";
const char at_command_ssend_data[]          PROGMEM = "";
const char at_command_wleave[]              PROGMEM = "AT+WLEAVE";

PROGMEM const char *at_cmd_table[] =
{
        at_command_wset,                    // AT_WSET
        at_command_wsec,                    // AT_WSEC
        at_command_wnet,                    // AT_WNET
        at_command_wjoin,                    // AT_WJOIN
        at_command_wstat,                    // AT_WSTAT
        at_command_scon_tcp_client,        // AT_SCON_TCP_CLIENT
        at_command_scon_tcp_server,        // AT_SCON_TCP_SERVER
        at_command_scon_udp,                // AT_SCON_UDP
        at_command_fdns,                    // AT_FDNS
        at_command_fwebs_down,            // AT_FWEBS_DOWN
        at_command_fwebs_up,                // AT_FWEBS_UP
        at_command_smgmt,                // AT_SMGMT
        at_command_ssend,                    // AT_SSEND
        at_command_ssend_data,            // AT_SSEND_DATA
        at_command_wleave                // AT_WLEAVE
};

// Read Point
strcpy_P((char *)tmpstr, (char*)pgm_read_word(&(at_cmd_table[AT_WNET])));

제일 좋은 것은 호환성을 위해 PROGMEM 키워드를 사용하지 않는 것이 제일 좋겠으나, Arduino Board 중 RAM Size가 현저히 작은 것들이 있기 때문에 사용 할 수 밖에 없었습니다. 이로 인해 아래와 같은 컴파일 에러가 발생 하였고 이를 해결 하기 위해서는 아래와 같으 수정하면 된다.

PROGMEM const char *at_cmd_table[] =

to

const char * const at_cmd_table[] PROGMEM =


저작자 표시
신고
이 댓글을 비밀 댓글로