寵物狗智能項圈系統(tǒng)
7 設(shè)計難點原理解析
本文引用地址:http://www.ex-cimer.com/article/273064.htm(1)MSP430程序自升級
一般將新程序燒寫到單片機需要燒寫軟件或使用串口進行燒錄。要實現(xiàn)遠程升級,需引入類似于操作系統(tǒng)中的bootloader。下面這段引導代碼需事先燒錄至單片機中。
void main()
{
WDTCTL = WDTPW + WDTHOLD; //關(guān)看門狗
If(ResetVectorValid() == 1) //判斷是否已更新程序
{
Application();
}
Update();
}
其中Application()中存放用戶執(zhí)行程序,而Update()中進行獲取程序,并將相關(guān)程序從內(nèi)存拷貝至flash進行覆蓋。當然,這里對燒錄進的二進制文件需要有一定程度的了解,才能將其拷貝至對應位置。
(2)網(wǎng)絡(luò)功能
這部分需要對樹莓派與linux系統(tǒng)有一定程度的了解。在樹莓派中,利用python語言的靈活性及集成好的工具,可以輕易地實現(xiàn)很多網(wǎng)絡(luò)功能。結(jié)合我們的系統(tǒng)舉個小例子,從寵物端獲取數(shù)據(jù)后,將其存放至一個data.txt件中,并運行以下python文件:
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
with open("data.txt","r") as fd:
self.write(fd.read())
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
application.listen(80)
tornado.ioloop.IOLoop.instance().start()
這部分可當做模板使用,其中open函數(shù)的第一個參數(shù)可帶路徑。執(zhí)行后可通過訪問樹莓派的IP地址獲取到相關(guān)信息,此時訪問端需與樹莓派處于同一網(wǎng)段。執(zhí)行完上述python文件后,緊跟著執(zhí)行ngrok 80,即可以帶有.ngrok.com后綴的網(wǎng)址發(fā)布到互聯(lián)網(wǎng),從而可以快速實現(xiàn)遠程訪問。
評論