宠物狗智能项圈系统
7 设计难点原理解析
本文引用地址:https://www.eepw.com.cn/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后缀的网址发布到互联网,从而可以快速实现远程访问。
评论