折腾日记:废物利用改造kindle为天气预报日历

个人博客地址
很早之前购买了kindle用来看电纸书,后面也逐渐吃灰了,尤其当去年kndle电子书店停止服务后,就一直没充过电了,中途有段时间想着,当时买的时候还挺贵,不能这么浪费了,给它充满电后,用数据线接上电脑,发现它竟然无法连接电脑了,哎,真的是鸡肋了,吐槽归吐,一直考虑怎么利用这块墨水屏,于是,想到了用kindle做个天气预报日历。也算是废物利用了
大致思路就是在内网服务器上部署一个静态网页,定时刷新网页上的时间和天气,然后通过kindle内置浏览器访问,需要完成以下几个步骤进行改造

  1. 调整kindle不锁屏
  2. 部署内网服务器静态页面
  3. 调整nginx代理,可以访问到静态页面

调整kindle不锁屏

在百度都是使用~ds指令进行操作,但是在kindle更新系统之后,这个指令已经作废了,
目前,可以成功的方法,只能在kindle接上电脑后,在目录中添加一个TESTD_PREVENT_SCREENSAVER文件,这里就遇到了一个问题,kindle的比较认数据线,家里所有microusb只能充电,无法连接电脑,只能PDD购买一根"原厂数据线"
连上电脑以后,以Mac为例,终端访问到kindle的根目录,新建文件

cd /Volumes/Kindle

touch TESTD_PREVENT_SCREENSAVER

重启kindle后,就实现了默认不锁屏的效果

部署服务

然后要在服务器部署静态页面了,这里是使用了网上的开源方案
https://github.com/0111/Kindle_WeatherCN
他的实现效果是这样的

Pasted image 20240512230140

但是,在部署到服务器之前,需要调整几个地方,一个是config.js 文件

var api_locParams = "Hangzhou";

var api_appId = "******";

api_locParams设置为自己所在城市的拼音,或者设置配置界面的经纬度,同时,调整config.html中默认显示城市

<label>输入城市: <br /><input type="text" name="city" id="city" value="Hangzhou" /></label>

api_appId可以调整为自己申请的openweathermapappId

OpenWeatherMap是一个提供天气数据的开放式API服务。

Pasted image 20240512231000
当然,也可以使用这个作者提供的,但是免费有调用限制,建议还是自己申请一个
除此之外,还有点细节需要调整,比如,我调整index.html的城市名称

city.innerHTML ="Hangzhou" === data.name ?"杭州" : data.name;

当然这些调整都可以在部署服务器后,在/config.html自己设置,这里只是个人习惯,默认设置还是改为自己需要的

Pasted image 20240512232113

然后部署到服务器后,处理好代理后,我尝试访问页面时,电脑可以正常显示,但是kindle浏览器报错,奔溃掉,于是解决一下冲突问题。这个原因应该是我的kindle比较老了,字体不支持
Pasted image 20240512231555

于是删除掉了css/font/DS-DIGIB.ttf目录下的字体,然后,就访问正常了

Pasted image 20240512231714

样式调整

除了字体外,样式也是有点不太对,不同的设备因为分辨率的问题,需要自己进行微调,贴上自己的kindle的样式,在css/kindle.css,进行调整

/* @font-face {
   font-family: electronicFont;
    src: url(./font/DS-DIGIB.ttf)
}*/

html,
body {
    height: 100%;
    margin: 0;
    padding: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0;
}

a {
    color: #000000;
    background: #ffffff;
}

.night a {
    color: #ffffff;
    background: #000000;
}

html.night {
    color: #ffffff;
    background: #000000;
}

#cleaner {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: none;
}

#page {
    position: relative;
    height: 100%;
    overflow: hidden;
}

#city {
    font-size: 50px;
    font-size: 7rem;
    position: absolute;
    top: 1.5%;
    right: 3%;
    text-decoration: none;
    text-align: right;
}

#temp {
    font-size: 200px;
    font-size: 15rem;
    display: inline-block;
    font-weight: bolder;
    text-align: center;
    font-family: electronicFont;
}

.tempWrapper {
    position: absolute;
    right: 3%;
    top: 10%;
}

#lastUpdate {
    position: relative;
    top: 25%;
    left: 0%;
    font-size: 50px;
    font-size: 30rem;
    font-weight: bolder;
    text-align: center;
    font-family: electronicFont;
}

#description {
    position: absolute;
    left: 32%;
    top: 2%;
    font-size: 50px;
    font-size: 7rem;
    font-weight: bolder;
    text-align: left;
}

#icon {
    font-size: 100px;
    font-size: 20rem;
}

#iconWrapper {
    position: absolute;
    left: 3%;
    top: 3%;
}

.forecast {
    position: absolute;
    width: 100%;
    bottom: 10%;
    left: 0;
    border-top: 5px solid black;
    border-bottom: 1px solid black;
    height: 39%;
}

