加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

【RT-Thread作品秀】智能路燈

2020/12/31
544
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
方塊圖(2)
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

【RT-Thread作品秀】智能路燈

作者:楊滿意

 

 

概述 目前路燈大多采用定時功能,但由于四季交替變化,日出日落時間不一樣,如果采用統(tǒng)一時間定時開關(guān)燈,將會浪費多余的電力資源,如果通過無線網(wǎng)控制和通過日出日落時間燈多種方式控制,將會靈活控制路燈,從而達到節(jié)能功能,是一個相當實用的設(shè)計

開發(fā)環(huán)境

硬件:art-pi

RT-Thread版本:RT-Thread V 4.0.3

開發(fā)工具及版本:MDK 5.27

RT-Thread使用情況概述內(nèi)核部分:調(diào)度器,信號量,消息隊列。

調(diào)度器:創(chuàng)建多個線程來實現(xiàn)不同的工作。

信號量:用來同步線程。

消息隊列:用來實現(xiàn)線程之間傳遞的數(shù)據(jù)。

組件部分SPI框架, Sensor框架,SAL 套接字抽象層

SPI框架:使用 SPI 框架來驅(qū)動溫度傳感器,上層代碼可以提高代碼的可重用性。

Sensor框架:為上層提供統(tǒng)一的操作接口,提高上層代碼的可重用性;簡化底層驅(qū)動開發(fā)的難度,只要實現(xiàn)簡單的 ops(operations: 操作命令) 就可以將傳感器注冊到系統(tǒng)上。

SAL 套接字抽象層:組件完成對不同網(wǎng)絡(luò)協(xié)議棧或網(wǎng)絡(luò)實現(xiàn)接口的抽象并對上層提供一組標準的 BSD Socket API,這樣開發(fā)者只需要關(guān)心和使用網(wǎng)絡(luò)應(yīng)用層提供的網(wǎng)絡(luò)接口,而無需關(guān)心底層具體網(wǎng)絡(luò)協(xié)議棧類型和實現(xiàn),極大的提高了系統(tǒng)的兼容性,方便開發(fā)者完成協(xié)議棧的適配和網(wǎng)絡(luò)相關(guān)的開發(fā)

軟件包部分

Webclient:提供設(shè)備與 HTTP Server 的通訊的基本功能。

pahomqtt,:本軟件包是在 Eclipse paho-mqtt 源碼包的基礎(chǔ)上設(shè)計的一套 MQTT 客戶端程序。

Onenet:是 RT-Thread 針對 OneNET 平臺連接做的的適配,通過這個軟件包,可以讓設(shè)備在 RT-Thread 上非常方便的連接 OneNet 平臺,完成數(shù)據(jù)的發(fā)送、接收、設(shè)備的注冊和控制等功能。

cJSONC語言實現(xiàn)的極簡的解析 JSON 格式的軟件包。

at_device:是由 RT-Thread AT 組件針對不同 AT 設(shè)備的移植文件和示例代碼組成,目前支持的 AT 設(shè)備有:ESP8266M26、MC20、RW007、MW31、SIM800C 以及 SIM76XX 系列設(shè)備等。

wifi:是一個 RT-Thread 的軟件包,該軟件包提供了 wifi 模塊的驅(qū)動

 

硬件框架

 

 

軟件框架說明

軟件框架說明,首先初始化硬件,通過wifi連接路由器,連接onenet服務(wù)器,然后判斷工作模式是否為手動模式,如果是手動模式,通過onenet服務(wù)器下發(fā)開關(guān)燈指令,如果是自動模式,則通過事先保存的經(jīng)緯度數(shù)據(jù),通過算法,計算當?shù)厝绯跞章鋾r間,然后轉(zhuǎn)化為時間戳,,然后根據(jù)實時時鐘的時間轉(zhuǎn)化的時間戳進行對比,判斷是否開關(guān)燈

 

軟件模塊說明

onenet_mqtt_init_entry初始化 onenet_mqtt, mqtt初始化成功之后,釋放信號量告知onenet_upload_data_thread線程可以上傳數(shù)據(jù)了,這里會做循環(huán)處理,周期性的檢查onenet_mqtt的狀態(tài),如果已經(jīng)斷線,就進行再次連接。

onenet_upload_data_entry: take信號量的方式,獲取到信號量之后,通過郵箱獲取到的內(nèi)存池首地址去拿到數(shù)據(jù),然后就可以發(fā)數(shù)據(jù)到 onenet云平臺PC上位機。

led _entry:讀取實時時鐘,轉(zhuǎn)化為時間戳,判斷工作模式,判斷是否開關(guān)

演示效果

 

代碼地址在附件。

比賽感悟

紙上得來終覺淺,絕知此事要躬行。陸游的這首詩,完美的詮釋了我在這次比賽中的收獲。

首次接觸  RT-Thread, 之前接觸的是freertos,多線程及其調(diào)度、信號量、郵箱、消息隊列、內(nèi)存管理、定時器等大致相同,值得贊賞的是rtthread官方生態(tài)真的好,各種插件,都已經(jīng)集成好,自己寫的代碼越來越少,更容易上手。

感謝主辦方給我這次機會接觸這么優(yōu)秀的平臺,為以后的開發(fā)者提供更大的便利,提供更多的選擇,

 

  • art_pi_wifi.zip
    描述:wifi rtc LED
  • 大賽作品智能路燈s.docx
    描述:智能路燈

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

TA的熱門作品