C 프로젝트에서 MQTT, JSON 사용하기

1. MQTT -> paho.mqtt.c 다운로드 받아서 컴파일해서 나오는 build/output/lib관련 파일을 makefile에 추가 해주면된다. 단 실행 파일 구동시 공유 파일로 되어있어야 되기 때문에 /usr/local/lib에 파일을 추가해주고 LD_LIBARY_PATH로 잡아줘야 한다. 2. JSON -> cJSON-master 다운받아서 컴파일해서 나오는 lib 파일을 makefile에 추가 해주면 된다. 단 실행 파일 구동시 공유 파일로 되어있어야 되기 때문에 /usr/local/lib에 파일을 추가해주고 LD_LIBARY_PATH로 잡아줘야 한다. *make 가 안될때 1.fatal error: openssl/ssl.h: - sudo apt - get install libssl - dev 2. nfs 상태의 파일을 컴파일하면 심볼릭 링크가 안된다. 윈도우와 리눅스 파일 시스템이 다르기 때문이다. 따라서 작업은 home 디렉토리 밑에서 해야한다. 3.cp -d : 심볼릭 링크 그대로 복사하기를 해야한다ㄴ 4. 링크 설정 : /usr/local/lib 에 복사해 놓으면    export LD_LIBRARY_PTAH=/usr/local/lib    이후 적용을 위해 ldconfig 를 실행한다.

linux error "cannot open shared object file:No such file or directory"

linux error "cannot open shared object file:No such file or directory"  (1 ) Find where the library is placed if you don't know it. sudo find / -name the_name_of_the_file.so (2) Check for the existence of the dynamic library path environment variable(LD_LIBRARY_PATH) $ echo $LD_LIBRARY_PATH if there is nothing to be displayed, add a default path value (or not if you wish to) $ LD_LIBRARY_PATH=/usr/local/lib (3) We add the desire path, export it and try the application. Note that the path should be the directory where the path.so.something is. So if path.so.something is in /my_library/path.so.something it should be : $ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/my_library/ $ export LD_LIBRARY_PATH $ ./my_app

실리콘렙스 ember zigbee - 3

이미지
Simplicity Studio를 이용한 다운로드 1. ISA3에 PC에 연결하고 command "em3xx_isa.exe"를 이용해서 pc 네트워크에 포함될 수 있도록 수정한다. 2. 수정한 결과를 확인한다. 3. Simplicity Studio에 정상적으로 연결된 경우 아래와 같이 녹색이 들어온다. 4. upload 기능을 사용할수 있다. 5. 부트로더가 최초에 다운로드되지 않았다면 포함하여 다운로드해야 한다.

실리콘렙스 ember zigbee - 2

이미지
부트로더 올리기 ZCL Application Framework V2 설정하기 1. 시리얼 통신 사용하기 *빨간색 부분을 체크해야 시리얼통신 확인

실리콘렙스 ember zigbee - 1

이미지
1. 제품개발 관련하여 실리콘렙스의 em357을 사용 2. cortex-m3 기반 모듈 3. 실리콘렙스에서 제공하는 emberznet pro stack 사용 사용한 보드 : EM35X-DEV(개발용 보드) 스텍버전 : EmberZNet5.4.4 샘플버전 : ZCL Application Framework V2 -> EmberZNet 5.4.4.0 GA SoC 5.4.4.0              : -> HaSampleGateway, HaSampleLight, HaSampleSwitch 개발 툴 : Simplicity Studio4, 컴파일러 : IAR(ARM)7.30 다운로드 (툴): ISA3 Utilities 다운로드 방식 : *.s37 파일 업로드

CC2650 BLE 서비스 등록, READ, WRITE, NOTIFY 해보기

Ti에서 제공하는 BLE 스텍을 사용해서 통신하기 먼저 BLE 스텍에서 Profiles 그룹에 있는 서비스들을 이용하면 쉽게 구현할 수 있다. 서비스 API를 살펴보면서 하면 쉽게 할 수있다. 1. 먼저 static 함수들은 서비스파일에서만 사용할 수 있기때문에 그외의 파일에서 호출 할 수 없다. 따라서 2. 나머지 서비스 헤더 파일에 extern 되어 있는 함수들을 사용자 응용 파일에서 호출해서 사용하면된다. 예를 들면 서비스 등록, 콜벡 등록, 파라미터 수정, 읽기등이 해당된다. 3. 서비스 파일을 어떻게 설정하느냐에 따라서 서비스의 기능을 정할 수 있다.  Enabler Characteristic Properties에 해당되는 변수값을 설정하면 된다. 3가지 항목은 아래와 같다. -GATT_PROP_READ -GATT_PROP_WRITE -GATT_PROP_NOTIFY 이 외에도 여러가지가 있으니 gattservapp.h를 살펴보면 될것 가탇. 4. 서비스 등록에 관련된 내용은 아래와 같다. 사용자가 하고 싶은데로 설정하면 될것 같다. -Service attribute -Characteristic Properties -State Characteristic -Characteristic Configs -Characteristic User Description 이 외에도 여러가지가 있다. 5. Profile Attributes - Table을 통해서 프로파일의 구성을 설정할 수 있다. 6. readAttrCB 콜백함수를 통해서 Read로 들어오는 이벤트를 처리할 수 있다. 7. writeAttrCB 콜백함수를 통해서 Write로 들오는 이벤트를 처리할 수 있다. 8. AddService 함수를 통해서 사용자가 서비스를 등록할 수 있다. 9. SetParameter 함수는 사용자 코드에서 호출하여 파라미터를 설정해 놓을 수있다. 10. GetParameter 함수는 사용자 코드에서 변경된 파라미...

CC2650 UART 해보기

CC2650은 Coretex-M3로 ARM 구조를 따른다. 하지만 본인은 아직까지 ARM 구조를 다뤄본적이 없기 때문에 이번 기회를 통해서 제어 해보기로 한다. 기존해 해봤던 MSP430 이나 8051 구조에서는 각 핀이 할 수 있는일이 정해져있었다. 기본적으로 GPIO 제어는 대부분의 핀에서 할 수있었지만 해당핀의 고유 기능이 정해져있어서 고유 레이지스터를 통해서 정해진 핀을 사용할 수 있었다. 하지만 Coretex-M3에서는 모든 핀이 GPIO 뿐만아니라 사용자가 요구하는 기능을 수행 할 수 있다. 따라서 UART 통신을 구현할 때에도 정해진 핀이 없기 때문에 사용자가 먼저 핀에 대한 설정을 해줘야 한다. 이런 초반작업에 대한 내용을 사용자가 모두 알아야 되는 불편함 때문인지 아니면 사용자 편의 기능을 위해서인지 TI에서는 CC2650에 사용할 수 있는 TI-RTOS를 지원해준다. TI-RTOS를 사용하면 사용자는 간편하게 핀설정 뿐아니라 UART, I2C, PWM등 해당 칩이 지원하는 기능들을 손쉽게 사용할 수 있게 되어 있다. 어떻게 보면 내가 점점 더 TI칩을 사용하게 되는것이 이런 편의 기능을 계속 제공해주기 때문이라는 생각도 든다. 어쨌든 CC2650의 UART를 사용하기 위해서는 TI-RTOS에서 제공하는 API호출을 통해서 아래와 같이 사용할 수 있다. 핀설정은 아래와 같은 파일에서 확인 할 수 있다. *IOID에 대한 하드웨어 핀 확인은 datasheet를 보면 알 수 있다. #define Board_UART_RX                       IOID_12 #define Board_UART_TX                       IOID_4   먼저 사용하고자 하는 프로젝트에 사용할 ...