.night .forecast {
    border-color: #ffffff;
}

.col {
    width: 24.5%;
    border-right: 1px solid black;
    float: left;
    text-align: center;
    height: 100%;
    overflow: hidden;
}

.night .col {
    border-color: #ffffff;
}

.col:last-child {
    border-right: none;
}

#date {
    position: absolute;
    bottom: 46%;
    left: 3.3%;
    font-size: 50px;
    font-size: 7rem;

}

#sun {
    position: absolute;
    bottom: 3%;
    left: 3%;
    font-size: 30px;
    font-size: 4.9rem;
    font-weight: bolder;
}

.forecastIconWrapper {
    position: relative;
    top: 5%;
    left: 5%;
    font-size: 100px;
    font-size: 14.2rem;
}

.colTemp {
    position: relative;
    top: 8%;
    font-size: 50px;
    font-size: 8rem;
    font-weight: bolder;
}

.colTime {
    position: relative;
    font-size: 35px;
    font-size: 5rem;
    margin-top: 5%;
    top: 1%;
}

.colDesc {
    font-size: 20px;
    font-size: 4rem;
    position: relative;
    bottom: -10%;
}

.portrait .col:nth-last-child(2) {
    border-right: none;
}

.portrait .col5 {
    display: none;
}

.landscape #city {
    font-size: 35.4px;
    font-size: 7rem;
}

.landscape #temp {
    font-size: 141.7px;
    font-size: 28rem;
    font-weight: bolder;
    text-align: center;
}

.landscape #lastUpdate {
    font-size: 141.7px;
    font-size: 24rem;
}

.landscape #description {
    font-size: 35.4px;
    font-size: 6rem;
}

.landscape #icon {
    font-size: 100px;
    font-size: 25rem;
}

.landscape #date {
    font-size: 35.4px;
    font-size: 7rem;
}

.landscape #sun {
    font-size: 24px;
    font-size: 4rem;
}

.landscape .forecastIconWrapper {
    font-size: 71.9px;
    font-size: 14.2rem;
}

.landscape .colTemp {
    font-size: 35.9px;
    font-size: 7.1rem;
}

.landscape .colTime {
    font-size: 25.3px;
    font-size: 5rem;
}

.landscape .colDesc {
    font-size: 14.2px;
    font-size: 2.8rem;
}

.landscape .col {
    width: 19.5%;
}

调整nginx代理

这个步骤应该在上传静态文件到服务器后就可以操作了,由于在家是自己建的dns服务器,可以在内网使用二级域名进行访问内网服务器,配置文件中使用了域名代理代替了ip地址,

server
        {
        listen 80;
        server_name weather.home.kura.ren;
        location /{ 
        root    /usr/share/nginx/html/weather;
        index  index.html index.htm;
        } 
    }

后续就可以在浏览器进行访问,这里提一下,docker部署的nginx需要把静态html目录映射到容器,才能正常访问到,不然就会404

Pasted image 20240512233324

后续更新

当这些都处理好,以后,就可以在kindle上查看天气了,电量还是一个问题,目前看需要三天冲一次电,为了一劳永逸,最后在网上购买的无线充电,贴kindle后面,配合无线充电底座充当支架,就既可以解决电量的问题,也可以解决摆放问题
最后贴一张效果图
Pasted image 20240515233703

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调试九法是指通过九种方法来解决Kindle电子书阅读器的故障。以下是这九种方法的详细解释和操作指南: 1. 重启设备:长按Kindle电源键,选择“重新启动”选项,然后等待设备重新启动。 2. 充电并检查电源适配器:使用原装的充电器和USB线将Kindle连接到电源插座,确保连接正常并且充电电压稳定。 3. 清除缓存:进入Kindle设置菜单,选择存储管理,点击“清除缓存”选项,清除临时文件,以释放内存空间。 4. 更新系统:进入Kindle设置菜单,选择“设备选项”或“设备信息”,点击“系统更新”选项,然后按照提示完成系统更新。 5. 过热处理:如果Kindle出现过热现象,暂时停止使用并将其放在通风处自然冷却。 6. 恢复出厂设置:进入Kindle设置菜单,选择“设备选项”或“设备信息”,点击“恢复出厂设置”选项,然后确认重置设备。 7. 检查网络连接:在Kindle设置菜单中,检查网络连接是否正常,如需重新连接网络,请输入正确的Wi-Fi密码。 8. 删除问题书籍:如果某本书导致Kindle崩溃或无法打开,请删除该书籍并重新下载或同步。 9. 联系客服:如果以上方法无法解决问题,可以联系Kindle客服,向他们描述详细的问题,并根据他们的指导进行进一步处理。 通过运用这九种方法,大部分普遍的Kindle故障都可以得到修复。然而,如果问题仍然存在,可能需要考虑更换设备或寻求专业维修。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值