流水灯带外置IC: WS2811, UCS1903
原来WS2811就是IC, 而不是像WS2812B一样是灯珠外观. 同样是Worldsemi的产品. Worldsemi公司名字叫做东莞市华彩威科技有限公司.
UCS1903是深圳联芯科的景观亮化IC. 深圳联芯科以前是苏州联芯科, 不知为何苏州的公司在2019年注销了.
还有支持所谓DMX512(基于RS485)协议的IC. DMX512协议是一种流行的舞台灯光控制协议.
原来WS2811就是IC, 而不是像WS2812B一样是灯珠外观. 同样是Worldsemi的产品. Worldsemi公司名字叫做东莞市华彩威科技有限公司.
UCS1903是深圳联芯科的景观亮化IC. 深圳联芯科以前是苏州联芯科, 不知为何苏州的公司在2019年注销了.
还有支持所谓DMX512(基于RS485)协议的IC. DMX512协议是一种流行的舞台灯光控制协议.
参考: https://www.zhihu.com/question/26246195
事实上Web上的实时双向协议只有WebSocket, 所以MQTT并不能通过原MQTT协议直联, 需要Over WebSocket.
MQTT的端口是1833, 而ws的端口是80, wss(ws over SSL)的端口是443, 那么RabbitMQ的MQTT over WebSocket的端口是多少? 答案是特定端口15675
,地址是ws://hostaddress:15675/ws
, 至于wss, 除了端口改为15676
外,还需要很多配置, cert/key/password等等.
RabbitMQ 上设置和连接的方式
在linux上同时安装mosquitto和rabbitmq会冲突. 如果mosquitto的服务已经启动, 则rabbitmq可能无法启动.
查看服务状态:
systemctl status mosquitto.service
systemctl status rabbitmq-server.service
关闭mosquitto, 重新启动rabbitmq服务:
sudo service mosquitto stop
sudo service rabbitmq-server restart
在"控制面板->凭证管理器"中选择"windows凭据",在普通凭据
中找到对应的凭据,点击修改即可.
这个库还挺多的, 有[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"
}
]
}