IoT開發(fā)環(huán)節(jié)中,可能用到多種編程語言。以LoRaWAN為例,我們列舉一下主流開源項目使用的語言。
設(shè)備端
設(shè)備端編程主要是MCU編程。主要使用STM32/STM8/MSP430/AVR等MCU。由于ARM mbed/Arduino的參與,大多數(shù)低功耗Cortex和第三方MCU架構(gòu)都可以用于設(shè)計設(shè)備。
- 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
網(wǎng)關(guān)端
網(wǎng)關(guān)端硬件由于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,這種平臺的開發(fā)語言和通用主機類似,包括:C/C++/CPython/Lua/Ruby/Node.js。
網(wǎng)絡(luò)交換機
主流的兩個網(wǎng)絡(luò)交換機分別使用了Erlang和Golang來設(shè)計。也有Python的版本,當然本質(zhì)上啟用其他語言另起爐灶也一樣。從運維角度看,我們只需要pull一個容器下來就好了。不應(yīng)該關(guān)心細節(jié)了。