• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

2020/12/31
372
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

art_pi_wifi.zip

共2個(gè)文件

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

作者:楊滿意

 

 

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

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

硬件:art-pi

RT-Thread版本:RT-Thread V 4.0.3

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

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

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

信號(hào)量:用來(lái)同步線程。

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

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

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

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

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

軟件包部分

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

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

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

cJSONC語(yǔ)言實(shí)現(xiàn)的極簡(jiǎn)的解析 JSON 格式的軟件包。

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

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

 

硬件框架

 

 

軟件框架說(shuō)明

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

 

軟件模塊說(shuō)明

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

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

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

演示效果

 

代碼地址在附件。

比賽感悟

紙上得來(lái)終覺(jué)淺,絕知此事要躬行。陸游的這首詩(shī),完美的詮釋了我在這次比賽中的收獲。

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

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

 

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

相關(guān)推薦