教程特点

  • 低难度高广度
  • 先拥有后学习
  • 图片优于文字
  • 重视问题解答
  • 指引补充为主
  • 教程内容开源

 其实这教程难度不高,论深度不过是硬件基础加web开发基础,但一个人全套做下来,学习量以及工作量是极大的,毕竟这能拆成两个勉强混水过关的毕业设计,一个用来参加电子类专业的毕设审评,另一个用来参加计算机类专业的毕设审评。所以这是一个低难度高广度的项目,对扩展视野很有帮助。
 此教程重中之重是 保证新手绝对能跟跑起来 让大伙先看到最终成果,再从起点一步步修改,进入正循环,开始学习对应的所需知识。优先使用图片说明,避免过多文字导致的无聊,降低理解难度。读者遇到问题,可以到交流群里(Q群:638456092)提出问题,群主拒绝私聊回答,为的是让大学共同讨论学习,让大家在问题的讨论中也能从中学习。同时,所有问题解答后都会补充教程,留有FAQ让后来人看到问题的讨论。
 此教程所涉及的知识内容很多,包括前端界面开发、Ardunio硬件、计算机网络、云服务器等等知识,这些知识都分别有各自对应的优秀教程,我一般会作指引大家去学习这些对应的优秀教程与书籍,补充这些教程的不足,而不会重复去教相同的东西。眼前有景道不得,崔颢题诗在上头。 没必要做重复的事。
 教程内容是开源的,可以在Github上下载并自行运行:(博客-github),哪怕我出了什么意外离开人世,这份教程都永远存在,供大家学习。

技术选型

物联网项目
 我们再看看怎么开发,仍然从左向右地看,硬件部分自己买模块自己画PCB板自己焊接各种折腾。通信模块一般就是购买WIFI模块、以太网模块、NB-IOT模块等等。相信左边大家都懂,大家都搞过硬件就不多说了,右边的软件部分就想不通了。数据经过通信模块是怎么传输到服务器里呢?又是怎么从服务器获取数据展现出来?可视化用户界面客户端怎么开发?用户点击客户端怎么才能操作硬件?
 当年我就是怀着这堆疑问边学边做,痛苦地走了不少弯路才搞清这些方向路线问题。我在这里直接解答,好让大家有个方向。首先,每台云服务器都有自己的地址(IP地址),硬件通信以及软件客户端向这个IP地址进行通信,就能传输数据。
 要想折腾物联网,必须要学习计算机网络,TCP/IP协议基础这些知识,只有搞明白才能更好地开发。网络基础知识要先学习,物联网物联网,先要懂网。
 现在到界面,有很多种:PC端桌面应用(VB、C++、C## 结合图形库进行开发)、平板与手机(安卓系统的用JAVA,苹果系统object-c、Swift)、浏览器网页(HTML、CSS、Javascript)。

到底要学什么

 首先,网络基础 知识必须要学。其次到客户端与服务器开发就选择语言的问题了。当年我查遍所有语言并进行对比之后得出结论:JavaScript
 因为实现全栈(web开发专用语,网页被称为前端,服务器应用称为后端,前后端都会开发的被称为全栈)的最低学习成本的语言是 JavaScript,一门语言JavaScript搞定网页,PC端软件,后台服务器,手机APP的开发,基本所有界面客户端都能用JS开发。 不用学PHP,不用学C#,不用学JAVA。人的精力是有限的,切换语言是需要精力的,JavaScript虽然在各场景不是最好的语言,但是对于一个人负责全部来说却是 所需最低精力的!

无所不能的JS

场景 本教程所用语言 其它语言 备注
网页制作 HTML、CSS、JavaScript
PC端桌面应用 HTML、CSS、JavaScript + Electron C## 或 C++ 加图形库
安卓Android HTML、CSS、JavaScript + cordova JAVA加图形库
苹果IOS HTML、CSS、JavaScript + cordova Swift
微信小程序 WXML、WXSS、JavaScript WXML、WXSS与HTML、CSS类似
后端服务器 Nodejs PHP 或 Java等等 Nodejs的语法仍是 JavaScript

 界面开发上,大前端统一江湖就大势所趋 。原本只用于网页开发的 HTML、CSS、Javascript 三件套实在是开发速度快,成品多,容易做出很炫的界面,已经从网页走向了全平台,不管是windows、Mac的桌面应用,还是安卓苹果APP,微信小程序等等都是用这三件套。

 由于你想一个人完成两个人的事,所以要学习的内容相对较多,现在列出所学习的表格:

方向 第一阶段 第二阶段 第三阶段
网络 计算机网络基础 IP协议基础
TCP协议基础
HTTP协议基础

MQTT协议基础
客户端开发 HTML、CSS、JS基础
chrome调试技巧 数据可视化基础
Electron基础
微信小程序基础
服务器开发 linux基础
nodejs基础
nginx基础
mongodb基础
硬件 nodemcu基础

 内容比较多,而且全是 各种基础 。因为一天只有24小时,你不可能同时成为网络专家、客户端开发专家、服务器开发专家、硬件开发专家,这是不可能的。学习的路线比较长,最忌漫无目的地学习,会导致学习效率低下,容易走太多弯路浪费宝贵的时间,所以记住一点 遇到问题解决不了,才带着问题去学习相关的内容。 为了解决问题而学习,而不是先学习后解决问题,因为你很有可能会发现学习的东西并不一定在日后解决问题时会用到,导致浪费时间精力。例如,你深入研究学习了如何搞高并发,如何写多线程,超牛逼的技术,后来你发现这些牛逼的技术对于这个项目来说,一点用都没有,因为这些技术只有到了用户量大了的情况下才会出现的问题,而你极有可能会遇不到。
学习技巧

教程历程

  • 2017年花费四个月的时间(每天8小时至10小时的投入)完成毕业设计自选题目,最终完成从软件到硬件全部打通的物联网项目。
  • 独自探索花了大量的时间走了弯路,期间过程太苦太累,压力很大。(当年真的是苦,每天8小时+,还不知道自己能不能成功实现目标的情况下,各种技术选型时的尝试,搞了接近四个月,那是一种咬着牙长跑的痛苦感,能逼出眼泪的无奈,这也是为什么我愿意花大量时间写这教程的原因,不忍心让想实现软硬结合的各位再吃这种苦了。)
  • 本科毕业工作一年后,萌发制作教程的念头,一来能帮助到他人,二来也能为自己积点名声。
  • 在毕业设计的基础上,去掉STM32,改使用Ardunio,降低门槛,开始制作教程。
  • 一开始写成markdown文档让大家离线下载,但是效果不佳。后来改用线上博客CSDN,但是各种限制各种不好用。最终自行使用hexo及第三方模板来搭建自己的博客,展示教程。
  • 2019年,初步完成教程。
  • 为了吸引到读者,以得到积极反馈,不断提升教程质量,所以去百度问答与知乎里不断回答问题,推广我的教程。读者数量上升。
  • 后来不断解答读者的疑惑时,感觉这个教程能帮助到别人,给社会创造点有价值的东西。
  • 受益于大前端的发展,基于JS开发的这个教程搭上了顺风车,远比那些基于JAVA、Python、PHP等等的物联网教程更有学习价值。
  • 历经几年,解答读者问题上百个,Q群里成员数量已过三百,github star数量超过500,期间根据解答与反馈不断优化教程内容。
  • 2021年,开始着手升级V2.0,优化教程,制作有声视频。

其它推荐

  • phodal是一个很高产的全能型大神,值得大家关注。