[카테고리:] 기술개발

프로그래밍언어로 분류하기 힘든 기술 또는 알고리즘에 관한 글

아두이노와 푸시(MQTT)

1. 아두이노에서 푸시를 사용하기 위해서 MQTT 프로토콜을 구현한 클라이언트를 다운받는다. – https://github.com/knolleary/pubsubclient 2. pubsubclient 라이브러리를 Import받고 아래와 같이 구현하면 된다. #include “TemptClient.h” #include #include void messageArrived(char* topic, byte* payload, unsigned int uIntLength); PubSubClient gClsMqttClient(gpChrServer, 1883, messageArrived, gClsWfClient); void messageArrived(char* topic, byte* payload, unsigned int uIntLength) { int intIndex = 0; char pChrBuffer[uIntLength + 1]; for […]

더보기

아두이노 WiFiClient의 write 함수의 제약

tcp 소켓의 send 함수와 같은 함수인 write(데이터, 데이터 길이) 함수를 이용하여 통신서버로 데이터를 전송하려고 할때 size_t write(const char *buffer, size_t size); 아두이노에서는 데이터 길이가 90 bytes 를 초과하게 되면 에러가 발생하게 된다. 따라서 전송할 용량이 크다면, 버퍼를 여러건으로 나누어 전송할 필요가 있다. wfClent.write(pCharBuffer1, 90); wfClent.write(pCharBuffer2, 70); ….

더보기

이클립스 아두이노에서 WiFi 라이브러리 추가시 오류 발생시 처리

이클립스에서 WiFi 라이브러리를 Import 받았을때 아래와 같이 파일을 찾을수 없다고 나온다면 다음과 같이 처리하면 된다. 09:39:27 **** Incremental Build of configuration Release for project TemptClient **** make all ‘Building file: C:/Applications/arduino-1.0.6/libraries/WiFi/utility/server_drv.cpp’ ‘Invoking: AVR C++ Compiler’ avr-g++ -I”C:\Applications\arduino-1.0.6\hardware\arduino\cores\arduino” -I”C:\Applications\arduino-1.0.6\hardware\arduino\variants\standard” -I”C:\Projects\89.IOTSolutions\02.Solutions\TemptClient” -I”C:\Applications\arduino-1.0.6\libraries\WiFi” -D__IN_ECLIPSE__=1 -DUSB_VID= -DUSB_PID= -DARDUINO=106 -Wall -Os -ffunction-sections -fdata-sections -fno-exceptions -g -mmcu=atmega328p -DF_CPU=16000000UL -MMD -MP -MF”WiFi/utility/server_drv.d” […]

더보기

이클립스에서 Symbol ‘Serial’ could not be resolved 에러 발생시 처리

아래와 같이 Symbol ‘Serial’ could not be resolved 또는 Method ‘begin’ could not be resolved 등이 나타날때 프로젝트를 클릭후 마우스 오른쪽 클릭시 나타나는 컨텍스트 메뉴에서 index > Rebuild 를 해주면 에러가 사라진다.

더보기

아두이노 float을 문자열로 변환

아두이노에서 아래처럼 sprintf을 이용하여 문자열로 변경하려고 할때 결과를 보면 ? 가 출력된다. sprintf(pChrBuffer, “%f”, fltValue); 아두이노에서는 float형에 대해서 sprintf가 제대로 지원되지 않는듯하여, 확인하여 보니 아래 함수를 이용하면 변환할수 있다. char * dtostrf(ouble __val, signed char __width, unsigned char __prec, char * __s); float fltValue = 123.456; char pChrBuffer[50]; dtostrf(fltValue , 5, 2, pChrBuffer); // 5 […]

더보기

아두이노 와이파이 쉴드 펌웨어 업그레이드

1. 아두이노와 분리 2. 점퍼 스위치 변경 위와 같이 하나만 꽂아 있는 딥스위치를 빼서 두군데 다 접지되도록 한다. 3. ATMEL 펌웨어 수정프로그램 다운로드 – http://www.atmel.com/tools/FLIP.aspx 에서 하단에 있는 FLIP 3.4.7 for Windows (Java Runtime Environement included) 버전을 받아 설치 4. USB 연결 – wifi 쉴드의 USB를 PC와 연결하여 전원을 넣는다. 5. 제어판의 장치관리자를 열어 “기타 […]

더보기

hMailServer의 사용자 추가등을 asp로 할때 권한문제

ASP로 사용자 추가시  아래와 같이 스크립트를 작성할 경우 보안문제로 인하여 에러화면이 출력되게 된다. Set obApp = Server.CreateObject("hMailServer.Application") 이때  아래와 같이 window키 + R을 눌려 실행창에 DCOMCnfg를 입력하여 실행한다. 구성요소서비스 > 컴퓨터 > 내컴퓨터 > DCOM 구성에서 hMailSever를 클릭한후 오른쪽마우스를 눌러 아래와 같이 나오면 "시작 및 활성화 권한 > 사용자 지정"을 클릭하고 "편집" 버튼을 누른다.   […]

더보기

다윈스트리밍 서버 윈도우즈 방화벽 설정

다윈스트리밍서버(TCP) : 554, 1220, 1935 다윈스트리밍서버(UDP) : 5002-5007

더보기

다윈스트리밍 서버에서 인증오류 발생시 처리

와우자 서버에서는 정상적으로 동작하는 프로그램이 다윈스트리밍 서버에서는 인증오류 발생시(RTSP/1.0 401 Unauthorized) 설정파일을 볼 필요가 있다. 1. qtaccess 파일 생성 영상파일이 있는 폴더가 D:\Service\DSS\Movies 라면 해당 폴더에 qtaccess 파일을 만든다. qtaccess 파일의 내용을 아래와 같이 입력한다. require any-user require any-user 2. 위와 같이 했음에도 안되는 경우 C:\Program Files\Darwin Streaming Server\qtgroups 파일을 열어 아래와 같이 admin그룹에 사용자계정을 […]

더보기

RTSP 인증처리(digest 방식)

String strUri = “rtsp://” + 서버IP + “:” + 서버포트 + 패스; String strUserInfoHash = convertMd5Hash(사용자ID+ “:”+ strRealm +”:”+ 사용자패스워드); String strUriHash = convertMd5Hash(“ANNOUNCE”+”:” + strUri); String strResHash = convertMd5Hash(strUserInfoHash+”:”+ strNonce +”:”+strUriHash); mStrAuthorization = “Digest username=\””+ 사용자ID+”\”,realm=\””+strRealm+”\”,nonce=\””+strNonce+”\”,uri=\””+strUri+”\”,response=\””+strResHash+”\””; strRequest = “ANNOUNCE rtsp://”+ 서버IP +”:”+ 서버포트 + 패스+” RTSP/1.0\r\n” + “CSeq: ” + 순번 + “\r\n” + […]

더보기