제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
| ||||
| ||||
|
참고:이 튜토리얼은 오래되었을 수 있습니다. 여기 최신 버전의 경우
이 프로젝트는 MKR FOX 1200 회전 방법을 보여줍니다. 그리고 많은 I2C 센서를 배터리로 작동되는 간단한 기상 관측소에 통합합니다.
우리는 다음을 사용할 것입니다:
<울>
하드웨어 설정
이 프로젝트의 하드웨어 연결은 매우 간단합니다. 모든 센서는 I2C 인터페이스를 사용하고 3.3V에서 실행됩니다.
MKR FOX 1200에서 4개의 와이어가 필요합니다. GND, 3.3V, 핀 11의 SDA, 핀 12의 SCL 관련 라이브러리 및 기능이 각각을 구별합니다.
전체 프로젝트는 직렬로 연결된 2개의 AA 또는 AAA 알카라인 배터리로 전원을 공급하여 3V를 생성하고 보드의 나사 연결 단자 블록에 배선할 수 있습니다.
Sigfox 메시지
Sigfox 네트워크는 하루에 최대 140개의 메시지를 보낼 수 있으므로 판독값을 최적화하고 압축 바이너리 형식으로 데이터를 보냅니다.
보낼 수 있는 메시지의 최대 크기가 12바이트이기 때문에 데이터 패킹이 중요합니다. float는 4바이트를 차지하므로 판독값을 더 작은 표현으로 압축해야 합니다.
float 형식은 매우 넓으며(3.402823e+38(!)만큼 큰 숫자를 나타낼 수 있음) 전체 데이터 공간이 필요하지 않습니다. 그런 다음 스테이션을 배치할 위치를 기반으로 안전한 한계를 결정하고 백엔드에서 원래 표현을 복원할 수 있습니다.
클라우드 서비스 구성
두 가지 클라우드 서비스를 사용할 것입니다.
<울>FirstConfiguration 예제에서 제공한 PAC 및 ID를 사용하여 Sigfox 백엔드에 보드를 등록합니다(이전 프로젝트에서 이미 등록한 경우 건너뛸 수 있음).
둘 다 서로 통신하고 올바른 형식으로 데이터를 해석하도록 구성해야 합니다. 둘 다에 등록하고 몇 개의 채널 을 만드십시오. 씽스피크에서. 구성은 아래 이미지에 보고되어 있습니다.
구성한 첫 번째 채널은 원시 데이터(readChannelID
), 두 번째 데이터는 크기 조정된 데이터를 수집합니다(writeChannelID
).
이제 Arduino Create Editor를 사용하여 스케치를 업로드할 차례입니다. 기본 스케치를 사용하면 현장에 배포하기 전에 모든 인프라를 광범위하게 테스트할 수 있습니다.
선언하는 것을 잊지 마십시오:
oneshot =거짓
모든 백엔드 인프라 설정이 정확하다고 확신할 때. 스케치는 직렬 포트를 기다리므로 지금 실행하지 않습니다. 대신 SigFox 백엔드를 열고 콜백을 구성하십시오.
기기 유형을 클릭합니다. -> 목록 -> 보드를 마우스 오른쪽 버튼으로 클릭하고 수정을 클릭합니다.
콜백을 클릭합니다. 왼쪽 메뉴에서:
다음과 같은 창이 표시됩니다.
새로 만들기를 클릭합니다. 창의 오른쪽 상단에 있는 버튼:
맞춤 콜백: 선택
관련 구성은 아래에 보고됩니다. 콜백이 다음과 같이 설정되어 있는지 확인하십시오.
<울>데이터/업링크
URL
GET
사용자 정의 페이로드로 설정:
status::uint:8 temp1::int:16:little-endian temp2::int:16:little-endian press::uint:16:little-endian 험::uint:16:little -endian light::uint:16:little-endian lastMsg::uint:8
이것은 스케치에서 포장한 구조를 나타냅니다. HTTP 콜백에서 참조할 수 있도록 각 필드에 변수를 할당하고 있습니다.
URL 패턴으로 설정:
https://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1={customData#temp1}&field2={customData#press}&field3={customData#temp2}&field4={customData#hum}&field5={customData#light}&field6={customData#status}&field7={customData#lastMsg}
구성이 완료되면 창은 다음과 같아야 합니다.
API 키 api_key
를 변경해야 합니다. Thingspeak에서 Write API Key
로 제공한 것으로 채널1
용 .
저장하고 종료. 이제 직렬 포트를 열고 전송되는 첫 번째 메시지를 관찰할 수 있습니다. 만세!
원시에서 그래픽으로
구성한 설정은 데이터를 Thingspeak 백엔드로 라우팅하지만 여전히 원시 형식입니다. 다시 변환하려면 이 스니펫과 함께 Thingspeak 분석 도구를 사용하겠습니다.
% TODO - 다음에서 데이터를 읽을 채널 ID로 []를 대체합니다. readChannelID =[]; % TODO - 아래 '' 사이에 읽기 API 키를 입력하십시오. readAPIKey ='T6UK7XO6A4H2AGT7'; % TODO - 데이터를 쓰기 위해 []를 채널 ID로 바꿉니다. writeChannelID =[]; % TODO - 아래 '' 사이에 쓰기 API 키를 입력하세요. writeAPIKey ='XU4TGY261P6B5USN'; %% 데이터 읽기 %% 데이터 =thingSpeakRead(readChannelID, 'ReadKey', readAPIKey, 'OutputFormat','table'); 분석 데이터 =데이터; %% 데이터 분석 %% INT16_t_MAX =32767; UINT16_t_MAX =65536; 분석 데이터.('온도1') =데이터.('온도1') / INT16_t_MAX * 120; 분석 데이터.('온도2') =데이터.('온도2') / INT16_t_MAX * 120; 분석 데이터.('압력') =데이터.('압력') / UINT16_t_MAX * 200000; 분석 데이터.('빛') =데이터.('빛') / UINT16_t_MAX * 100000; analysisData.('습도') =data.('습도') / UINT16_t_MAX * 110; %% 쓰기 데이터 %% thingSpeakWrite(writeChannelID, 분석 데이터, 'WriteKey', writeAPIKey); %% 일정 작업:반응 -> 10분마다
채널 ID 교체 우리는 마침내 원시 데이터를 실제 값으로 다시 변환할 수 있습니다. React를 사용하여 10분마다 분석 작업을 예약하는 것을 잊지 마십시오. 그렇지 않으면 실행되지 않습니다!
드디어 멋진 그래프가 생겼습니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">
제조공정
구성품 및 소모품 Arduino MKR WiFi 1010 × 1 AZ-터치 × 1 앱 및 온라인 서비스 Arduino IDE 이 프로젝트 정보 이 작은 추적기는 코로나바이러스 발생 및 해당 국가의 상황에 대한 최신 정보를 제공하는 데 도움이 됩니다. 디스플레이는 선택한 여러 국가의 현재 데이터를 번갈아 표시합니다. 데이터는 웹사이트 www.worldometers.info/coronavirus/에서 수집됩니다. 하드웨어 하드웨어 플랫폼
구성품 및 소모품 Arduino Leonardo 기타 Arduino 장치 또는 UART 변환기가 있는 Atmega × 1 LCD 16x2 × 1 점퍼 와이어(일반) × 1 이 프로젝트 정보 소개 이 프로젝트의 아이디어는 실제로 재미와 지식의 필요성에서 태어났습니다. 이 프로젝트는 만들기 쉽고 많은 응용 프로그램이 있습니다. 예를 들어 일부 하드웨어 변수를 제어, 저장 및 표시하는 데 사용할 수 있습니다. 시작하겠습니다 먼저 LCD를 연결해야