IoT开发环节中,可能用到多种编程语言。以LoRaWAN为例,我们列举一下主流开源项目使用的语言。
设备端
设备端编程主要是MCU编程。主要使用STM32/STM8/MSP430/AVR等MCU。由于ARM mbed/Arduino的参与,大多数低功耗Cortex和第三方MCU架构都可以用于设计设备。
- C for STM32, gcc-arm-none-eabi, IAR/Keil
- C for STM8/MSP430, gcc
- C++, AVR/STM32, Arduino, gcc
- C++, ARM mbed, gcc-arm-none-eabi
- MicroPython, STM32
- Lua, STM32
网关端
网关端硬件由于WiFi的参与,ESP32/8266系列会成为主体,而ESP32/8266和STM32的编程语言同样丰富:
- C for STM32
- C for ESP8266/ESP32
- C++,STM32/ESP8266, Arduino
- MicroPython, STM32/ESP8266/ESP32
- Lua, STM32/ESP8266/ESP32
除了STM32/ESP8266/ESP32,还有一种平台就是OpenWRT,这种平台的开发语言和通用主机类似,包括:C/C++/CPython/Lua/Ruby/Node.js。
网络交换机
主流的两个网络交换机分别使用了Erlang和Golang来设计。也有Python的版本,当然本质上启用其他语言另起炉灶也一样。从运维角度看,我们只需要pull一个容器下来就好了。不应该关心细节了。