zigbee初学者疑惑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zigbee初学者疑惑相关的知识,希望对你有一定的参考价值。

现在云里雾里的。
网上看到不少书籍推荐,其中比较有名的是这本zigbee wireless networking (http://book.douban.com/subject/3581909/).其他书我看了看目录,都大同小异。

这就是我疑惑之处了,它把zigbee的每层协议都讲得很清楚,还讲了一些应用,但是里面半行代码也没有,我想自己试试也不知从何下手,感觉即便看完也还是不知所措。。。不是吗?把zstack打开发现里面一堆一堆协议代码也不知道怎么理解。

问一下过来人是如何入门的?先干点什么?

我给你一些建议,我学习zigbee已有半年有余,当时连什么是zigbee都不知道。要学好zigbee必须理论实践相结合,从最基础入手。单片机基础非常重要,c语言同样如此。只有掌握以上两种技能你才能看懂代码是写的什么东西。如果你以前利用c开发过单片机,那你入门将会快很多。协议栈里所用到c,几乎包括c所有的知识点,我相信在大学里面老师只会点到为止,c必须精通才行。
网上有几个好的论坛,其中飞比是我经常去的地方,里面有蛮多牛人,不懂可以问他,当然非常简单的东西就不要问了,没什么意义,里面牛人有毛毛老师,outman,相信你在网上很定看到他们的学习笔记,我都是一篇篇看过来的。另外,zigbeeqq群最好加一个,可以随时交流。
另外网上有关于zigbee学习的视频,锋硕电子出版的,将得蛮好。
zstack协议栈里面实例,最好从基础实验做前,从最基础的中断,定时器,adc到绑定,组网,一步步来。有些东西第一遍没弄明白,多看几遍就会明白。
等你实验做的差不多,osal操作系统工作流程弄懂,按键流程,串口流程,弄懂。你就可以在别人的代码基础上做自己的应用。
参考技术A 大家都是从初级学习者走过来的。建议你买个zigbee开发套件。TI公司的不错。慢慢学习摸索。不懂的地方打断点多观察。慢慢的就可以了解和参透zigbee这方面的通信原理了。

初学疑惑开发者工具可信度高吗?Python爬虫实战场景

本篇博客是一个小小的 Python 爬虫实践,重点为解释在 Python 爬虫实战过程中,浏览器的开发者工具和代码抓取的网页源码,存在数据差异。

翻译一下就是开发者工具和爬虫采集到的源码,不一样。
本次案例来源为 《Python 爬虫 120》 专栏订阅者,5 年保爬虫更新。

⚡⚡ 学习注意事项 ⚡⚡
文章会自动省略 httphttps 协议,学习时请自行在地址中进行补充。
目标站点域名为 uisdc.com,在下文统一用 橡皮擦 代替,学习时请自行拼接。

文章目录

⛳️ 实战场景

如果你的目标是采集前文提及的站点,那你会碰到下述场景。使用开发者工具的【选择元素】操作时,选中目标元素,得到的 element 节点如下所示。


选定目标后,将得到一个名为 i+ 的标签。许多刚刚学习 Python 爬虫的爱好者可能不太了解这个标签的含义,这可能导致无法进行采集。

该标签其实是由前端 JS 脚本渲染而成,HTML 中并没有该标签,但我们要采集的目标文字是 “优秀网页设计”

使用下述代码进行尝试,为了使初学者也可以看懂,这里罗列详细步骤。

首先,我们需要在代码中导入 requests 库。在 Python 中,可以使用 import 关键字来实现这一点。

import requests

接下来,我们可以使用 requests 库中的 get() 方法来发起 HTTP 请求,并获取 橡皮擦.com/archives 网页的内容。

response = requests.get("https://www.uisdc.com/archives")

获取到网页内容后,我们可以使用 response.text 属性来获取网页的内容。

content = response.text

最后,我们可以打印出采集到的内容,以便查看采集到的数据。

print(content)

整个代码如下:

import requests

response = requests.get("https://www.uisdc.com/archives")
content = response.text
print(content)

如果您想要保存上文中采集到的网页源码,可以使用 Python 中的文件操作来实现。

首先,我们需要打开一个文件,并使用 write 方法将内容写入文件中。

with open("ca_demo.html", "w") as file:
    file.write(content)

在这里,我们使用了 Python 中的 with 关键字,以便在打开文件后自动关闭文件。我们指定了文件名为 "ca_demo.html",并使用了 "w" 模式来打开文件,这意味着我们将向文件中写入内容。

接下来,我们调用 file.write 方法将网页源码写入文件中。

最后,在 with 块结束后,文件会自动关闭。

整个代码如下:

import requests

response = requests.get("https://www.uisdc.com/archives")
content = response.text

with open("ca_demo.html", "w") as file:
    file.write(content)

这样,就可以在当前目录下找到名为 "ca_demo.html" 的文件,里面包含了采集到的网页源码。

这时就会碰到刚刚的问题,在 "ca_demo.html" 中检索 优秀网页设计 这几个字,根本找不到,而且 i+ 元素节点也找不到。

再回到开发者工具,在 i+ 节点前面的位置找到 data-val 内容,如下所示。

上图划线位置的开头可以看到这样的文字 %3Ci+class,了解过文字编码的同学,可以知道 %3C = <,这里的 % 关键字标识此处应用的是 URL 编码。
所以将 data-val 内容进行解码之后,得到下述信息。

<i+class="uname"+title="优秀网页设计">优秀网页设计</i>


到这里本 Python 爬虫案例已经可以继续实施了,在网站返回的源码中,搜索前文被 URL 编码过的数据,就可以进行数据的抓取了,当然,需要对得到的内容进行 URL 解码,示例代码如下。

import urllib.parse
decoded = urllib.parse.unquote("%3Ci+class%3D%22uname%22+title%3D%22%E4%BC%98%E7%A7%80%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1%22%3E%E4%BC%98%E7%A7%80%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1%3C%2Fi%3E")
print(decoded)

这里用到的是 urllib.parse 模块,提前导入模块,然后使用 urllib.parse.unquote() 方法来解码 URL 中的特殊字符。

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 791 篇原创博客

从订购之日起,案例 5 年内保证更新

以上是关于zigbee初学者疑惑的主要内容,如果未能解决你的问题,请参考以下文章

初学Java你有这些疑惑吗?本文给你几个建议

求教高手,初学javaweb,有一个关于抽奖后台程序的疑惑

初学疑惑开发者工具可信度高吗?Python爬虫实战场景

ZigBee学习笔记一

年度最疑惑问题:精通C++需要多久?

webpack初学