在Linux下使用PLatformIO做物聯(lián)網(wǎng)開發(fā)
1. PlatformIO安裝
PlatformIO使用python開發(fā)牵触,所以首先需要安裝python環(huán)境,這里使用Anaconda來管理python環(huán)境
-
安裝Anaconda
打開終端鍵入以下命令:
# 下載anaconda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.0-`uname -s`-`uname -m`.sh
# 執(zhí)行安裝
chmod +x Anaconda3-5.3.0-Linux-x86_64.sh
./Anaconda3-5.3.0-Linux-x86_64.sh
根據(jù)提示错蝴,設置安裝路徑果覆,加入環(huán)境變量
-
使用conda創(chuàng)建python2環(huán)境,并安裝PlatformIO
# 創(chuàng)建PlatformIO虛擬環(huán)境夫否,并指定使用python版本為2.7
conda create -n platform_dev python=2.7
# 激活環(huán)境彻犁,并安裝相關依賴,庫(windows激活環(huán)境和Linux稍有不同凰慈,請根據(jù)提示選擇)
conda activate platform_dev
pip install -U platformio
-
查看Arduino板子對應在PlatformIO的id(我使用的是Arduino UNO)
platformio boards | grep 'Arduino Uno'
通過以上命令獲得Arduino Uno對應的類型是屬于uno
2. 開始創(chuàng)建物聯(lián)網(wǎng)HelloWorld工程
-
創(chuàng)建項目路徑汞幢,并執(zhí)行初始化
# 創(chuàng)建工程目錄
mkdir hello-arduino && cd hello-arduino
# 使用PlatformIO初始化項目(這里需要使用上一步獲得的板子類型)
platformio init --board uno
-
項目目錄說明
├── include # 頭文件相關存放
│ └── README
├── lib # 自動生成的庫存放目錄
│ └── README
├── platformio.ini # PlatformIO配置文件
├── src # 源碼目錄,自己開發(fā)的源碼就在這里
└── test
└── README
-
在src目錄下創(chuàng)建Arduino的源碼main.c文件
touch src/main.c
vim src/main.c
-
編寫相關helloworld源碼(效果實現(xiàn):點亮板載Led燈微谓,并且每隔一秒進行一次閃爍)
#include <Arduino.h>
#define led 13 // 定義板載led等的控制引腳是13號
/**
* 偽代碼,講解setup方法和loop方法的調(diào)用過程
*
* 大概原理
* 1.Arduino上電初始化進入執(zhí)行main方法
* 2.main方法調(diào)用setup()方法
* 3.while(true)死循環(huán)森篷,在死循環(huán)里面調(diào)用loop方法
*
* Arduino偽代碼:
*
* int main(){
* ...一些代碼...
* setup();
* ...一些代碼...
* while(true){
* ...一些代碼...
* loop();
* ...一些代碼...
* }
* ...一些代碼...
* }
*
* 在此,我們只需要在setup方法中進行一些必要的初始化(比如:波特率設置豺型,引腳工作模式等
* 在loop方法中進行業(yè)務邏輯處理
*
*/
//該方法在Arduino上電初始化的時候會自動回調(diào)一次仲智,可以進行一些必要的初始化
void setup(){
pinMode(led,OUTPUT); // 設置led的工作模式為輸出模式
}
/** 該方法會被Arduino循環(huán)回調(diào) */
void loop(){
digitalWrite(led,HIGH); //設置led燈輸出高電平
delay(1000); //延時一秒
digitalWrite(led,LOW); //設置led燈輸出低電平
delay(1000); //延時一秒
}
-
源碼編寫完成,進行編譯姻氨、上傳Arduino Uno板子運行钓辆,并觀看效果
-
通過數(shù)據(jù)線連接ArduinoUno到電腦的USB接口
Arduino連接 - 編譯并上傳
-
platformio run -e uno #進行編譯
platformio run -t upload #上傳到Arduino Uno
# 其他一些platformio常用命令
# platformio run -e uno -t upload # 編譯并上傳到Arduino板子一步完成
# platformio run -t clean # 清理編譯過的文件
-
觀看效果
運行效果