我的实践经历

realalien

第二章

硬件配置一点都不复杂,用WeMos D1 Mini主板加个温度传感器,设备上的代码( https://github.com/switchdoclabs/lightswarm )稍微修改一下,就可以模拟集群(swarm)效果了。

反而服务器端的软件代码有些烦,不容易重用,组件有些多,介绍得不是很详细。 而且要求熟悉python的UDP编程,python程序要从文件底部向上阅读理解。 我试着理解一下几个服务器的程序,如有错误,请帮忙指正,谢谢!

LightSwarm Raspberry Pi Logger https://github.com/switchdoclabs/LightSwarm_Pi 用途概述:一直轮询网络上收到的UDP数据包,根据命令字符串匹配到对应的指令。书中提到,这段程序是作为(具体的有,更新内存中的数据指令:LIGHT_UPDATE_PACKET;更新记录服务器ip位置的指令,DEFINE_SERVER_LOGGER_PACKET;仅在后台打印输出的指令: RESET_SWARM_PACKET...

显示全文

第二章

硬件配置一点都不复杂,用WeMos D1 Mini主板加个温度传感器,设备上的代码( https://github.com/switchdoclabs/lightswarm )稍微修改一下,就可以模拟集群(swarm)效果了。

反而服务器端的软件代码有些烦,不容易重用,组件有些多,介绍得不是很详细。 而且要求熟悉python的UDP编程,python程序要从文件底部向上阅读理解。 我试着理解一下几个服务器的程序,如有错误,请帮忙指正,谢谢!

LightSwarm Raspberry Pi Logger https://github.com/switchdoclabs/LightSwarm_Pi 用途概述:一直轮询网络上收到的UDP数据包,根据命令字符串匹配到对应的指令。书中提到,这段程序是作为(具体的有,更新内存中的数据指令:LIGHT_UPDATE_PACKET;更新记录服务器ip位置的指令,DEFINE_SERVER_LOGGER_PACKET;仅在后台打印输出的指令: RESET_SWARM_PACKET,CHANGE_TEST_PACKET,RESET_ME_PACKET,DEFINE_SERVER_LOGGER_PACKET,MASTER_CHANGE_PACKET;生成集群状态图的指令LOG_TO_SERVER_PACKET)。

区别:相对于后面介绍的监视工具,这个是简易版的程序,没有主动控制/发送特殊指令的UI组件,主要是记录,打印输出收到的指令(不是输出到文件日志),发送指令让集群设备上的LED周期地显示运行状态/更新服务器ip地址。

Q&A:

Q: LOG_TO_SERVER_PACKET的指令是谁发送的? A:集群设备。在设备代码的loop()中,只要收到“更新服务器IP地址”的指令,确定有效IP地址后,总是要记录到服务器。

Q: processCommand(s)方法体中,“, commands”(带逗号的多参数指令),比如:BLINKLIGHT, RESETSELECTED和SENDSERVER,是从哪里发起的?https://github.com/switchdoclabs/LightSwarm_Pi/blob/master/LightSwarm.py 第79行 A: ??? 书中说到,“当用户操作控制面板RasPi Control Panel,服务器RasPiConnect Server会发送命令到LightSwarm Logger。”,可能意味这那个文件LSCommand.txt是由Server在读写。

http://www.switchdoc.com/wp-content/uploads/2014/07/RasPiConnectTutorial.pdf 中,说明.txt的读写

Q: 章节开头说,设计标准是要能重现集群设备的历史行为("Reproduce archival swarm behavior"),但logger程序中,只有输出状态图像(build web map),没有写数据库,而且LSCommand.txt总是被重。 A:后面一段已说明,这段演示程序中,不记录来自集群设备的消息。开发者可以自己在树莓派上搭建MySQL数据库,来记录分析数据。

RasPiConnectServer https://github.com/milocreek/RasPiConnectServer 用途概述:(暂未阅读源码)运行在树莓派上的,通用的传感器数据读取服务器端程序。 配合苹果商店应用程序RasPiConnect https://itunes.apple.com/cn/app/raspiconnect/id642069959?mt=8 使用。 貌似README中没有说明清楚,各种第三方可以访问的数据接口,貌似目前无法自己定制UI(比如说,做一个基于Android或javascript的客户端工具) 使用手册http://www.milocreek.com/wiki/index.php/RasPiConnectServer

RasPiConnect (Apple Store) https://itunes.apple.com/cn/app/raspiconnect/id642069959?mt=8 用途概述:巨贵的UI控制面板,美国商店中的评价不太好,程序内购内容太多,总共将近50多刀。而且开发者不怎么回应客服要求。 使用手册http://www.milocreek.com/wiki/index.php/RasPiConnectApp 提到的杂志,关于设计:http://www.switchdoc.com/wp-content/uploads/2014/07/RasPiConnectTutorial.pdf-----LightSwarm_RasPiConnect https://github.com/switchdoclabs/LightSwarm_RasPiConnect 用途概述:用于RasPiConnect的配置文件。如果不购买app,这个文件也用不上。

服务器端的架构设计

类似项目MouseAir中,服务器端组件设计,详见:http://www.switchdoc.com/wp-content/uploads/2014/07/RasPiConnectTutorial.pdf

第三章

太阳能供电主板 https://www.amazon.com/Grove-Header-SunAirPlus-Controller-Gathering/dp/B00QW42V1E 吐槽:加运费要400多,美亚的用户评论相当负面。 考虑到第二章卖app,第三章卖主板。这本书让我感觉是在推销产品。

0
0

查看更多豆瓣高分好书

回应(0)

添加回应

推荐Raspberry Pi Iot Projects (1st ed. edition)的豆列

了解更多图书信息

值得一读

    豆瓣
    我们的精神角落
    免费下载 iOS / Android 版客户端
    App 内打开