正因是梦,尤需真活。

宿舍自动联网之鸟枪换炮大材小用我乐意之树莓派实现

2021.12.18

自从那块香蕉派烧了之后,-135¥,心痛,但是项目起都起头了,就不得不做下去。 这次使用的是树莓派zerow,自带了WiFi,非常适合本项目。 这一次也算是较为完美的解决了这个问题,到最后我是否会真的去实装这个东西就是另外一回事儿了。

实现原理

关于这个我在上一次的里面有提到过,不过这次使用的是树莓派,鸟枪换炮了属于是。不得不说,一分价钱一分货,用树莓派就是很爽。

新增内容

这次的更新是一次大更新,上次几个问题,换上树莓派后其中中间三个都已经迎刃而解,第五个也是加钱就能完成的事情,钱能解决的事情就不是事情。第一点也是本次的更新重点。

大体思路

在之前的基础上,增加屏幕显示和切换状态,增加到两种联网模式,扫描和定时,分别是每隔几秒检查网络连接和每天指定时间断网联网一次,使用按钮切换状态,并显示在oled屏幕上,同时屏幕上显示些时间什么的,本来还是想显示天气的,但是天气好爬到,显示一个建议的小图标实属不好做,同一种格式的十几种天气图标,实属没搞到也放不下了,最后选择整一个高级钟表。

Web Image

代码实现

实现起来的时候问题并不多,也不是很复杂。当然,因为花的时间不多,水平也比较业余,还有很多可以优化的部分,但暂时没有更新的欲望,也没有优化的想法。等啥时候有心情优化完,再放出来,以免丢人现眼。

Web Image

遇到问题

  1. 首先是屏幕,屏幕实在是太小了,小小一块128*64的屏幕,想放下的东西太多,到最后只能删删减减。
  2. 其次就是驱动的问题,一开始使用的驱动是较老的驱动,导致使用起来问题频出,最后还是换成最新的驱动,在看着官方文档加别人的代码(还有直接复制的官方给的example)才勉勉强强完成。
  3. 还有一点就是多线程,因为其中是靠无限循环实在的核心功能,但在重新联网的过程中时,不能让“高级钟表”停下来等联网到成功,于是新引入了线程,多线程并驾齐驱,但也是第一次使用线程,手法有些拙劣,又巨幅优化空间。
  4. 使用的cookies联网,不具有可复制性,对使用者有一定的门槛需求,可以改成输入账号密码型,并做好个人配置文件以及日志。

总结

其实做到这一步,能不能联网已经不是上面重要的事情了,最重要的是把这口气出了,现在正在补blog的我知道,实际上这个东西根本没有用几天,我就懒得维护了,小毛病不断,现在是2022年的5月,对于当时的很多心路历程,困难啥的我都记不大清了,纯粹是看着代码回忆当时的想法,最重要的还是做个记录,未来慢慢完善补充。

参考链接