NodeMCU(ESP8266) Arduino使用mqtt
这个库还挺多的, 有[PubSubClient](), Adafruit_MQTT_Library, EspMQTTClient等等.
这个库还挺多的, 有[PubSubClient](), Adafruit_MQTT_Library, EspMQTTClient等等.
现代城市人为啥一过节就疯了一样出去玩?因为日复一日的枯燥平淡,从感觉到情绪都不起波澜。人类进化历史的大多数时间都在挨饿、被捕食者追逐、获取猎物、采集浆果中度过,哪一天都有喜怒哀惧。现代生活每天就是公交地铁打电脑,感觉和情绪都如沙漠般寸草不生孤独饥渴。电影、网剧、旅游、以至于现在流行的密室,给现代人的感觉和情绪刺激就像沙漠中的水一样,不是可有可无,而是刚需。
现代人精神疾病的增多大概也是因为如此吧。
最终还是要靠FastLED啊, 直接做好了Nodemcu的兼容.
FastLED的文档写得也很全面.
编译的时候有点儿问题, 不知道影响不影响.
In file included from D:\r\arduino\test2\FastLED_Blink\FastLED_Blink.ino:2:0:
C:\Program Files (x86)\Arduino\libraries\FastLED\src/FastLED.h:14:21: note: #pragma message: FastLED version 3.004.000
# pragma message "FastLED version 3.004.000"
^
In file included from C:\Program Files (x86)\Arduino\libraries\FastLED\src/FastLED.h:65:0,
from D:\r\arduino\test2\FastLED_Blink\FastLED_Blink.ino:2:
C:\Program Files (x86)\Arduino\libraries\FastLED\src/fastspi.h:140:23: note: #pragma message: No hardware SPI pins defined. All SPI access will default to bitbanged output
# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"
^
Executable segment sizes:
IROM : 230192 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 27012 / 32768 - code in IRAM (ICACHE_RAM_ATTR, ISRs...)
DATA : 1248 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 692 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 25000 ) - zeroed variables (global, static) in RAM/HEAP
项目使用了 259144 字节,占用了 (24%) 程序存储空间。最大为 1044464 字节。
全局变量使用了26940字节,(32%)的动态内存,余留54980字节局部变量。最大为81920字节。 pip install googletrans -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
做个mypip.bat文件替代pip
pip %* -i https://pypi.douban.com/simple --trusted-host pypi.douban.com Packmage, 有一些包装资源, 可以在线看3D折叠效果.
除了宗教和神棍, 现代人类其实创建了很多事物用于预测. 其中最准确的预测还是要回到数据上来.
对于经济的预测, 人类创造的就是金融证券市场. 似乎哪儿说的, 股市对经济有4~6个月的预测提前期.
金融证券, 股市期货事实上是把投资者的分析结果, 量化为股票和期货的价格, 从而形成对经济的量化的预测.
目前看到人类基因组学, 宏基因组学等逐渐从实验室转向了键盘上的数据分析, 以实现对人类健康的精确预测.
人类基因组是3T的数据, 肠道微生物宏基因组是3T*10K的动态变化数据, 这些数据量无疑及其庞大的. 如何发分析, 如何用大数据分析, 机器学习分析, 人工智能分析, 可能是人类健康预测的发展方向.
更不用说天气预报基于了更多的数据进行预测, 使用超级计算机运算才得出几乎很准确的预测结果了.
精准的数据量化分析, 运用各种工具, 提出新的指标, 是经济金融预测, 健康预测未来的发展方向, 也可能是其他需要预测的学科的发展方向.
2024/1/8 在最新的文档中介绍了对目标的选择和目标选择器的使用
https://documents.laiye.com/rpa-guide/docs/DevGuideD1/Chapt3-Target
直接用命令里的获取目标只适合目标的名称不会变化的. 如果目标的名称会变, 就只能用目标选择器去拆解目标.
按官方文章给出的方法, 可变目标名称一个是将aaname改为*, 但会增加错选的概率. 另一个是通过目标选择器(UI分析器)选择上级的不变目标, 再用获取子元素的命令获取子元素, 再从子元素中找到想要的目标.
以鼠标点击目标为例,
{
wnd: [
{ cls: "Chrome_WidgetWin_1", title: "*", app: "chrome" },
{ cls: "Chrome_RenderWidgetHostHWND", title: "Chrome Legacy Window" },
],
html: [{ tag: "SPAN", parentid: "body", aaname: "idarc", idx: 0 }],
}
wnd应为window的缩写, 对于Chrome的窗口的选择代码死树是固定的.
html因为对具体页面的选择.
tag: 为选择文本的标签名
parentid: 上级中最近一个有id的标签的id. 这儿正好是body, 但不是指body标签.
aaname: 标签内的文字. 不加通配符是需要精确匹配的. 另外试过是支持*和?通配符, 用法和正则一样. 其他正则符号似乎就不支持了.
idx: index的简称, 在parentid的标签内可能有出现了多个tag, 其中的文字也是相同的, 这个idx是第几个的意思. 从0开始计数.
如果tag能定位, 则不需要parentid, 其他的键也类似.
html: [
{ tag: "TABLE", parentid: "J_Reviews" },
{ tag: "TD", tableRow: "2", tableCol: "3" },
]
html数组中的值是依次缩小搜索范围的.
定位某一个单元格TD, 出现了两个新的键名: tableRow和tableCol, 分别是行数和列数. 这儿注意, 行数和列数是从1开始数的.
html: [
{
tag: "IMG",
parentid: "J_Reviews",
"css-selector":
"body>div>div>div>div>div>div>div>div>div>div>table>tbody>tr>td>div>div>div>ul>li>img",
src:
"//img.alicdn.com/bao/uploaded/i4/O1CN012qd0b21L8NLDRJi8f_!!0-rat*",
},
]
这儿出现了另两个新键名:
css-selector: css选择器. 但是这个里面没有出现id和class的选择器. 试了一下, class选择器.似乎是不支持的.
src: 可以写入src. 其中似乎可以使用*通配符.
参考: https://zhuanlan.zhihu.com/p/90916040?from_voters_page=true
位置在F12->Elements,然后点击中间Styles菜单行最后的>>,选择UiBot.
用Chrome自己的选择器选择目标后, 再点击Uibot中的生成选择器或生成选择器(CSS selector)生成选择器JSON代码.
普通选择器样式:
{
"html": {
"tagName": "P",
"attrMap": {
"tag": "P",
"isleaf": "1"
},
"index": 24
},
"wnd": [
{
"app": "chrome",
"cls": "Chrome_WidgetWin_1",
"title": "*"
},
{
"cls": "Chrome_RenderWidgetHostHWND",
"title": "Chrome Legacy Window"
}
]
}
CSS选择器样式:
{
"html": {
"tagName": "p",
"attrMap": {
"css-selector": "body>div>div>main>div>article>div>div>p"
},
"index": 34
},
"wnd": [
{
"app": "chrome",
"cls": "Chrome_WidgetWin_1",
"title": "*"
},
{
"cls": "Chrome_RenderWidgetHostHWND",
"title": "Chrome Legacy Window"
}
]
} 复制这段内容后打开百度网盘App,操作更方便哦。 链接:https://pan.baidu.com/s/10Tk1aC7htd0_YI7gzJnTAw 提取码:814v
用tortoise git的操作方式:
首先查看log, 然后选中要撤销的所有版本. 比如提交了10个版本,要回退到第7个版本, 那么就选中8, 9, 10 这三个版本, 点击右键, 选择'revert...'
常见问题