인터넷 사용 가능 날씨 디스플레이에 어떤 마이크로 컨트롤러 및 프로그래밍 언어를 사용해야합니까?


11

나는 IoT의 초보자이며 IoT에서 경력을 시작하고 싶습니다. IoT에서 신생 기업을 Google에서 검색하면서 많은 블로그를 찾았습니다. 그리고 C #, Java, Node.js와 같은 IoT 및 Arduino, Raspberry Pi, Intel, Netduino 등과 같은 마이크로 컨트롤러에서 사용되는 언어를 찾았습니다.

IoT를 처음 접했을 때 어떤 언어가 가장 적합한 지, 그리고 어떤 마이크로 컨트롤러를 스타트 업에 사용하는지 모르겠습니다.

기본 시작을 위해 모바일에서 제공 한 위치의 날씨를 보여주는 디스플레이가있는 장치를 만들고 싶습니다. 따라서 하드웨어, 인터넷 및 소프트웨어를 다루는 시작의 좋은 예일 수 있습니다.

장치는 배터리로 작동하며 소형 디지털 디스플레이이며 비용 제한이 있습니다.

날씨를 표시하기위한 요구 사항을 충족하는 마이크로 컨트롤러와 언어를 사용해야합니까?


1
이것은 이전 질문보다 훨씬 좋은 질문처럼 보입니다. 특정 사용 사례에 훨씬 중점을 둡니다. 좋은 답변을 드릴 수 있습니다. 여기 몇 가지 질문이 있습니다. 장치가 주전원 또는 배터리로 작동합니까? 디스플레이를 얼마나 크게 원하십니까? 비용 제한이 있습니까?
Aurora0001

2
또한 마이크로 컨트롤러를 선택할 때이 답변 은 정말 환상적입니다.
Aurora0001

1
감사합니다 @ Aurora0001 의견을 보내주십시오. 자세한 내용을 확인하십시오.
Jigarb1992

1
니트 선택 : Arduino는 마이크로 컨트롤러입니다. Pi는 전체 컴퓨터이며 Pis 및 Beaglebones 및 Gumstix와 같은 것을 일반적으로 "SBC (Single-board Computer)"또는 "COM (Computer-on-modules)"이라고합니다. Pi와 달리 Arduino는 OS를 실행하지 않습니다. Arduino는 편리한 IDE와 함께 제공되는 사용하기 쉬운 멋진 보드에서 Atmel ATmega ?? 8 일뿐입니다. Pi는 ARM Cortex-A53 마이크로 프로세서 코어가 장착 된 실제 컴퓨터입니다. 예를 들어 Pi를 사용하여 모든 네트워킹 및 디스플레이 출력 및 Arduino와의 복잡한 제어를 수행하여 읽기 버튼, RFID 태그 등과 같은 간단한 작업을 수행 할 수 있습니다.
Jason C

1
배터리 구동 장치 : 스마트 폰 / 스마트 워치 (Li 배터리, 재충전 사이의 며칠 수명) 또는 시계 (AA 비 충전식, 몇 개월 수명)와 같은 의미입니까? 그러면 디자인을 주도하고 후자를 선택하면 옵션이 심각하게 제한됩니다.
pjc50

답변:


5

개인적으로 필자는 실제로 필요한 것보다 훨씬 강력하지만 Raspberry Pi 3B 를 선택했습니다 . 내가 이것을 제안하는 이유는 다음과 같습니다.

  • 802.11 b / g / n 무선 LAN이 내장되어 있으므로 이더넷 케이블 대신 Wi-Fi 네트워크에 연결할 수 있습니다

  • 또한 블루투스도 지원하므로이를 통해 전화에 연결할 수 있습니다.

또한 디스플레이 장치가 필요 하며이 4DPI-32 터치 스크린 과 같이 라즈베리 파 이용으로 설계된 여러 디스플레이가 편리합니다 . 디스플레이를 40 핀 헤더에 직접 슬롯으로 연결할 수 있어야합니다.

핀 40 개 라즈베리 파이 재단 , CC BY-SA 4.0 . 필자는 이것이 기술적으로 Pi 2B라는 것을 알고 있지만 GPIO는 3B에서 동일합니다.

