pc端通過python與arduino實現通信

最近想做個項目,利用python抓取網頁信息數據,然後根據數據分析來控制arduino實現相應的動作操作,首先需要實現的是電腦端與arduino的通信。
那麼我們還是從最簡單的點燈,實現電腦端與arduino的通信,控制LED燈一亮一滅。

一、軟件安裝

首先我們需要在電腦上安裝python以及pycharm,相應的教程可以網上查找。
pycharm安裝可參考:https://www.51zxw.net/show.aspx?id=78219&cid=711
在這裏插入圖片描述
安裝完成後,最重要的一步是需要在pycharm上配置python運行環境。
在這裏插入圖片描述
在這裏插入圖片描述
找到python.exe文件。
在這裏插入圖片描述

二、模塊安裝

我們運行主要是通信,需要安裝serial,但是python對應的模塊是pyserial。在pycharm軟件File-settings中找到Project Interpreter,然後雙擊pip,在彈出欄裏面搜索pyserial,找到後選中,點擊Install package即可
在這裏插入圖片描述

三、通信測試

相應的軟件環境已經準備完成,接下來我們來寫一段程序,測試下串口通信功能。
新建一個文件,輸入下面代碼:如果沒有相應python基礎可上網自學
主要功能:
1、檢測是否有可用端口
2、如果有可用端口,循環發送字符o和c,間隔1秒

# coding:utf-8

import serial.tools.list_ports
import time
plist = list(serial.tools.list_ports.comports())

if len(plist) <= 0:
        print("沒有發現端口!")
else:
        plist_0 = list(plist[0])
        serialName = plist_0[0]
        serialFd = serial.Serial(serialName, 9600, timeout=60)
        print("可用端口名>>>", serialFd.name)
		while 1:
		        serialFd.write("o".encode())
		        time.sleep(1)
		        serialFd.write("c.encode())
		        time.sleep(1)

用arduionIDE給arduino控制板上傳接收程序:當收到字符o(open的縮寫)LED燈亮,收到字符c(close的縮寫)LED燈滅

const int pinNumber = 11; //因爲電路連接中用的是11好管腳作爲輸出

//這裏就是定義 開和關
void setup(){  //arduino程序必須有的函數,用作初始化,設置管腳,調用庫等等
    Serial.begin(9600); //這裏要和樹莓派中串口波特率一致
    pinMode(pinNumber,OUTPUT); //將10號管腳狀態設置爲輸出狀態
}
void loop() {
  char val = Serial.read();
  if(val == 'o')
  {
    digitalWrite(pinNumber,HIGH); 
    }
  if(val == 'c')
  {
    digitalWrite(pinNumber,LOW); 
    }
}

上傳成功後,運行代碼
在這裏插入圖片描述
然後就可以看到LED燈,一閃一閃了,現在通信部分原理跑通了,接下來就是爬取網絡相應信息,做完處理後,給arduino發送控制信號即可

更多交流可加微信
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章