AYAYA.22.10.27

在插上pe4010之后,昨天一个下午和一个晚上就搞完了1.5TB数据的复制,中途不需要任何人工干预(确信🤔但验checksum方面一直折腾到今天早上才搞完(悲🤔现在我终于可以把那两块3TB垃圾盘扔进柜子里,然后当它们完全不存在了(确信🤔

接下来onedrive转discord/guilded脚本也跑完了,这次是第二遍🤔第一遍时我设置错了文件名,极其生草的是我写出了设置正确文件名的语句,却忘了在aria2c的参数里加--out,wiebitte?🤔

这次处理的时候更加离谱,由于中途我又叫停了一次,再次运行时onedrive开始429了(恼🤔我以前下rosefile时它就经常给我搞这套,现在我自己的onedrive也开始了?🤔

接下来我迫真休息了一会儿后看上去顺利很多,但检查文件数量的时候发现还是缺了两个(恼🤔对着8个线程的所有日志文件排查,发现有两个线程的第一个文件由于报429错误导致完全没有开始下载,那它当然也不会被上传了🤔

那非常好办了,至少比度盘好办,直接再将那两个oneindex链接扔进去处理就vans了(确信🤔

我估摸着这种429事故以后应该不会发生了,这次发生其实是因为我频繁启动生产环境脚本,但到现在这个脚本已经确定下来了(确信🤔

不错,我完成了第一次onedrive转discord/guilded,现在guilded链接也加上了其他文字描述,比如文件名、大小等🤔至于利用guilded新加的content disposition文件名这个,我现在还在考虑,也许可以考虑把sha512给作为文件名上传上去,反正上传脚本的构造form部分可以塞进去几个参数(确信🤔

接下来是不是可以去写onedrive转度盘了?这部分就非常随意了,我想设置几个线程就设置几个线程,它不需要和discord drive绑定,也不需要将生成的无论是discord链接还是guilded链接打在discord频道里,还得几个线程打印几个频道,随便找个频道输出下进度就vans了(确信🤔

paimonthonk

另外我这几天逛cloudflare论坛的时候,发现discord故意屏蔽了cloudflare相关的所有ip访问它的cdn站(恼🤔甚至discord的员工也出来说话了,大致意思是discord的cdn直链理论上来说只限在app内(当然是指discord啦)用,它只是恰好能在外访问而已🤔还说什么不鼓励别人拿discord当文件存储之类的(本discord drive野爹笑而不语🤔这傲娇的语气简直了(半恼🤔

那我比较好奇它有没有屏蔽pikapod,我也许可以把我挂的什么guilded中转php还是discord中转php再改改,改成反向的?🤔也就是完全转发客户端发来的所有请求头,考虑到这是下载而非上传,请求体肯定没有,所以直接撸就vans了,应该可以实现discord drive多线程(确信🤔现在还有一个问题,url rewrite怎么搞来着?🤔

thonkeqing

最后我照抄了oneindex的url rewrite,又照着某个名字貌似叫做mini proxy还是micro proxy的php项目改了一顿,让它们可以(理论上来说)转发所有请求头或者响应头(确信🤔

最后测试下来的效果是,无论guilded还是discord的文件cdn都能完美转发,这样就实现了guilded drive或者discord drive的墙内使用(确信🤔为什么我又对guilded drive写了一个,是因为有些地方guilded drive也被墙了(悲🤔

现在这玩意几乎唯一的缺点是,考虑到它只能放wp-content里面,它的完整url实在是太寄吧长了(恼🤔也许可以使用某申必url短链接来规避,但我反正懒得这么搞🤔另外,它好像缺乏转发range请求头的功能,至少我写的几个测试请求包,源站能返回正确的字节范围,但pikapod中转貌似不行(悲🤔

thonkeqing.22.10.26

昨天到的0034在一晚上的迫真坏道检查后一个坏道都没检出来,可以用了(确信🤔至此它便乘了我至少有据可查的第12块st6000nm系列硬盘(确信🤔理论上来说我现在差不多该彻底抛弃st6000nm了,但这几天实在是找不到什么600块钱12TB的车,那就只能接着用st6000nm了(半恼🤔也许现在什么st8000nm也降到了400块钱以下,但它还是没有0034便宜,0034哪怕245算也相当于固态界的pe4010,当然在它涨价之前🤔

那么我便可以着手将那两块3TB垃圾盘上的非u2内容复制上去了🤔大致看了眼,一块盘上只有不到30GB的玩意,可以直接一个rar打包vans(确信🤔另外一块盘是大头,占空间1.5TB,其中三分之一是游戏备份档,一看就是从砂糖盘里复制过去的,难怪砂糖盘里没有任何cuties impact之外的游戏备份档,原来我全放这儿了(意味深🤔

剩下三分之二是各种备份档,我估计度盘上面肯定有存档,尽管现在度盘解析脚本是用不了了,但我哪天实在是闲得蛋疼了大不了再从度盘下,然后重新上传🤔

接下来有114514种复制文件的方法,考虑到我目前有一块可用空间超过500GB的pe4010,最简单的方案就是对整个文件夹跑rar复制函数,它会将里面的东西一个一个一个一个打包到临时rar文件再解压啊啊啊啊啊🤔它里面的子文件夹最大的也就是400GB,应该能随便对付(确信🤔

这大概也是我第一次将这个固态直接插主板pcie插槽上🤔所以我顺便测了一张as图:

看起来效果还不错,也许我可以考虑再买一张pcie转usb3 gen2卡了,不太清楚那个什么rtl9210b跑gen2还会和gen1一样稳吗🤔

bruhfei

话说这破3TB硬盘怎么那么慢,才100MB/s,梦回114514年前了(全恼🤔这也就是为什么我需要将它们挪到0034上,并将它们扔进柜子里,从而腾出两个硬盘位(恼🤔

既然我有那么一段时间没法impact cuties了,干脆就来测试前几天写的脚本好了🤔我应该已经加上了time语句,到时候可以直观地观察到处理一个8GB文件每一步需要多少时间(确信🤔

AYAYA

onedrive转discord drive和guilded drive脚本基本上测试顺利,可以大规模跑了(确信🤔一小时大概能处理完成十个甚至⑨个8GB的文件🤔现在没有搞定的东西是将文件的大小也打到guilded drive的输出上,但也许我也没必要在guilded脚本里做,比如我的discord drive输出里面就包括文件大小,到时候直接替换到guilded drive对应行也许就vans了(确信🤔

接下来也许可以考虑写一下onedrive转度盘(确信🤔或者我一直想整的一个烂活:用cloudflare worker将任何http直链文件重新上传到guilded上面🤔

url2guilded

这玩意我参照了114514种脚本,甚至还参照bash脚本手动构造过form(恼🤔

但手动构造form并没法解决上传二进制文件的问题,毕竟js可不像bash一样可以混合字符串和二进制文件对象🤔所以,最后我发现这玩意其实和我之前写的浏览器上传脚本最接近,所以最后的成品在它的基础上改出来了(确信🤔

当然和浏览器的js不同,cloudflare worker的js没法从fetch下来的文件里获取文件名参数,至于content disposition响应头,我发现很多链接根本就没有这个头(恼🤔所以我最后改成了文件名从链接里面提取,我假定了这玩意的输入是直链,或者不管它跳转成了什么玩意(点名oneindex),至少看上去是直链🤔

接下来我发现了一件,不对,两件极其生草的事情:首先guilded的后端居然也是用扩展名来判断文件类型的,而非content-type🤔这也就意味着我浏览器上传guilded的脚本真的可以完全照搬到cloudflare worker上面(确信🤔

但content-type仍然不能乱设,不然的话,文件是可以转存但再次下载的时候会出一些问题🤔比如转存onedrive的迫真直链,它扩展名是对的(比如flac)但content-type有问题,导致上传后的文件尽管扩展名也是对的,但就是没法在线播放(悲🤔curl -I可以看到重新上传后的guilded drive文件,它的content type也跟着乱套了(恼🤔

我估摸着得添加一个扩展名和content-type的对应关系啥的,强行规定content-type,这样它应该就可以正常转存onedrive的迫真直链了(确信🤔至少我原来的浏览器js里上传guilded上传列表之外的文件时,就强行设置了content-type为text/plain(确信🤔

另外一件生草的事情是guilded这几天突然开启了content-disposition响应头,直接橄榄了我的guilded drive下载脚本,因为我每个上传的分片文件都是同一个随便填的名字(半恼🤔看来,现在filename字段变得有意义了,我恐怕得在我的guilded上传脚本,和这个cloudflare workers脚本里设置好文件名了,比如上面我们就从链接里提取出了文件名,然后用在上面(确信🤔

无论如何,最后我还是撸出来了,尽管它还是有很多缺点(比如onedrive迫真直链方面🤔https://url2guilded.wiebitte.workers.dev/,或者其barbruh形式https://u2g.barbruh.lol/,请(吴慈悲🤔

thonk.22.10.23

在1282.5分钟后,这一坨740.23GB的8GB包也上传了上去,平均速度9.85MB/s🤔这次它应该没超过度盘上传,因为我感觉它某些时候就没跑满速度,再说了它不是还重试了三个文件吗(恼🤔

但重试那三个文件的时候,它并行上传只有3,却基本上占满了带宽🤔这可真有意思,所以那两个参数到底该怎么设,我再次蒙在onedrive的反人类api里(🤔

另外最近我有想法再添置一块6TB硬盘,并买两到三个硬盘保护壳将某些容量用光的旧硬盘装里面然后扔进柜子里存着🤔

现在nm0034已经到了210块钱,我完全可以随便买一块玩玩,或者先拿它将那两块3TB硬盘合并了再说(恼🤔而nm0095也只要300左右,看来这一系列sas硬盘已经便乘了垃圾盘级别的玩意(确信🤔

硬盘保护壳还是我最喜欢用的phx35,10块钱一个,我寻思futaba盘和另外一块12TB硬盘用完之后基本上没什么可能挪动了,所以用phx35装它们没毛病,应该用不上什么phf(确信🤔

wiebitte

草,那个卖210的只打包卖,不卖单个硬盘(全恼🤔上某宝找了一个245的,这次貌似可以买了,除了那个卖家居然给我打过来电话问我是否知道nm0034是服务器硬盘🤔开什么玩笑,我现在已经用了应该是超过15块nm0034了,我从它仍然要卖六七百的18年末一直用到今天,这狗逼玩意需要什么阵列卡乃至它的读写性能我都一清二楚(半恼🤔

说不定哪天我可以再买个nm0095?那得等我这块0034用完了再说⑧🤔我现在主要还是不清楚那两块3TB垃圾盘里除了u2冻鳗之外的东西到底有多大,反正记得去年年底做了一番迫真统计,反正比那时某块4TB垃圾盘的剩余空间还是砂糖盘的剩余空间来着大很多🤔

bruhfei.22.10.22

一夜过后,才发现昨天晚上在笔记本上跑rclone的时候,居然忘了将新建的sharepoint site的rclone配置文件参数给复制过去,现在好了,只有原来那个sharepoint site对应的文件夹上传上去了,剩下的都没有上传,基本上空置了4个小时(全恼🤔

好在它们上传得挺快的,255分钟上传了161.36GB东西,平均下来应该是10.80MB/s,与此同时度盘用了264.5分钟,它居然超过了度盘,不错🤔看来在我一顿迫真调参后,它被优化得不错,而度盘上传从某种程度上说还受限于将文件挪到内存盘这个无法忽略不计的overhead(悲🤔

其实昨天晚上上传另外一坨文件的时候,临时决定还是塞满sharepoint site为好,所以最后没有把所有东西都上传到新sharepoint site里面,而是把一个文件夹塞进了旧的里面,剩下的都塞进新的,甚至以后如果新生成了什么东西也先塞进那个里面,然后再塞进第三个site(我一晚上创建了6个🤔当然我极其尴尬地发现这些剩余的东西也比pe4010的可用空间大100GB左右,所以我这么做也可以实现上传完旧sharepoint site之后直接删掉那个161GB的文件夹,然后将最后100GB东西复制进去,接下来可以一条命令撸到底(确信🤔

为了实现这个目标,我写了一个临时函数,将两条rclone命令加了进去,然后对这个函数进行计时🤔当然每条rclone也可以设置计时,但我原计划是在第二个rclone上传的间隙,停止整个函数的运行,然后做删文件并复制新文件的事情,然后继续跑这个函数🤔现在看来,我不需要这么做了,直接跑第二条rclone就vans了🤔

barbruh

上传过程中居然出现了三次错误,而且我以前从来没见过这种错误:它提示文件在上传的过程中被修改过,所以取消了上传🤔

这个可能有两种意思,一种意思是源文件被修改过,这个很明显不大可能发生,毕竟我只是挂那儿上传,而非对其进行写入,而且哪怕这个固态真的中途出了点什么申必故障,它应该也不会被rclone感知到,比如修改日期发生了变化🤔以我面对故障固态的迫真经验,它什么metadata都不会变,只不过文件中间的一部分便乘了全0(确信🤔

另外一种意思是指onedrive上面的文件分片被修改过,至少我在网上查到的几例是这样,它们有rclone上传的,也有直接操作graph api上传的,反正解决方案全都是重试一遍就vans了🤔

那好,我就重试一遍,或者说我也不用手动重试,rclone上传完别的文件后会自动重试一遍出错的文件,并再次检查下别的文件(确信🤔但它上传完成后我还会再检查一遍,并保存下检查记录🤔

反正无论如何我应该能保证它全传了上去(确信🤔

thonk

现在有个问题,假设pe4010有可能出现故障,我如何规避它?🤔

一种方案是将8GB包复制到pe4010上时,再复制一份副本到我认为可靠的存储媒体上,比如那些2.5寸sas盘,然后在那些盘上跑checksum🤔至于在线文件的checksum,至少我的discord drive脚本会计算它的sha512,并以这个值作为分片文件的文件名,所以应该是比较好查的(确信🤔

还有一种方案,直接弃用pe4010,然后用一块1TB左右的2.5寸硬盘来上传🤔当然机械硬盘多线程上传其实效果不是很好,而且还有一个问题,那是台笔记本,它可能会出现供电问题🤔便宜而且性能好的2.5寸sas肯定用不了,别的2.5寸机械硬盘性能都不怎么样(恼🤔

thonkdrive test.22.10.21

这次onedrive上传的试验非常顺利,尽管中途换了一次机子(由于笔记本要拿出去用),我还是在1342分钟完成了693.37GB文件的上传🤔为什么不是800GB,可能pe4010上面放的koitatu sunshine我暂时还不想删了🤔

这么算下来平均速度大概是8.82MB/s,我查下那些文件夹的度盘上传记录,,,1140.5分钟,看来比度盘居然只多出了201.5分钟,也就是三个多小时,或者说17.6%🤔考虑到上传onedrive之后比度盘多出114514倍的好处,这点代价还真不算什么(迫真🤔

而我比较关心的功耗方面,不连parsec的情况下基本上在32W左右,连上parsec也不会超过50W,反正比x79省电多了就是了(确信🤔再说了,除了输命令和偶尔查看进度之外,我也不会闲得蛋疼连parsec,所以功耗就按照32W算得了(半恼🤔

thonk

目前看来,onedrive上传能够调的参数也只有两个,一个是同时上传文件的数量,另外一个是分片大小🤔它基本上可以对应上pcs-go的线程数和分片大小这两个参数(确信🤔

那么调参也许可以参照pcs-go,设置16个或者32个文件同时上传,然后分片调小一点(迫真🤔但最后我没这么搞,我还是按照onedrive的习惯撸了10个文件和80MB分片🤔

它这玩意的速度曲线基本上在分片上传即将完成和下一个分片开始上传之间会有一个肉眼可见的波谷,导致其并不像pcs-go一样能绝对用完所有上传带宽,当然这玩意在guilded上传脚本和某种类型的guilded多线程下载脚本里也能观测到🤔通过调高分片大小和同时上传的文件数,也许可以降低波谷出现的次数(确信🤔但同时上传的文件数也不能太多了,我现在设置了10个文件,每个文件已经需要两小时才能完成上传了,考虑到它没有文件内的断点续传功能,我可能得每两小时才有一次挪机器的机会(半恼🤔

但无论如何,我算是完成了一次上传,以后再做这样的上传时,至少我有点迫真经验了🤔

thonkeqing

除此之外我还撸了一个3块钱12GB(永久流量)的所谓高级梯子,用来跑parsec🤔笔记本肯定还是该用什么用什么,毕竟我可以随便换节点,但家里的梯子我在外面没法随便换,所以只能用一个绝对稳定的(恼🤔

thonkdrive.22.10.20

在我114514秒的迫真尝试之后,度盘解析脚本可以说是正式寄了(悲🤔

既然如此,我那边积压了1.5TB左右的8GB包恐怕得换种方式上传(到discord drive)了🤔比如,先上传到onedrive上?🤔

那么我前几个月买的超大号pe4010固态u盘就可以用上了🤔至少目前我可以先把那几块2.5寸sas硬盘上的玩意复制到pe4010里,然后插某台笔记本上,直接一句rclone,vans🤔

到时候就相当于这些文件已经有了一份onedrive在线副本,接下来当然是将其下载到vps上或者github actions机子上,再上传到剩下几个drive(确信🤔

thonkeqing

现在看来,不仅这些文件可以这么处理,以后再产生新的8GB压缩包文件都可以这么处理(确信🤔

毕竟我现在的迫真存储降级就是要将8GB包上传到尽可能多的在线存储上,而我肯定不会将它们一个一个一个一个都从本地上传一遍啊啊啊啊啊,肯定是先上传到某一个在线存储里,然后再从这个在线存储下载到vps或者github actions机子上,再重新上传到别处🤔

只不过由于度盘解析脚本彻底完蛋,度盘已经没法继续作为这些文件在线上的第一站(迫真)存在了,所以现在这件事得onedrive去干(确信🤔

从某种程度上来说,onedrive由于没法多线程上传,它的上传api限定了只能一个一个一个一个分片依次上传啊啊啊啊啊,所以哪怕用vps上传,它的上传速度也慢到难以忍受(恼🤔然而如果从本地开始上传onedrive的话,它的上传速度(可能存在的)上限又比本地快,而且本地可以设置4个乃至8个文件同时上传,能随便用完上传带宽(确信🤔

而且onedrive上传搞起来比度盘上传很明显方便不少,用不着什么定制脚本先将rar复制到内存盘再去上传,直接一条rclone的事情,十个甚至⑨个小时之后,那些文件就会出现在onedrive上(确信🤔

那么既然现在开始直接上传了,很明显将这些8GB包放置在机械硬盘里面不再是什么好主意,再说了,2.5寸sas硬盘只能用我那台x79台式机上传,那玩意功耗还是太大了,最少也得有个100W(恼🤔相比之下,我要是把文件放进pe4010里然后插笔记本上传onedrive,最多也就50W,甚至有可能只用掉30W,耗电直接砍掉一半(确信🤔

更进一步,如果我要把8GB包放pe4010里上传,以后甚至都用不着本地的两块固态暂存8GB包,在制作它们的时候就直接写入到pe4010里(确信🤔当然也许我也用不着这么做,反正原来的流程里占时间大头的也是原文件写入到另外一块机械硬盘,而非8GB包写入到pe4010🤔我到时候再看用哪种方式更方便些🤔

那么非常有可能以后保存数据的流程是每次备份数据的时候,将数据的量控制到900GB甚至800GB左右,写入pe4010里面,然后在onedrive上新建一个sharepoint site放置这块固态里面的所有内容,不多也不少(确信🤔再给它整一个oneindex,像度盘解析脚本一样生成下载onedrive的aria2c命令文件,然后扔进github actions里上传,可以使用原来的度盘转discord drive脚本(只不过链接是oneindex链接),也可以到时候撸一个新脚本🤔以这种方式,我基本上可以最大限度地减少人工干预环节(确信🤔

现在基本上只剩一个问题了:github actions机子上传度盘的速度如何?我可能需要评估下这个(恼🤔如果上传度盘快的话我可以用github actions上传度盘,不然恐怕我只能本地再上传一遍了(全恼🤔

barbruh.22.10.14

难以想象我又一次接近deadline impact了(恼🤔到今天三个小号的蒙德版本活动才打完一个🤔

但从乐观(迫真)的角度来看,打完一个号的版本活动总共需要花的时间居然比我预期的要少很多,那三个又臭又长的主线只需要完成第一个就可以了,这部分大概需要花两小时🤔之后就可以玩各种各样的挑战任务了,这部分全打完应该只需要最多四小时,运气好点只需要三小时半,反正我花了三个小时基本上打得只剩下连续打五处怪这种玩意,中间的路途会生成一大堆气流和推力环(忘了叫什么了),去年的雪山活动里也出现过,应该半小时就能搞定(确信🤔

这周貌似还剩三天时间,剩下两个号应该能一天搞完一个,至于最后一天,也许可以用来将剩下两个主线也撸完🤔但我记得这两个主线不玩它们也能撸满武器精炼材料,而且貌似也没有送任何绝版装饰或者诸如此类的东西🤔所以它们的优先级也许可以调低一点,实在是没时间完成了也没关系(确信🤔

thonk

今天那四个esp-01烧录器也到了,随便取出一个用,这次它能烧录esp-01s了(确信🤔那接下来就不用多说了,将前几天写好的程序灌进去,再插上温湿度传感器模组,接好供电,另外一个discord频道也出现了消息🤔

但貌似温湿度并没有显示出来🤔原来我搞错了io接口的编号,这部分改完后终于出现了温湿度数值,只不过它们和我之前那个discord温湿度计的值相差很大🤔我估计dht11作为传感器搞不好真的只能图一乐,真测温湿度还得看aht20(半恼🤔

接下来一件非常生草的事情发生了,我调试的时候将其再次插入了之前那个不能烧录的无按键烧录器上,它居然能接收到esp-01s串口发送的信息,这可能说明它不能用来烧录的原因是它从设计上就不能将esp-01s切换成烧录模式,或者它切换的功能出了故障🤔

这件事就算彻底搞完了,接下来我又买了两个esp8266玩具,反正这种东西一个才不到10块钱,就当玩具买了(迫真🤔一个什么机智云,貌似和esp-01s一样都是一家叫做安信可的厂子出的,主打低代码(大嘘)编程,不需要刷固件,原厂固件只需要写点逻辑代码就能在手机上遥控智能家居啥的,可以认为是个定制版米家(迫真🤔但从硬件来说,它最大的亮点是esp板和usb转ttl板分离,编程的时候把它们组合成一个板子,跑的时候只需要给esp板插上供电就vans了(确信🤔它还集成一个rgb led,和一个红外发射器,改造成远程空调遥控器的可能性微存?反正肯定比米家的那个蓝牙红外网关便宜得多就是了(确信🤔

我听说安信可原装的esp-01s貌似也能使用什么低代码固件,但我估计这些玩具拿到手不都得先刷个micropython,或者直接上arduino ide?🤔

除此之外我还买了个什么d1 uno r3,就是上次说的那个外观模仿arduino uno r3的玩意🤔不清楚买这个图啥,可能是图它有一个dc输入,这样也许我可以把之前写的discord温湿度计移植到上面,然后随便找个12V电源插上去,免得它占用usb口了🤔当然也有可能我有别的迫真智能家居项目,比如在阳台乃至室外也设置一个温湿度监测站🤔

话说真arduino现在还要三四十块钱,和我上大学的时候一样贵🤔当然说贵也不至于,那时更贵的有gpio功能的单片机是树莓派🤔不清楚那时有没有esp8266这种玩意,但当它出了的时候,不仅同样外观的开发板价格是arduino的三分之一,它还有远超atmega芯片的处理速度、ram和存储,甚至可以实现一部分树莓派的功能,比如几乎所有需要联网的任务🤔怎么说呢,国产芯片就是牛批(吴慈悲🤔

另外一方面,esp8266也是米家几乎所有迫真智能家居产品的核心,也是为什么那些能联网远程遥控的电饭锅啥的卖那么便宜,没有esp8266我估计就没有什么米家(确信🤔

当然,还是那句话,模拟usb hid的功能除外,但能模拟usb hid的arduino再怎么说也是装有atmega32u4的arduino leonardo,而非装有atmega328p的arduino uno,后者和esp8266一样仍然需要串口转ttl,所以说esp8266能完全替代arduino uno r3一点问题都没有(迫真🤔话说什么时候模拟usb hid的微控制器也来一个国产替代罢,我已经等不及了(大嘘🤔其实luat的air系列板子貌似就支持模拟usb hid,但目前支持的功能比较少,只支持模拟键盘输入可见字符,反正amber速射肯定是不行了(恼🤔

thonk2

刚又迫真研究了下,现在使用atmega32u4的开发板,最便宜的到了24.20,反正比我去年买的时候价格便宜了不少,那时至少得30🤔它还有一个更小的usb-a板子,可以不用数据线直接插进机子里的那种,牌子貌似叫cjmcu,不带tf卡槽的版本34,带tf卡槽的版本45🤔这些玩意我就不买了,它们还是比esp8266玩具贵多了(大嘘🤔

另外树莓派貌似出了一个叫做rp2040的mcu,定位貌似和atmega32u4差不多,也是usb直连芯片,所以也存在能用来模拟usb的可能性(确信🤔最主要的是它的价格比atmega32u4便宜多了,裸芯片只要5块钱,基本上和什么esp8266、luat air一个价,而做成的开发板好像也只要16还是17来着🤔但它的话问题是没法用arduino ide编程,这可能会成为一个问题(半恼🤔

bruhfei.22.10.12

现在我前几天买的另外一批单片机玩意也到了,这次到了一个s2 mini,也就是那个最便宜的esp32板子,一些配件,还有一个玩具一般的esp-01s和esp-01s烧录器还是啥玩意来着🤔

极其生草的是esp-01s居然连一个单独的静电袋子都没有,导致我还以为他们没有给我发,直到我开始收拾包装时才发现它夹在里面(恼🤔接下来离奇的事情发生了,我都写好了程序,然后照常插上去刷机了,结果那玩意死活连接超时,而且用了114514个烧录程序,都连接超时🤔

这就有意思了,是烧录器坏了,还是esp-01s坏了?在它里面没有写入什么正经程序的情况下我完全无法确定,所以最后只有一个结论:两个玩意我都得重新买一遍(全恼🤔

这次我应该不会买什么两块多钱的无按键ch340烧录器了,那么还有什么esp-01烧录器可选?我目前看到的有四种型号,电路板好像都一毛一样,带有一个8pin插槽,一个引出来的8pin用来插跳线,还有一个reset按键,根据其usb转串口芯片不同,分为cp2104、cp2102、ch9012以及ch340四种🤔其中cp2104被称为所谓的原版,别的是不是在它的基础上换掉了usb转串口芯片?🤔价格方面,cp2104版是14.5,cp2012版是8.5,ch9012版6.7,而ch340版最便宜,只要4.6🤔反正我在两家店把四个芯片版本的烧录器都买了一遍,顺便还买了两个新的esp-01s,我就不信这次它还不能跑起来(🤔

我估摸着这些带有reset按键的版本也许可以用来随便刷机,而我现在有的无按键版本可能需要短接几条跳线啥的🤔我懒得折腾了,等那些玩意都到了再说🤔

thonkeqing

在寻求最便宜(大嘘)的esp-01烧录器还有usb转ttl的过程中,我发现了一大堆东西免邮费的店铺🤔某宝的价格排序功能向来没什么卵用,但在我找些单片机玩意的时候由于某种申必原因居然又能照常排序了,而且免邮的被排在了前面🤔然后发现什么d1 mini什么s2 mini,甚至包括我以前用过的nodemcu,全都是一个叫做wemos的厂子做的🤔不太清楚wemos到底是个品牌,还是个开源硬件项目,反正搜wemos就能出来什么d1 mini还是d1来着🤔而且更有意思的是,有时候它也会用到一个叫做lolin的品牌名,但基本上wemos和lolin是一个意思,甚至在pcb板上也一会儿印着wemos一会儿印着lolin(迫真🤔

wemos现在有一个官网,但lolin没有,到现在我甚至查不到它背后的实体,到底是哪国公司,实在是太申必了🤔

无论如何,它目前在卖的产品倒是可以查到的,都有下面几个:

  • d1系列:
    • d1 uno r3,提供了一个dc输入,layout迫真模仿arduino uno,据说可以和arduino uno外设实现114514%兼容(当然模拟usb hid它是做不到的,因为esp系列的usb都是usb转串口,而非像arduino一样主控本身提供usb功能),本质上是esp-12外加pcb,价格大概在12左右
    • d1 uno r32,基本上相当于将上面那个的esp8266模块换成了esp32模块,18
    • d1还有一个18650电池款,顾名思义可以用18650供电(也许还能充电),21.6
    • 它也有esp32模块版,价格达到了离谱的34.7
    • d1 esp32,看上去和下面的d32使用了同款esp32模块,但layout完全不一样,而且官网没有这玩意,但它既然叫做d1-esp32了我就暂且先放这里,23.3
  • d1 mini系列:
    • d1 mini v1,本质上是esp-12外加pcb,8.75
    • d1 mini v3,esp8266ex芯片裸露放置,目前我的discord温湿度计就跑在它上面,9.3
    • 另外nodemcu系列的esp8266板子也和wemos有关,简直就像d1 mini v3换了一个layout,价格也是9.3,它还有一个esp32版,13.3
    • d1 mini v4,改成了typec,而且加上了一个i2c接口,也许可以将aht20直接用i2c线接上去,9.6
    • d1 mini pro,接口非常全,既有i2c也有电池接口,有16MB的rom可选,而且除了内置天线外还可以外接ipex天线,然后再去转sma,21
    • d1 mini lite,使用了esp8295(esp8266+板载1MB rom),基本上没什么人买,13(还要加运费
  • d32系列:使用了esp32模块的板子,甚至有16MB rom版本,国内无货(恼
  • s2系列:使用了ESP32-S2FN4R2,顺便一提这个版本的esp32是没有蓝牙的
    • s2 mini,基本上可以视为d1 mini v4的esp32版,引出的接口比d1 mini多出了一排,没有单独的i2c接口,但多出了一个io按键,什么价格都有,甚至都有一个11.45的,你是一个、一个一个一个一个esp32啊啊啊啊啊(错乱
    • s2 pico,带一个oled屏幕外加i2c,价格非常离谱,至少40(仍然比m5stick便宜
  • c3系列:使用了ESP32-C3FH4,板载一个rgb灯,国内基本上买不到,其实最便宜的esp32-c3可以去买luat的,但有人反映那玩意没法上arduino ide它只有所谓的简约版不能用arduino ide,因为它砍掉了usb转ttl,那么问题来了,在没有usb转ttl的情况下它是用什么申必方式往里面烧录程序的?esp32-c3支持模拟usb hid的可能性微存?(大嘘
  • s3系列:使用了ESP32-S3-WROOM-1,有两个typec接口,国内尽管买不到这个牌子的,但貌似可以买到和它layout一毛一样的玩意,价格在45到59之间

wiebitte

https://www.esp32.com/viewtopic.php?t=24092

什么?esp-s2和esp-s3可以模拟usb hid(如果它们的开发板没有用usb转ttl来实现usb的话,很不幸的是至少我有的esp32板子都不是这样),而esp-c3的usb功能只能用来烧录程序和调试?wiebitte?🤔

但至少esp32-c3同时支持用串口和usb烧录程序,所以这样也就解释了luat的esp32-c3板子为什么在没有usb转ttl的情况下仍然能烧录程序了(确信🤔生草的是它的usb相关功能用的是gpio18和gpio1⑨,所以我估计在那个板子上那两个gpio要么直接连着板载usb接口,要么在连接板载usb接口的时候也引出了,但至少在调试时是没法用来处理io的🤔

所以到目前用esp32板子(无论是哪种版本,c3、s2还是更贵的s3)来模拟usb hid或者任何hid是别想了(悲🤔除非掏出两个gpio口来模拟一整套usb协议(可能还要涉及一些焊接啊,电路啊等玩意),但这样的话其实esp8266就能搞定🤔当然还有一种方案是用esp32(s2之外型号)的蓝牙功能来模拟蓝牙键盘鼠标,我在m5stick上撸了一个模拟键盘的,但出于某种申必原因它不支持同时模拟鼠标和键盘,而且还存在不可忽略的丢键现象,很明显不是什么适合用来搞速射amber的选项(恼🤔再说了,arduino ide编译和烧录esp系列固件的速度实在是太寄吧慢,而编译和烧录atmega32u4固件的速度就快多了,所以最后我还是用atmega32u4搞了速射amber🤔

espAYAYA.22.10.10

今天两个版本的d1 mini,还有aht20温湿度传感器都到了🤔我可以先拿v3随便写点玩意,比如arduino ide里面自带一个http示例程序,我可以先往discord频道里发点消息🤔

由于显而易见的原因,在esp8266里使用https是非常困难的,要么得把目标网站的证书指纹提取出来硬编码进代码,要么得套用什么什么框架,要么直接使用setInsecure()不安全地连接🤔我肯定选用了最后一个,毕竟我只是要发送一些温湿度数据上去,甚至都不指望它回复什么东西🤔

好,那我就用之前在cloudflare workers上设置的discord反向代理,几秒钟后discord聊天室里出现了一条新消息,不错,这不是从我的某台电脑或者手机发出来的,而是从一块可能只有10块甚至⑨块钱的esp8266儿童玩具发出来的(确信🤔

接下来我需要将aht20和esp8266相连,并使用某种代码从里面读数据🤔它的示例代码并没有地方设置针脚,所以我估计只能按照它的默认针脚连了(悲🤔而且理论上来说我买的玩意可以同时测温湿度和气压,但我只找到读温湿度的代码,那就先跑它那个示例,不错,温湿度都从串口输出里读出了🤔

接下来我只需要将这两个代码缝合在一起了(确信🤔现在有一个问题,它那个代码里字符串和温湿度是陆续打印到串口输出里,但我要是想把它们post到discord webhook上的话,我得将其合并成一个字符串,此时它就开始报类型错误了,字符串和浮点数没法合并(恼🤔

这玩意貌似是c还是c++来着,c的话使用sprintf构造字符串,结果它的http.post()里面接受的是一个String对象,不是char*(全恼🤔更离谱的是它这里用的是一个叫做String的应该是自创的字符串对象,S是大写,不是std::string,要是自作主张地使用std字符串相关函数,肯定得吃一个类型转换不动的错误(恼🤔比如浮点数转字符串部分,std::tostring肯定是用不了的,极其生草的是它居然提供了一个叫做String(114.514, 3)的函数来将传感器读出来的浮点数转换成String对象,就にま离谱(半恼🤔

反正无论如何,现在discord聊天室里终于打出了当前的温湿度,至此discord温湿度计正式搞完了,拔下来随便找个充电器插上,我就可以将其放什么鬼地方24小时监测室温了(确信🤔discord聊天室刚好可以用来做数据记录,时间戳都能记录下来,哪天我要是想画曲线图啥的,直接将discord频道的内容拖下来做处理就vans了(确信🤔

bruh

但现在这玩意有一个非常严重的问题,每次http请求的时间实在是太たま长了(全恼🤔具体来说,我给那段程序加了一个新功能,它开始发送http请求之前开始亮灯,发送完http请求之后停止亮灯,这样理论上来说每次发送http请求时会闪烁一下(确信🤔但我观察到的是,每次亮灯居然长达七八秒,哪怕我设置的采样和发送请求间隔是两秒,discord那边也得十多秒才能收到一条消息(恼🤔

我无端猜测导致它发送http请求时间如此之长的因素,无非两点:

  • 本来往cloudflare的服务器发送请求,然后再由cloudflare workers处理下发往discord,再接收返回,就是个非常耗时的过程

  • https带来了额外开销

前者基本上被否定了,因为我本机不上梯子发送一个https post请求,也就用了平均1.3s,远远低于esp8266的表现🤔如果是http的话只有0.6s,这两个时间都不算很长(迫真🤔

所以我无端猜测绝对是https拖了后腿🤔具体来说,一次非保持连接的https请求对应的tcp请求貌似是http请求的三倍啊三倍左右,相比之下https带来的额外计算开销反而可以忽略不计(迫真🤔

既然如此,那么cloudflare可以改成支持http,换句话说把什么always https给关了,这样以http方式向cloudflare发送请求时不会302跳转https了(确信🤔

接下来esp8266上的程序也得改,除了网址去掉s外,创建http客户端对象啥的需要用另外一个类,不然的话http请求会发不出去(恼🤔我无端猜测,这两个类发出的http请求搞不好连端口号都不一样,所以不能混用🤔

改完后它每次亮灯基本上不超过一秒,尽管仍然比较长,但至少可以忍受了(迫真🤔现在,也许我设置的采样和发送间隔这个数字变得真正有意义起来,我可以设置一个比如五秒或者11.4514秒的时间,然后扔一边去了(确信🤔

espthonk.22.10.08

凌晨几点突然停电了,出门一看从楼道灯到电梯到电表,所有东西都没电(全恼🤔看来只能先去睡觉了🤔

一觉起来恢复了供电,客厅灯被开到了最大功率,大概是这个原因导致我醒来的(迫真🤔既然如此,那就重新开始压缩截图⑧🤔

神奇的是哪怕路由器啥的重启了一遍,我的破宽带仍然可以达到接近400Mbps的下载速度,它不是说只有⑨月份有提速,这个月就要恢复原来的速度吗,现在应该早就过10月账单日了🤔无论如何,我应该可以再爽几天(确信🤔

thonkeqing

接下来突然想给房间里装个智能(迫真)温湿度计啥的🤔而且作为迫真智能家居的一部分,它当然得实现记录温湿度的功能,所以恐怕我得自己写一个了(恼🤔

这玩意还是比较简单(迫真)的,买个什么dht11/dht22温湿度传感器,然后再买个esp8266,随便找个固件刷上去(比如micropython,并将其设置成局域网设备),设置好定时发送的api接口(比如discord webhook url),vans🤔而且能买到的dht11传感器还做成了适配esp-01的形状,esp-01用的串口座子都安上去了,直接插上esp-01即可(确信🤔它唯一的缺点是获取的温湿度数据有两秒的延迟,但这没什么大问题(迫真🤔

我听说还有一种更先进的温湿度传感器,叫做aht20,它能实时获取数据,而且用的是i2c接口,换句话说只占用一个io(确信🤔但我没找到适配esp-01的型号,意味着想驱动它就得整一个引出了所有io的esp8266或者esp32开发板🤔

现在这样的板子已经有114514种了,但我想找最便宜的版本🤔8266最便宜的版本仍然是nodemcu v3🤔稍微贵一点的是一个叫做d1 mini的板子,体积比nodemcu小一点,现在有三个版本,v1是焊接了esp8266模块的电路板,v3是将芯片直接放在主板上的版本,v4是v3的typec版(貌似还多了一个电池接口),但现在基本上找不到有货的(恼🤔由于某种申必原因,d1 mini有一大堆外形适配它的配件,从显示屏到tf扩展到锂电池,堪比廉价版m5stack(大嘘🤔

而esp32这边,最便宜的是d1 mini的esp32版本,叫做s2 mini🤔外观和d1 mini基本上完全一样,只不过由于esp32的io比esp8266多,外面引出的io直接便乘了两排,就非常牛批🤔

其实和两年前相比,这些小型玩具价格都没怎么变过,但由于某种申必原因,ttgo和m5stack都涨价了,ttgo带屏幕的esp32我买的时候只要38,现在涨到了70,有的店甚至涨到了100,而m5就更不用说了(恼🤔

barbruh

话说某个既卖d1 mini又卖s2 mini的卖家那里,d1 mini的两个版本都没货(恼🤔所以最后一顿迫真扯皮后,我在这里买了s2 mini和一大堆配件,在另外一个地方买了d1 mini v3🤔某宝买电子产品真寄吧费劲,当然我估计某fisch可能会更费劲🤔

bruhfei

拉寄吧倒⑧,我还是去之前看的那家买了个d1 mini v4,也许我的s2 mini也应该在那家买,这样说不定我就不用像之前那样扯皮了(恼🤔现在看来这就是个不到10块钱的玩具,我懒得关心它要多少邮费,也懒得关心我是不是一不小心把v3和v4都买了一遍🤔反正下次买这种东西之前我还是先问下有没有库存再说(🤔