寵物狗智能項圈系統
7 設計難點原理解析
本文引用地址:http://www.104case.com/article/273064.htm(1)MSP430程序自升級
一般將新程序燒寫到單片機需要燒寫軟件或使用串口進行燒錄。要實現遠程升級,需引入類似于操作系統中的bootloader。下面這段引導代碼需事先燒錄至單片機中。
void main()
{
WDTCTL = WDTPW + WDTHOLD; //關看門狗
If(ResetVectorValid() == 1) //判斷是否已更新程序
{
Application();
}
Update();
}
其中Application()中存放用戶執行程序,而Update()中進行獲取程序,并將相關程序從內存拷貝至flash進行覆蓋。當然,這里對燒錄進的二進制文件需要有一定程度的了解,才能將其拷貝至對應位置。
(2)網絡功能
這部分需要對樹莓派與linux系統有一定程度的了解。在樹莓派中,利用python語言的靈活性及集成好的工具,可以輕易地實現很多網絡功能。結合我們的系統舉個小例子,從寵物端獲取數據后,將其存放至一個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函數的第一個參數可帶路徑。執行后可通過訪問樹莓派的IP地址獲取到相關信息,此時訪問端需與樹莓派處于同一網段。執行完上述python文件后,緊跟著執行ngrok 80,即可以帶有.ngrok.com后綴的網址發布到互聯網,從而可以快速實現遠程訪問。
評論