이 경우 프로그래밍 측면은 API에서 날씨를 가져 와서 GUI 프로그램으로 화면에 표시하기 만하면됩니다. 디스플레이는 Pi의 HDMI 출력처럼 작동하므로 특별한 작업을 수행 할 필요가 없습니다. Python의 경우 Tkinter를 사용하여 기본 UI를 만들거나 원하는 내용에 따라 HTML / CSS / JS로 웹 응용 프로그램을 작성하도록 선택할 수도 있습니다. OpenWeatherMap API 를 무료로 사용할 수 있습니다 . 문서는 각 API 엔드 포인트에 대해 링크됩니다.

이 시점에서, 그것은 당신에게 달려 있습니다. 여기서 가장 좋은 언어는 가장 편한 언어입니다. 당신이 AngularJS와 같은, 단지 HTML 페이지를 작성하는 경우, 각도와 날씨를 가져 오기 (또는 같은 라이브러리를 사용 당신을 도울)과 좋은 보이게하기 위해 일부 CSS를 사용하여 표시합니다.

실제로 위치를 얻으려면 사용자가 Pi의 터치 스크린에서 위치를 입력하는 것이 더 쉬울 것이라고 생각합니다 . 많이 조사하면 무언가를 찾을 수 있지만 휴대 전화의 위치를 ​​전송하는 것이 조금 더 어려울 수 있습니다.

배터리 사용의 경우 Raspberry Pi Stack Exchange에 대한이 질문 은 읽을 가치가 있습니다.


1
바로 사용할 수 있는 Vilros Pi 키트를 연결하고 귀찮은 초기 설정을 저장하십시오. 또한 주 제외이지만 디버깅을 위해이 (및 사이트를 검색하는 경우 견고한 버전) 가 매우 유용하다는 것을 알았습니다 . 일회용으로 비싸지 만 항상 사용하면 가치가 있습니다. HDMI-> VGA 어댑터와 잘 작동합니다.
Jason C

1
아니요. 첫 번째는 깨지기 쉬운 SD 카드에 의존하기 때문입니다. 두 번째는 적당한 수량으로 제조에 들어갈 수 없기 때문입니다. 파이는 개념 증명을 제공 할 수 있지만 실제로 제품에 사용할 수있는 것을 중심으로 디자인을 변경해야합니다. 또한 기본적으로 배터리 사용량에 대한 완전한 비 시동기입니다.
Chris Stratton 17

@ChrisStratton : OP와 같은 초보자에게는 RPi가 제 생각에 실행 가능한 옵션 인 것 같습니다. 예, 대규모 생산의 경우 이는 이상적이지 않지만 접근 하기 쉽고 수정하기 쉬운 아이디어를 제공하는 데 집중했습니다 . POC가 바로 여기에 필요한 것입니다. SD 카드가 애호가 설치에 큰 관심사라고 생각하지 않습니다. 대량 생산에서는 이야기가 다르지만 출발점에서는 이것이 잘 작동한다고 생각합니다. 그래도 더 나은 접근 방식에 대한 제안을 할 수 있습니다.
Aurora0001

이러한 문제로 인해 제품에서 이러한 문제가 발생하지 않는 방식과는 별도로 포스터의 배터리 전원 요구 사항은 처음부터 배제합니다. pi는 모바일 전원 관리 기능이없는 셋-투-박스 아키텍처이기 때문에 합리적인 배터리로 몇 시간 이상 걸리지 않습니다.
Chris Stratton

10

양파 오메가이 주장은 세계에서 가장 작은 리눅스 컴퓨터가 될 수 있습니다. 그 주장은 사실이 아닐 수도 있지만 (예를 들어 아래의 vocore2 참조) 내 경험상 가장 작은 3이되어야합니다. 비용은 5 달러, 내장 와이파 이는 IoT를 염두에두고 특별히 설계되었습니다. 그들의 웹 사이트 에 몇 가지 방패가 있습니다 . 새로운 제품은 강력하고 활동적인 커뮤니티를 가지고있는 것 같습니다. 킥 스타터 후원자들은 장치를 얻습니다. 체크 아웃 가치가 있습니다.

