산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 사물 인터넷 기술

리소스가 제한된 마이크로컨트롤러를 위한 효율적인 웹 서버 기술

얼마 전 우리는 웹 서버 임베딩에 대한 새로운 관점이라는 제목의 기사를 게시했으며, 여기서 기존의 GET 및 POST 명령과 함께 HTTP 대신 WebSocket을 사용하는 것을 제안했습니다. 한 논평자는 이 기사가 광범위한 소형 마이크로컨트롤러 기반 임베디드 시스템에 적합하지 않다고 비판했습니다.

WebSocket 프로토콜을 올바르게 사용하면 기존 웹 서버보다 적은 리소스를 사용합니다. 사실, 내장 웹 서버를 활성화하는 TLS를 계획한다면 WebSockets가 유일하게 실행 가능한 옵션이라고 믿습니다. 이미 장치에 내장 웹 서버를 사용하고 있을 수 있지만 리소스가 제한된 장치에 대해 표준 웹 서버에서 TLS를 활성화하면 일반적으로 재앙으로 끝납니다. TLS가 표준 웹 서버 기술에 대해 이러한 문제를 일으키는 이유를 이해하려면 장치에 웹 서버를 포함하지 말아야 할 때 자습서를 참조하십시오.

마이크로컨트롤러를 위한 최신 웹 애플리케이션 참조 디자인

우리는 최근에 임베디드 HTTP 및 WebSocket 서버를 GitHub에 커밋했습니다. Minnow Server라고 하는 Embedded HTTP 및 WebSocket 서버는 리소스가 제한된 소형 마이크로컨트롤러를 위해 특별히 설계되었습니다.

더 중요한 것은 장치 관리를 위한 최신 실시간 웹 사용자 인터페이스를 구축하는 방법을 보여주는 참조 예제도 포함되어 있다는 것입니다. 웹 응용 프로그램은 장치 관리를 위해 WebSocket 프로토콜을 독점적으로 사용하는 소위 단일 페이지 응용 프로그램(SPA)입니다. HTTP 프로토콜은 SPA를 로드하는 데만 사용됩니다. 즉, HTTP는 장치에서 요청 시 응용 프로그램을 로드할 때 브라우저에서 처음에 사용됩니다.

참조 예제에는 LED의 실시간 업데이트 및 온도 조절 장치 게이지가 포함되어 있으며 WebSocket을 통해 펌웨어 업로드를 수행하는 방법을 보여줍니다. 전체 SPA에는 41KB의 플래시 메모리 저장 공간만 필요합니다. 또한 WebSocket 서버는 통신에 필요한 RAM이 거의 없습니다.

다음 스크린샷은 SPA 펌웨어 업로드 페이지를 보여줍니다. 이 페이지는 새로운 WebSocket 프로토콜을 활용하는 방법을 보여주는 여러 예제 페이지 중 하나입니다. 펌웨어 업로드 페이지는 드래그 앤 드롭 JavaScript 업로드 로직을 생성하는 방법과 WebSocket 연결을 통해 업로드된 파일을 서버로 보내는 방법을 보여줍니다. WebSocket 연결을 통해 전송되는 모든 메시지는 바이너리 데이터로 전송되는 업로드를 제외하고 JSON 텍스트 메시지로 전송됩니다. 최신 JavaScript는 바이너리 데이터를 쉽게 관리할 수 있으며 WebSocket 프로토콜은 바이너리 및 텍스트 프레임을 모두 지원합니다.

Minnow 서버 시작하기

GitHub로 이동하여 Minnow Server를 다운로드하고 자신의 마이크로컨트롤러 설계를 위한 SPA 작성을 시작하세요. 참조 예제는 자체 임베디드 장치 관리 애플리케이션에 쉽게 재사용할 수 있도록 설계되었습니다. 이 애플리케이션의 CSS 및 HTML5 빌딩 블록은 재사용을 위해 설계되었습니다. 또한 예제에 포함된 WebSocket 통신 JavaScript 라이브러리는 일반화되어 다른 애플리케이션에서 쉽게 재사용할 수 있도록 설계되었습니다.

참고:

미노우 서버는 소형 마이크로컨트롤러용으로 설계되었지만, 참고용 예제는 주로 교육용으로 설계되었기 때문에 즉시 사용 가능한 빌드 환경을 Windows 및 Linux로 제한했습니다. 애플리케이션을 임베디드 시스템으로 이식할 수 있지만 참조 예제에서 디자인 아이디어를 사용하는 것이 더 합리적입니다. 물론 일반 부품을 "있는 그대로" 사용할 수 있습니다.

Minnow Server는 여러 연결을 관리하도록 설정할 수 있지만 참고 예는 한 번에 하나의 연결을 관리하도록 설정됩니다. 다른 브라우저 창이 하나의 WebSocket 연결을 사용하는 동안 새 브라우저 창에 연결을 시도하면 작동하지 않습니다.

필요한 HTML/CSS/JavaScript 경험이 부족한 경우 프런트 엔드 웹 개발자와 팀을 구성하는 것이 좋습니다. SPA를 만드는 방법에 대해 생각하는 가장 좋은 방법은 개발 프로세스를 TCP를 사용하여 장치와 통신하도록 설계된 데스크톱 응용 프로그램 또는 전화 응용 프로그램을 만드는 것과 비교하는 것입니다. 일반적으로 데스크톱 앱과 장치의 펌웨어는 서로 다른 개발자가 담당하며 이것이 SPA를 설계하는 가장 좋은 방법이기도 합니다. 펌웨어 및 프런트 엔드 개발자는 브라우저와 서버 간의 통신 API에 동의해야 하며 그 반대의 경우도 마찬가지입니다. 즉, WebSocket 연결을 통해 전송되는 메시지 유형을 지정해야 합니다.


윌프레드 닐슨 , Real Time Logic의 설립자 및 CTO는 임베디드 소프트웨어 설계 분야에서 28년의 경험을 가지고 있습니다. 연결된 임베디드 시스템에 대한 비전에 힘입어 그는 Barracuda Application Server를 설계하여 임베디드 마이크로프로세서의 작은 설치 공간과 실시간 요구 사항에 맞게 조정했습니다.


사물 인터넷 기술

  1. RF 웨어러블 앱용 통기성 E-텍스타일
  2. 2021년 제조업 동향
  3. 자동차 마이크로컨트롤러용 ST 샘플링 임베디드 위상 변화 메모리
  4. 의료 보험사를 위한 IoT 도입을 위한 3단계
  5. 웨어러블을 위한 완벽한 핏을 제공하는 직장
  6. LoRaWAN은 IoT용 5G 네트워크를 일시적으로 대체합니다
  7. SQL 기술; 이유가 있는 벤치마크
  8. 기술적 혼란이 예상되는 5가지 산업
  9. 자산 관리에 IoT 기술을 사용해야 하는 3가지 최고의 이유
  10. 에너지 부문을 위한 IoT 기술:중요한 변화