머리말
Raspberry Pi(RPi)는 학생 컴퓨터 프로그래밍 교육을 위해 특별히 설계되었습니다. 신용카드 크기의 카드형 컴퓨터로 Linux 또는 Windows 10 IoT Core 운영 체제를 실행할 수 있습니다. 본 글에서는 Raspberry Pi와 UWP(Universal Windows Platform) 개발 기술을 활용하여 실시간으로 모니터링할 수 있는 기상 관측소 시스템을 구축해보겠습니다.
하드웨어 및 관련 기술
하드웨어 부분 :
Raspberry Pi 2 또는 3, 8G 이상의 메모리 카드, 카드 리더기(또는 SD 카드가 장착된 컴퓨터) 인터페이스) 1개, Dht11 온도 및 습도 센서 1개, GY-68 BMP180 기압계 1개,
LY-69 토양 수분 측정기 1개, MQ-2 연기 센서 1개, 빗방울 센서 1개; 여러 개의 암수 DuPont 케이블, 브레드보드, 마이크로 USB 케이블, 전원 공급 장치
HDMI 인터페이스 모니터(또는 다른 인터페이스에 대한 HDMI).
개발 부분:
통합 개발 환경: Visual Studio 2017(커뮤니티 버전 권장)
개발 언어: C#; 개발 플랫폼: UWP
통신 프로토콜: MQTT;
Raspberry Pi 운영 체제: WIndows 10 IoT Core;
데이터베이스: Sqlite
운영 체제 다운로드 및 설치:
Windows 10 IoT Core 대시보드 애플리케이션 설치 Microsoft 개발자 센터에서 Raspberry Pi 3를 선택하고 빈 microSD 카드, Windows10 IoT 코어에 설치하고 다음 버튼을 클릭하여 새 페이지로 이동하고 대시보드 다운로드 버튼을 클릭하여 다운로드한 후 설치합니다.
운영 체제를 MicroSD 카드에 굽습니다. 설치가 완료된 후 새 장치 설정 항목을 선택하여 굽기 페이지로 들어갑니다. 장치 유형으로 Raspberry Pi 2&3을 선택하고, OS 내부 버전으로 Windows 10 IoT Core(15063)를 선택하고, 삽입된 MicroSD 카드를 드라이버로 선택하고, WLAN 네트워크 연결을 확인하세요. 현재 컴퓨터를 연결하는 옵션 연결된 WLAN 정보가 Raspberry Pi 개발 보드의 운영 체제에 복사되어 재구성 문제가 제거됩니다. 이 시점에서 Raspberry Pi에 Windows 10 IoT 운영 체제 설치가 완료됩니다. .
아래 그림과 같이:
MQTT 통신:
MQTT(Message Queuing Telemetry Transport)는 IBM에서 개발한 인스턴트 메시징 프로토콜입니다. 수년간의 개발 끝에 MQTT는 다양한 분야에서 널리 사용되었으며 모바일 클라이언트를 위한 메시지 푸시 도구로 사용될 수 있으며 Android 애플리케이션에서 비교적 큰 비중을 차지합니다. MQTT는 사물인터넷을 위해 특별히 설계된 통신 프로토콜로 대역폭이 낮고 불안정한 네트워크 환경에서도 정상적으로 작동하는 특성을 가지고 있습니다. 메시징에는 세 가지 모드가 있습니다.
최대 한 번만 메시지 손실 또는 중복이 발생합니다. 이 모드는 메시지가 손실되더라도 곧 다시 전송됩니다.
한 번만 중복 데이터 없이 메시지가 도착하도록 보장하며, 결제 시스템과 같이 정확한 데이터가 필요한 시스템에 적합합니다.
메시지 도착을 확인하기 위해 최소한 한 번은 시도해야 하지만 중복이 발생할 수 있습니다.UWP에서 MQTT를 사용하려면 nuget 패키지를 설치해야 합니다. m2mqtt
public class Mqtt : MqttClient {public Mqtt(string host) : base(host, 61613, false, MqttSslProtocols.None) { Connect(Guid.NewGuid().ToString(), "admin", "password"); Subscribe(new string[] { "atmo" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE }); // PostData("Hello World!"); } public void RequestData(string msg) { Publish("atmo", Encoding.UTF8.GetBytes(msg)); }public void PostData(string msg) { Publish("atmo", Encoding.UTF8.GetBytes(msg)); } }
Sqlite 구현: UWP에서 Sqlite를 사용하려면 먼저 Universal Windows 플랫폼용 VS 확장 Sqlite를 설치해야 합니다. Nuget 패키지 SQLite.Net-PCL. sqlite의 자세한 사용법은 다음을 참조하세요.
다음은 이 시스템의 데이터베이스 클래스입니다:
public class DataBase : SQLiteConnection {public static string path = Path.Combine(ApplicationData.Current.LocalFolder.Path, "atmo.db");public DataBase() : base(new SQLitePlatformWinRT(), path) { CreateTable<DataModel>(); } }
INotifyPropertyChanged 인터페이스 구현
public class ViewModelBase : INotifyPropertyChanged {public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged([CallerMemberName]string name = "") { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } }
Raspberry Pi GPIO 다이어그램
하드웨어 연결 다이어그램:
센서 핀 다이어그램:
프로젝트 주소:
이 프로젝트는 아직 완벽하지 않습니다. 모두 환영합니다. 보충과 수정!
위 내용은 라즈베리파이(RPi)에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!