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.
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
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
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.
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() }
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.
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") }
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
.
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!