【笨办法学物联网】之一- 物联网工程专业四年里应该学习哪些实用技能傍身?

作者:与子同袍
首发:物联网前沿技术观察

我列举一些我认为物联网工程专业毕业生应该具备的基本功。

这些内容大四出去实习前最好能都入门,同时相对比较深入掌握其中的几个:

  1. PLC。什么是PLC,PLC是干什么用的?工厂是怎么用PLC进行自动化生产的?PLC简单的编程。了解工业控制的自动控制语言。搞一个便宜点的主流的PLC如三菱西门子的点数少的PLC(也可以用台达信捷的),读这个型号PLC的编程手册,做一些简单的逻辑控制梯形图程序。50小时。有机会最好去工厂看看实际的冲床、注塑机、包装机、运动控制器是怎么工作的。
  2. 自动控制原理。现代工业自动控制基础,了解物联网首先要了解要被管理的对象,是不是啊?看现代自动控制入门书就可以了,知道有哪些执行机构和传感器。高阶点的把自动控制原理的数学理论部分学习透彻。100小时。
  3. 数字电路。coursera上看mit的电子工程系的视频课程:数字电路与模拟电路,了解底层的本质。100小时。找一本嵌入式硬件接口的书,把spi, i2c,串口,gpio啥的整明白。
  4. 数学。学Spivak的微积分、概率论与数理统计、线性代数done right、复变函数论和离散数学、数据结构和算法。算法可以直接看Robert Sedgewick的Algorithms课程视频。最好再学点矩阵论和数值分析。
  5. Python。学点Python编程语言,可以用Python标准库自带的turtle模块学习海龟路径控制。然后学了这个再找本运动控制器厂家的编程手册和编程使用案例手册看看,了解下运动控制的宏脚本语言怎么进行自动控制的,是不是和用Python控制海龟路径控制有点类似?用MicroPython板玩一下嵌入式,用刚学的Python直接控制Led灯、从I2C读取温度传感器值。50小时。有兴趣的话还可以用Arduino做点好玩的原型产品,可以先去arduino playground看看用arduino可以做出哪些好玩的项目。在用云计算学习了AWS IoT Core之后,可以找块ARM A7或A8的开发板,把AWS IoT Python SDK移植到板子上,然后写点Python代码,发布数据到AWS IoT Core,接收AWS IoT Core下发的设备影子更新文档。
  6. C语言。再找本C语言学点C语言入门。了解IoT中的IT行业用的典型语言。买一块100多块钱的单片机嵌入式开发板,理解单片机的软件层面是如何控制底层电路的硬件接口,会用C语言控制跑马灯串口读写个数据啥的。50小时。
  7. Linux。装VMWare或Virtualbox+Vagrant,学会用Ubuntu或CentOS两种Linux发行版,apt-get、rpm、yum,shell,docker,VIM,ssh,scp,FTP等。把Stallings的计算机体系结构和操作系统两本书都读读。读一本Linux系统API编程的书,写几十个简单的调用POSIX API的C程序。装Docker,自己写Dockerfile做镜像。
  8. 云计算。物联网和云计算是一对好基友。学物联网就不能不学点云计算。阿里云上用学生价格租用一台1核1G内存的服务器和1个月的256G内存的Redis和一个月的最低配置的RDS数据库,然后在上面体验云上的资源的购买管理和使用。然后实际使用下AWS的最常用的弹性云计算服务EC2,VPC网络,S3存储,EBS存储, AWS IoT Core。读一下开源的Openstack原理的书,理解IAAS平台的底层原理,它到底是怎么利用底层的计算虚拟化,存储虚拟化和网络虚拟化搭建出来的。
  9. 英语。英语远比你想象的重要。因为物联网这块还在发展中,要跟踪学习就要掌握英语这个语言工具。提高读英文资料的水平,高中里英语不好的用4年时间把英语提高到能看懂计算机、工控专业英语的水平,英语好的尽量看英文文档和书。目标是能基本看懂英文的软件的手册和硬件的DATASHEET。
  10. 互联网协议。啃Tanenbaum的经典的计算机网络,Stevens的TCP/IP Illustrated卷一。重点理解TCP/IP协议族和HTTP1.1协议。还有RESTful API。无线通讯部分理解GPRS,802.11,窄带物联网通信的基本原理。注意:一定要用Wireshark和Charles之类软件抓包边看书边实践理解。买一对Zigbee模块透传串口数据。买一个GPRS模块用AT指令控制然后发送数据到阿里云的服务器接收。如果还学有余力,研究下受限设备(RFC7228)环境下的6LoWPAN和CoAP协议。
  11. 物联网协议。熟悉Modbus协议。会用编程语言读写Modbus协议数据,会用编程语言读写简单的串口协议的设备数据。了解OPC DA和OPC UA标准,会用OPC客户端连上OPC服务器读写数据。MQTT v3.1.1协议文档和MQTT v5.0协议也要学习,抓包搞清楚不同QoS等级下客户端与mqtt broker之间的交互过程,特别是pubrec和pubcomp在什么时候才会触发。再学会Eclipse Paho这个mqtt client的开发和一种mqtt broker的使用。
  12. 安全。密码学基础学下,包括PKI公钥和对称秘钥原理。实践学习OpenSSL和OpenVPN,用Wireshark抓包看下TLS的交互过程。还有一块是涉及到工控领域的安全,ICS security。这块水比较深,需要在安全和工控两块都要深入才行,大致了解下常见攻击手段和漏洞即可。
  13. Java。云端不谈,Java在物联网边缘计算领域其实也挺重要,毕竟OSGi的G就是网关的意思。像Eurotech,Bosch,SAP等厂家的网关都是基于OSGi的。学习JVM原理、OSGi标准和一种实现比如Apache Felix。然后去学Eclipse Kura。
  14. Go。为啥要学习Go语言编程?Go语言在边缘计算和容器编排等领域都有重要应用。因此要学点Go语言语法,并且会用Go语言的一些重要的库。
  15. 数据库。学会使用和管理物联网和边缘计算相关的常用数据库,MongoDB、Postgresql、内存数据库Redis、时间序列数据库如InfluxDB/OpenTSDB等。

推荐阅读:

  • 采集PLC数据的25种姿势,你会几种?
  • 【新型冠状病毒物联网启示录】之一:智慧城市的马斯洛需求模型
  • 看清未来战争迷雾、支撑未来全域作战的JEDI作战云与战场边缘计算

更多物联网,边缘计算相关技术干货请关注我的专栏物联网前沿技术观察
申请加入物联网技术研讨大佬微信群,请加微信号:iot1999

发表评论

邮箱地址不会被公开。 必填项已用*标注