Rumah pembangunan bahagian belakang Golang Apl MacOS Pemantauan CO Masa Nyata dengan Go

Apl MacOS Pemantauan CO Masa Nyata dengan Go

Jan 20, 2025 pm 08:24 PM

Tutorial ini menunjukkan membina monitor CO₂ masa nyata menggunakan Go, dongle USB BleuIO BLE dan penderia kualiti udara HibouAir BLE. Aplikasi Go ini mengimbas data CO₂ dengan cekap, menyahkodnya dan menyediakan pemberitahuan masa nyata macOS apabila tahap CO₂ melepasi ambang kritikal. Penggunaan arahan AT BleuIO memudahkan interaksi BLE, membenarkan fokus pada logik aplikasi.

Matlamat Projek:

Permohonan akan:

  1. Gunakan BleuIO untuk mengimbas iklan HibouAir BLE yang menyiarkan tahap CO₂.
  2. Nyahkod iklan ini untuk mengekstrak kepekatan CO₂.
  3. Paparkan pemberitahuan macOS masa nyata apabila tahap CO₂ melebihi ambang yang dipratentukan (cth., 1000 ppm).

Pemberitahuan macOS dilaksanakan melalui utiliti osascript, memberikan makluman segera.

Mengapa Ini Berguna:

Aplikasi ini menangani isu perubahan persekitaran yang tidak disedari. Ia amat bermanfaat untuk:

  • Pekerja pejabat: Memantau bilik mesyuarat atau ruang kerja kongsi untuk pengudaraan yang mencukupi.
  • Pekerja jauh: Mengekalkan ruang kerja rumah yang sihat.
  • Tetapan pendidikan: Memastikan tahap CO₂ selamat dalam bilik darjah dan makmal.

Spesifikasi Teknikal:

  • Bahasa Pengaturcaraan: Go (dipilih kerana kesederhanaan, prestasi dan sokongan komuniti).
  • Dongle USB BLE: BleuIO (memudahkan komunikasi BLE menggunakan arahan AT).
  • Penderia CO₂: HibouAir (menyediakan data kualiti udara BLE masa nyata).

Aliran Kerja:

  1. Permulaan Dongle: BleuIO dikonfigurasikan sebagai peranti pusat untuk mengimbas peranti BLE.
  2. Imbasan Data: Perintah AT FINDSCANDATA mengimbas iklan HibouAir yang mengandungi data CO₂.
  3. Pengeluaran Data CO₂: Data iklan yang berkaitan diekstrak dan ditukar kepada ppm.
  4. Pemberitahuan: Go's exec.Command melaksanakan osascript untuk memaparkan pemberitahuan desktop jika ambang CO₂ melebihi.

Pelaksanaan (Go Code):

package main

import (
    "bufio"
    "fmt"
    "log"
    "os/exec"
    "strconv"
    "strings"
    "time"

    "go.bug.st/serial"
)

// ... (rest of the Go code remains the same) ...
Salin selepas log masuk

(Kod Go lengkap tersedia di https://www.php.cn/link/b270a720f6ac2e8a8c53d968243d5971)

Output:

Real-Time CO Monitoring MacOS App with Go

Projek ini memanfaatkan kecekapan Go dan kesederhanaan BleuIO untuk mencipta penyelesaian pemantauan CO₂ masa nyata yang praktikal dan boleh disesuaikan.

Atas ialah kandungan terperinci Apl MacOS Pemantauan CO Masa Nyata dengan Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah? GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah? Mar 03, 2025 pm 05:17 PM

GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah?

Bagaimana saya menulis objek dan stub untuk ujian di GO? Bagaimana saya menulis objek dan stub untuk ujian di GO? Mar 10, 2025 pm 05:38 PM

Bagaimana saya menulis objek dan stub untuk ujian di GO?

Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego? Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego? Mar 03, 2025 pm 05:22 PM

Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego?

Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya? Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya? Mar 10, 2025 pm 05:36 PM

Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya?

Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO? Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO? Mar 10, 2025 pm 03:20 PM

Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO?

Bagaimana cara menulis fail dalam bahasa Go dengan mudah? Bagaimana cara menulis fail dalam bahasa Go dengan mudah? Mar 03, 2025 pm 05:15 PM

Bagaimana cara menulis fail dalam bahasa Go dengan mudah?

Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go? Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go? Mar 03, 2025 pm 05:18 PM

Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go?

Bagaimanakah saya menulis tanda aras yang mencerminkan prestasi dunia secara tepat di GO? Bagaimanakah saya menulis tanda aras yang mencerminkan prestasi dunia secara tepat di GO? Mar 10, 2025 pm 05:36 PM

Bagaimanakah saya menulis tanda aras yang mencerminkan prestasi dunia secara tepat di GO?

See all articles