这里面,其实重要的是理解计算机网络,两个东西怎么依赖网络连接起来。然后是 这种硬件的开发商,一般会有对应的文档,描述怎么对接的。多看看,然后从网络连接的角度理解下,就好了。
物联网开发需要的技术一:单片机/嵌入式开发
智能硬件,哎,不就是单片机吗?说到底就是一个微控制器,现在出现的智能手表,调光LED灯,蓝牙开锁,WiFi插座等等,说到底不就是单片机开发嘛?单片机,电子和通信专业一般都会教51或AVR、计算机系接触不到。现在流行的Arduino也是单片机开发的一种。
但是要做一款智能硬件,技术上只会单片机编程还是不行的。哎呀嘛什么智能硬件,本质上就是一个电子产品!。所以你要开发一款能拿得出手的智能硬件,电子系统设计必须要会的!
二:网络通信协议
智能硬件与传统的电子产品最大的差别,就是智能硬件连上了网络。要连上网络,就需要用到网络通信模块及学习网络通信协议——TCP/IP。
TCP/IP是一个技术的总称,里面包含两种协议TCP、UDP,位于网络通信分层模型的传输层,同时也是由操作系统管理。而HTTP、DNS、URI等这些技术,属于应用层,位于TCP/UDP之上。同样,最近物联网比较流行的,针对计算能力有限的通讯设备而出的MQTT协议,也属于TCP之上。
为了让电子产品有联网的能力,只要在电路设计上给主控芯片连接一个通信模块,写好收发网络指令的代码,剩下的就是电子产品设计了。
三:服务端开发框架
Client/Server架构,即客户端/服务器架构。智能硬件连上后台服务器后,其就是一个客户端,一个终端。由于单片机中资源受限,实际上是不太可能用HTTP协议的,所以互联网中通用的Web服务器开发并不适合这里。有的厂家会在TCP之上自定义协议,有的就移植别人做好的协议比如MQTT,CoAP等等。
服务端开发就比较复杂了。单片机/嵌入式软件开发还好,只要学习好C语言即可打遍天下无敌手,而服务端开发,用Java呢还是Python还是PHP?反正Java和Python选一个就好了,嵌入式出身的工程师,一般都会学Python。
Python服务器端的开发框架种类繁多,Web开发的有Django、FlaskTornado WebServer,TCP服务器可以用Twisted,等等。MQTT有已经做好的服务器,像这样的服务器不用自己开发,直接部署即可。
解决方案 跟项目优秀 是两码事一个软件核心的是解决方案,企业选择的也是解决方案,当然 java 跟C# 也要看对应的领域
不能用强势的对比弱势的一方 这不公平。
尤其是web方面的社区问题。很多成熟的东西,JAVA直接拿下来用。
而C#却很多没有。你说C#能做吗?当然能做。但是你要知道直接COPY比你自己写是来的多么轻松。
所以这里面有很多因素,比如最直接的就是市场 商业效应。然后滚雪球效应。
比如你去在win上,比如控制器 上位机,那些 C# 就比JAVA多很多,
但是互联网JAVA多很多
原因是 以前java可以到处跨平台,linux免费吧,可以给公司带了很大利益效应吧。尤其是大厂需要定制化的东西。可以自己用手是不是
在客户端因为被标准化了,图形界面统一着 你看C#就多很多。
而国内为什么你看到JAVA多。因为国内出名的公司基本都是互联网,你见过有实体产业的公司吗?基本没有。 因为互联网公司创业成本低的非常可怕,利润高的非常可怕、那么流动的人员也大的可怕,所以你在网上看到的几乎都是互联网的在讨论。
而实体经济 金融 很少有人流动,所以他们几乎讨论声很少。而大多数都是外国成功的解决方案。就更少了
java并没有被吹的多厉害。的确在互联网上个它的社区你必须承认庞大。那么它的语法烂的跟屎一样。为了money还不是一大堆人去继续堆。
c# 哪怕语言设计再好。性能再好。你怎么抗衡社区力量。 你把所有的项目发钱,系统推倒重来吗?不现实的、
所以一门语言它火必定有它的优点。正视语言的优点在那个领域发挥最好才是开发人员所考虑的。
当然我们不排除有些东西是大厂抛的橄榄枝,小厂不好好思考自己的业务,就乱跟风。最后人财两空的也一大把、 这里面有商业占大头。信仰是其次
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)