Menggunakan rangka kerja Gin untuk melaksanakan IoT dan fungsi kawalan peranti pintar

PHPz
Lepaskan: 2023-06-22 16:19:38
asal
1531 orang telah melayarinya

Dengan perkembangan Internet Perkara, semakin banyak peranti pintar telah memasuki kehidupan keluarga kami, seperti mentol lampu pintar, pembesar suara pintar, kunci pintu pintar, dsb. Untuk menjadikan peranti pintar ini lebih pintar dan mudah, kami boleh menggunakan rangka kerja Gin untuk melaksanakan kawalan jauh dan fungsi kawalan automatik peranti ini.

Gin ialah rangka kerja web yang ringan dengan prestasi yang baik dan API yang mudah digunakan. Kita boleh menggunakan rangka kerja Gin untuk membina API RESTful untuk kawalan jauh peranti pintar. Di bawah, kami akan menggunakan rangka kerja Gin untuk membina sistem kawalan peranti pintar ringkas untuk menunjukkan cara menggunakan rangka kerja Gin untuk melaksanakan Internet Perkara dan fungsi kawalan peranti pintar.

  1. Buat projek Gin

Pertama, kita perlu membina projek Gin secara tempatan. Anda boleh menggunakan kod sampel yang disediakan dalam dokumentasi rasmi Gin, atau gunakan alat perancah gin-cli yang disediakan oleh rangka kerja Gin untuk membuat projek dengan cepat. Selepas

# 安装gin-cli
$ go get -u github.com/gin-gonic/gin

# 创建项目
$ gin new iot-control
Salin selepas log masuk

dicipta, kita dapat melihat bahawa struktur projek adalah seperti berikut:

iot-control/
├── go.mod
├── go.sum
├── main.go
├── pkg/
├── public/
│   └── index.html
├── README.md
└── routers/
    └── router.go
Salin selepas log masuk

Antaranya, main.go ialah fail kemasukan utama program, peraturan routing ditakrifkan dalam routers/router.go, dan public/index.html Kod halaman hujung hadapan boleh diletakkan di dalamnya.

  1. Sambung ke peranti pintar

Sebelum menulis logik perniagaan, kita perlu menyambung ke peranti pintar terlebih dahulu. Mengambil mengawal mentol lampu pintar sebagai contoh, kita boleh menggunakan protokol MQTT untuk menyambung ke mentol lampu pintar.

import (
    "fmt"

    mqtt "github.com/eclipse/paho.mqtt.golang"
)

const (
    mqttBroker   = "tcp://localhost:1883"
    mqttUsername = "username"
    mqttPassword = "password"
    mqttTopic    = "smart-home/lamp"
)

func connect() mqtt.Client {
    options := mqtt.NewClientOptions()
    options.AddBroker(mqttBroker)
    options.SetUsername(mqttUsername)
    options.SetPassword(mqttPassword)

    client := mqtt.NewClient(options)
    if token := client.Connect(); token.Wait() && token.Error() != nil {
        panic(token.Error())
    }

    return client
}

func toggleLamp(client mqtt.Client) {
    token := client.Publish(mqttTopic, 0, false, "toggle")
    token.Wait()
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menentukan alamat pelayan MQTT, nama pengguna, kata laluan dan tema mentol lampu pintar. Kemudian, kami mencipta item konfigurasi klien MQTT melalui fungsi mqtt.NewClientOptions(), kemudian mencipta tika klien MQTT dan disambungkan ke pelayan MQTT. Akhirnya, kami melaksanakan fungsi toggleLamp() untuk mengawal suis mentol lampu pintar.

  1. Tulis logik perniagaan

Seterusnya, kita boleh menulis logik perniagaan untuk merealisasikan fungsi kawalan peranti pintar. Dalam peraturan penghalaan, kami boleh mendapatkan parameter permintaan melalui kaedah gin.Context dan memanggil fungsi yang kami laksanakan pada langkah sebelumnya untuk mengawal peranti.

import (
    "github.com/gin-gonic/gin"
    mqtt "github.com/eclipse/paho.mqtt.golang"
)

func main() {
    router := gin.Default()

    // 连接智能灯泡
    client := connect()

    // 路由规则
    router.GET("/toggle_lamp", func(c *gin.Context) {
        toggleLamp(client)
        c.JSON(200, gin.H{
            "message": "Lamp toggled",
        })
    })

    router.Run(":8080")
}
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menyambung ke mentol lampu pintar, dan kemudian mentakrifkan peraturan penghalaan permintaan GET untuk mengawal suis mentol lampu pintar. Apabila meminta laluan ini, kami memanggil fungsi toggleLamp() untuk mengawal mentol lampu pintar dan mengembalikan data respons berformat JSON.

Simpan kod di atas sebagai fail main.go dan laksanakan perintah go run main.go Kita boleh memulakan sistem kawalan peranti pintar dan kemudian mengawal suis mentol lampu pintar dengan mengakses http://localhost:8080/toggle_lamp.

  1. Ringkasan

Melalui langkah di atas, kami berjaya melaksanakan Internet Perkara dan fungsi kawalan peranti pintar menggunakan rangka kerja Gin. Seterusnya, kami boleh mengembangkan lebih banyak fungsi berdasarkan contoh ini, seperti mengawal berbilang peranti pintar, merealisasikan kawalan automatik, dsb. Pada masa yang sama, kami juga boleh melaksanakan kaedah komunikasi yang lebih cekap dan maju berdasarkan protokol seperti WebSocket dan gRPC. Ringkasnya, menggunakan rangka kerja Gin membolehkan kami membina sistem kawalan IoT dan peranti pintar yang boleh dipercayai, cekap dan mudah berskala.

Atas ialah kandungan terperinci Menggunakan rangka kerja Gin untuk melaksanakan IoT dan fungsi kawalan peranti pintar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!