또한 의견에서 지적했듯이 실제로 vocore2를 확인하십시오 . 이것은 실제로 양파보다 작고 $ 4로 저렴합니다. 현재 IndieGoGo에서 자금을 지원 받고 있으며 배송 예정일은 2017 년 2 월 (이 글을 쓰는 시점의 다음 달)입니다. 또한 다양한 도크를 사용할 수 있으며 내장형 Wi-Fi 라우터가 있습니다.

나는 다른 날에 그 사람들을 만났고 그들과 경험이 없습니다. 그러나 새로운 기능으로 인해 사용하는 일부 Linux 패키지는 아직 사용하지 못할 수 있습니다 (예를 들어,이 글을 쓰는 시점에서 gstreamer 패키지를 양파에서 사용할 수 없다는 사실을 알고 있습니다 그러나 gstreamer는 관련이 없지만 소스에서 빌드해야합니다.

다른 답변과 같이 Pi는 매우 저렴한 장치입니다. 양파 라인을 따라 또 하나의 작은 $ 5 컴퓨터 인 Raspberry Pi Zero를 잊지 마십시오 . 그것은 더 큰 Pi가 가지고있는 모든 포트를 가지고 있지는 않지만, 마음에 들지 않거나 개발을 위해 3을, 최종 제품에서 크기를 0으로 사용하고 싶다면, 고려해야 할 또 다른 선택입니다.

일부 비싼 장치에는 다음이 포함됩니다.

  • BeagleBone Black (저비용으로 인해 진지하게 고려할 수있는 유일한 Pi 대안입니다).
  • Gumstix ($$$, 그러나 우리는 프로젝트에서이 크기를 항상 사용합니다)
  • 우두 ($$$ 그러나 펀치를 포장합니다)
  • Toradex Colibri (작업하기가 조금 어렵지만 Gumstix보다 더 나은 사양을 사용하며 Windows 툴체인을 선호하고 부팅 시간이 거의없는 경우 즉시 부팅 기능으로 Windows CE를 실행할 수있는 옵션이 있습니다. ).

또한 Vilros는 OS, 작동하는 Wi-Fi, 방열판, 케이스로 사전 포장 된 멋진 Pi 스타터 키트 (Amazon에서 저렴함)를 상자에서 바로 사용할 수있게 해주 며 엄청난 설치 작업을 줄여줍니다. Pi 경로를 방문했는지 확인하십시오. Vilros는 또한 Beaglebone 스타터 키트를 만들었습니다.이 키트는 더 이상 사이트에서 제공되지 않지만 Newegg / Amazon 등을 검색하는 경우 사용할 수 있습니다. 여전히 사용 가능한 재고를 찾을 수 있습니다.


그건 그렇고, Arduino (또는 다른 마이크로 컨트롤러, 위에 나열된 본격적인 싱글 보드 컴퓨터와 대조)는 아마도 당신이 원하는 것이 아닐입니다 . Arduino는 Atmel ATmega168 / 328입니다. 그것은 OS를 실행하지 않으며 실제로 당신이 지시 한 것 외에는 아무것도하지 않습니다. 예를 들어, 네트워킹을 위해서는 이더넷 쉴드가 필요합니다.이 이더넷 쉴드는 완전한 이더넷 제어 라이브러리와 함께 제공되며 TCP 및 UDP 스택을 제공한다고 생각합니다. 제한된 코드 공간이 많습니다.

그런 다음 날씨 클라이언트와 그 위에 모든 것을 구축해야하며 32KB 이하로 모든 작업을 수행해야합니다. Pi / Beaglebone / Gumstix / Colibri / etc에서 Linux / Windows 개발을 수행하는 것과는 다른 개발 방식입니다. 이 답변의 범위를 벗어난 부분입니다.

아두 이노는 무엇 이며 좋은 여기에 관해서는 애드온 읽기 압력 센서, 버튼, 제어 기본 전자 요소, 그런 종류의 같은 하드웨어 인터페이스 물건을 할 수있는 메인 시스템에 관한 것이다.

임베디드 시스템 개발은 Pi에서 수행하는 데스크탑 개발과는 완전히 다른 짐승이며, 특히 경험이없는 Arduino 만으로이 작업을 수행하지 않는 것이 좋습니다.


1
vocore2 는 현재 OpenWRT (Linux)를 실행하면서 현재 작고 저렴합니다 ($ 4)
Matija Nalis

2
이것에 대한 오픈 소스 이야기는 무엇입니까?
Sean Houlihane

@SeanHoulihane 좋은 질문입니다. 킥 스타터 페이지와 홈페이지에 문제가 없는지 확인할 수 있습니다. 나는 위의 Matija의 vocore2 의견에 이어 양파 사람들의 "세계에서 가장 작은"주장에 약간 미안하지만, 아마도 개방형 아키텍처로 자신을 겸손하게 사용할 수 있습니다.
Jason C

3
사람들은 킥 스타터에 대해 무엇이든 주장 할 수 있습니다.
Sean Houlihane

@SeanHoulihane 오 남자, 않습니다 하지 나 ㅎ, 내 Kickstarter를 싫어 호언 장담에 시작. 저항, 저항 ... 킥 스타터 주장과 개방성은 제쳐두고 오메가와 보 코아 모두 아주 멋진 새로운 장치입니다. 그리고 저비용 전선에도 RPi Zero가 있습니다.
Jason C

6

어떤 언어와 컨트롤러를 사용해야하는지 단계별로 접근하는 것이 좋습니다. 필요한 마이크로 컨트롤러는 원하는 작업에 따라 다릅니다. 이론적으로 작업은 적절한 마이크로 컨트롤러가 충족해야 할 몇 가지 요구 사항을 설정하므로 이러한 요구 사항에 따라 마이크로 컨트롤러를 선택해야합니다.

  1. 장치에 대한 사용자 스토리를 정의하십시오. 무엇을 기대하십니까? 무엇을 할 수 있기를 원하십니까?

    귀하의 경우 이미 귀하가 정의한 것입니다.

    스마트 폰에서 입력을 수신하고 요청 된 위치의 날씨 정보를 자체 디스플레이에 표시 할 수있는 배터리 전원 장치.

  2. 이제 1 단계에서 시작해야합니다. 블록 다이어그램 수준에서 필요한 하드웨어를 결정할 수 있습니다.

    모바일과 통신하려면 디스플레이와 WiFi 또는 Bluetooth 모듈이 필요할 것입니다. 전 세계 기상 데이터베이스에 액세스하려면 인터넷 연결이 필요할 수 있습니다. MCU 또는 WiFi 모듈 (블루투스를 제외하려면 인터넷이 필요)을 사용하여 두 가지를 모두 제어해야 디스플레이를 제어하고 소프트웨어를 실행할 수 있습니다.

  3. 특정 부품을 찾기 시작할 수 있습니다. 사용할 배터리를 결정하는 것으로 시작하여 잠재적 부품의 전력 소비를 고려할 수 있습니다. 이전 답변 중 하나에서 MCU를 선택하는 일반적인 프로세스를 요약했습니다 . 기본적으로 동일한 작업을 수행해야합니다. 저렴한 디스플레이를 찾으십시오. 아마도 통신에 SPI 또는 I2C 인터페이스를 사용할 것입니다. 그런 다음 SPI / I2C가 포함 된 Wifi 모듈을 검색 할 수 있으며 MCU가 통합되어 있거나 별도의 MCU와 WiFi 모듈이 있습니다. 개별 WiFi 모듈은 아마도 UART를 사용하여 통신하므로 개별 MCU는 SPI / I2C와 함께 통신해야합니다.

  4. 언어는. 대부분의 마이크로 컨트롤러는이 분야에서 가능성을 제한합니다. 대부분의 경우 단일 보드 컴퓨터가 아닌 마이크로 컨트롤러를 엄격히 언급하는 C, C ++ 또는 Assembly를 선택할 수 있습니다.

    Linux 또는 다른 강력한 OS를 실행할 수있는 BeagleBone 또는 Raspberry를 사용하기로 결정한 경우 최고의 언어는 가장 잘 알고있는 언어가 될 것입니다. 물론 작업을 처리 할 수 ​​있어야합니다. ( 원한다면 RPi에서 Java를 실행할 수 있습니다. )

    C, C # 또는 Python에서도 글로벌 날씨 데이터 서비스에 대한 소켓을 열 수 있습니다. C로 JSON을 처리하는 것이 조금 더 어렵지만 확실히 가능합니다.

일반적으로 비용에 대해 말하기. 가장 좋은 방법은 WiFi 지원 디스플레이 장치를 검색하는 것입니다. 많은 결과가 있으며 대부분 동일한 하드웨어를 사용하며 아마도 가장 저렴한 것입니다.


당신은 사용할 수 ESP8266 인터넷에 연결하고 디스플레이 인터페이스 아두 이노 호환 무선 랜 모듈을. 라즈베리 파이보다 훨씬 땜질이 필요하지만 저렴할 것입니다.

다음은 ESP8266 + OLED 디스플레이에 관한 Hackaday 프로젝트 입니다.


2
프로세스의 좋은 분류. Micropython은 많은 소형 보드에서 사용할 수 있으며, 고려해야 할 한 가지 요소는 보드의 생태계이며, 오픈 소스 라이브러리가있는 경우 (MCU 공급 업체가 종종 우수한 라이브러리를 제공하지만).
Sean Houlihane

6

스타트 업을 만드는 것은 기술로 할 수있는 것이 아니라 제품에 대한 것이 아닙니다. VC를 사로 잡을 수있는 성공적인 스타트 업을 위해서는 먼저 귀하가 서비스 할 시장에 대해 생각해야합니다. 그러나 당신이 섬길 시장에 대해 생각하는 것만으로는 충분하지 않습니다. 시장에 대한 실제 데이터가 있어야합니다. 그것은 당신에게 의미가있는 것이 아닙니다. 제품을 만들어 판매하려고하는 것은 성공적인 접근 방식이 아니며 가장 실패한 스타트 업이 끝나는 방식입니다. 시장은 정말 필요합니다. 제품을 상자에 넣으면 특정 마켓을 처리하기 위해 제품을 만듭니다. 이것이 사람들이 이미 제품을 찾고 있기 때문에 스스로 판매하는 제품인 성공적인 제품을 만드는 것입니다. VC는 특히 이미 판매중인 경우 그러한 제품을 보유한 신생 기업에만 투자합니다.

제품을 개발할 기술을 먼저 선택하려면 제품이 무엇을해야하는지 알아야합니다. 이것이 선택한 시장에서 문제를 해결하는 방법입니다. 그런 다음 잠재 고객이 지불 할 의사가있는 것을 살펴보십시오. 그런 다음 예산 내에서 비용을 유지하면서 가장 빠른 시장 출시 시간을 허용하는 기술을 선택했습니다. 그런 다음 개발을 아웃소싱하거나이를 수행 할 수있는 파트너를 확보하십시오. 파트너와 이익 50/50을 공유하십시오. 그런 다음 프로토 타입이 있으면 비즈니스 계획을 세우고 VC가 돈을 어떻게 벌 수 있는지 보여 주면 VC를 사로 잡을 수 있다는 것을 기억하십시오.

대량 생산을 위해 제품 비용을 절감해야하는 경우 ASM / C / C ++와 함께 Microchip PIC 또는 Silicon Labs EFM과 같은 저수준 언어와 덜 유용한 마이크로 컨트롤러를 사용할 수 있습니다. 제품이 대량 생산을하지 않을 경우 (100k +) Micro Python 또는 Lua와 ARM32 MIPS 또는 Linux 심지어 ARM32 / 64와 같은 고급 언어 및보다 유용한 마이크로 컨트롤러를 사용하십시오. 이를 통해 개발 비용은 절감되지만 하드웨어 가격은 상승합니다. 제품의 가격은 단지 구성 요소가있는 PCB가 아니라는 점을 기억하십시오. 개발, 주택, 포장 및 기타 제품 판매에 필요한 모든 비용이 들게됩니다. 사업 계획에 넣으십시오. Arduino, Raspberry pi 또는 Onion 또는 취미 장치처럼 보이는 것을 사용하여 VC에 가지 마십시오.

시작하지 말고 행운을 빕니다.


실제로 마케팅의 완전한 의미를 갖습니다. 감사합니다 :)
Jigarb1992
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.