这个开源项目是做什么的,它解决什么问题?
开始在这篇文章里,试图回答这个问题,但是又发现内容有点多。
我另起了一篇文章来聊这个问题,请看这里:Lithosphere是什么,它解决什么问题?
先简单聊聊Lithosphere是啥,后面我会开专题来详细阐述各个专门的话题。
有没有图和在线Demo,最直观
怎么说呢?
应用系统是比较容易有图的,UI界面,用户功能。
开发框架、开发平台,怎么说呢,不好抓图啊。比如说,Spring Framework,抓几个图来看,这个图怎么抓呢?
我们会用Spring来开发各种应用系统,这些应用系统都会有图。
我以前做的Iot应用项目,当然有图,但是它们不是用Lithosphere做的,那时候还没有Lithosphere呢。
我第一个IoT创业项目是民宿专用智能锁,走到Pre-A轮(这一轮融了1600W),部署了3500个节点。然后,项目失败了。
第二个IoT项目,不是创业项目,上市公司的一个IoT项目,智慧路灯杆。
Lithospere项目里,提供的Demo程序,会有些图。不过Demo程序哈,看上去,比起直接卖给最终用户最终产品,看上去要简陋得多。毕竟,它就是用来做演示用。
我抓两个图贴一下哈,很简陋,莫笑哈!
这个是Lithosphere里的Webcam插件做的例子,实时摄像头监控,手机上远程打开IoT设备上的摄像头查看。
一个有趣的功能,当视频流中出现人脸的时候,视觉识别检查到人脸,就给这个人头上带个帽子。
这个算是AIoT吗?哈哈哈。
请忽略打了马赛克的人脸,看那个帽子就行。
这两张是树莓派接上了拍实时 视频监控的摄像头。
这个是例子程序里,接上了LoRa通讯模块,接上了LED小灯的Arduino硬件板。
这个可以被手机遥控的IoT闪灯设备,在Arduino UNO R3硬件板测试通过。
Arduino UNO R3硬件板有2K SRAM内存,在淘宝上买零售价15块RMB。10元硬件板,Mud IoT通讯C库在这个板子上运行良好,说明Mud通讯库的性能还不错。
关于Demo,这个问题是这样的。
Hello, Lithosphere系列教程中,基本上每个教程,都带有软硬件结合的IoT Demo。
有一个全功能的例子,sand-demo。这个Demo演示了执行器、传感器、LoRa网关、事件上报、远程控制、数据上报、实时视频监控等一堆功能,相较完整一些的例子。
关于在线Demo,这事是这样的。这些Demo里都会有终端和网关硬件板存在,这个没法做成在线Demo啊,在线Demo没有这些硬件的东西,做不了演示啊。
就好比一个在线Demo,用手机来看这个Demo,你说,我没有手机,那肯定演示不了。
缺少了硬件的IoT例子,这个确实不太好弄成在线Demo,现在没有。
现在用C#了,你这个用Java做的,没法搞了。
这个看你想用IoT来做什么了。
如果是项目中要用,用.net来开发,那这个你就去找.net的IoT解决方案呗。
MS提供了Azure IoT云的解决方案,业界应该也有.net的开源解决方案吧,我对.net不熟悉不太了解了。
如果是想来参与开源,学习设计和IoT相关技术,我觉得用什么编程语言无所谓吧。
MPP、插件架构、IoT Component,这些用什么语言来做,区别不大吧,设计上是想通的。
Lithosphere主要是Java、C++和C来开发的。正好我比较熟悉这些开发语言。
Basalt库,Chalk库,完全没有使用第三方依赖库,完全是重头开始写的东西,纯Java代码,没用到什么依赖库。Chalk的插件开发框架,都是我自己重头写的,没有用第三方的东西。Java和C#区别没这么大吧,这些项目,对你应该完全没有障碍啊。
Granite项目,Sand项目,那没办法,我不可能重新造所有的轮子。有用到一些Java的开源库。比如,Spring Framework。Lithosphere提供Spring Framework的无缝集成,没办法,这些东西肯定是要用的。
Mud库,大部分是纯C代码,少量的Arduino适配代码。这和Java和C#都无关。
欢迎参与Lithosphere开源项目哈,如果你是急着找手上项目要用的东西,那Lithosphere就不太适合了。
聊聊大数据技术
我记得应该是2014年做的项目了,到现在也快有10年了。
后来一直没搞大数据了。
怎么说呢,我个人看法是这样的哈。
学习和使用一个技术,其实就是基础技术 + 设计能力(创新思维能力)。
我其实并不是大数据专家,当然,我要负责大数据项目的时候,我肯定得学习大数据技术,我会读书,上网看资料,甚至取读源码。
但我确实不是大数据专家,我的团队里有对大数据技术很熟悉的开发者,何况电信研究院那边合作的团队,还有一堆博士呢。
并不需要我去具体做部署大数据平台、数据库,写大数据程序这些具体工作。
我需要考虑整体架构,需要分析设计问题,和团队成员们一块儿讨论设计,以及解决项目中碰到的一些障碍。
我印象中的大数据,是Map-Reduce,是怎么理解应用,合理的设计算法,让数据能够均匀的Map到各个硬件节点上去,来平衡所有节点算力。
然后,我们需要把Map出去计算的结果,再Reduce合并起来。
是的,我印象中,就是怎么将应用需求,合理的拆分成Map和Reduce,合理平衡的分布到各个节点去做计算,然后再用算法合并结果,得到最后的输出。
如果设计做好了,具体的开发,似乎并不是那么大的问题。部署系统和写代码不就是用大数据的一些基础技术来做吗?
我相信现在大数据技术一定很不一样了,毕竟我们这个行业,技术进步那真是日新月异的啊!
Ok,今天先聊这些呗,希望能跟大家保持交流。特别是做IoT和学习IoT的朋友们哈,希望能和大家多多交流。