【項目實戰】——USB雙路繼電器電腦控制燈的開關(Python)

環境:window10、Python3.7.9

依賴庫:pyserial

硬件:220V燈帶、220V吊燈、USB雙路繼電器、電筆

1、安裝Python第三方庫pyserial

2、清楚插座的零火線(用電筆去測試,燈亮為火線)

3、清楚燈的零火線(一般紅線為火線,藍線為零線)

4、按照下面的電路圖接線(繼電器的NO端接插座的火線,COM端接等的火線)

NO:常開端

NC:常閉端

COM:公共端

5、USB連接電腦后,需要安裝驅動,驅動可以直接找商家拿

6、安裝完驅動后,用自帶的軟件進行測試(指令為16進制的)

注意:上面的串口是驅動安裝成功后,會自動識別的,點擊上面的按鈕就能對繼電器進行上下電操作進而控制等的開閉啦

7、利用Python來控制繼電器來實現燈的開閉

代碼:

# -*- coding: utf-8 -*-
import serial
import binascii
import string
import time
#打開串口
serialPort="COM5" #串口
baudRate=9600 #波特率
s=serial.Serial(serialPort, baudRate, timeout=0.5)print("參數設置:串口={0} ,波特率={1}".format(serialPort,baudRate))#收發數據
#n = s.inWaiting()
#if n:
#  data = str(binascii.b2a_hex(s.read(n)))[2:-1]
#  print(data)
#通訊協議
#指令通過16進制形式發送
#數據(1)---啟始標識(默認為0xA0)
#數據(2)---開關地址碼(默認為0x01,標識第1路;0x02標識第2路…依次類推)
#數據(3)---操作數據(0x00為關不反饋,0x01為開不反饋,0x02為關并反饋,0x03為開并反饋,0x04為取反并反饋,0x05為查詢狀態0X06為閃斷并反饋)
#數據(4)---校驗碼(前面三個數據加和)#示例
#打開第1路USB開關不反饋:A0 01 01 A2,繼電器會吸合,但不會反饋數據
#關閉第1路USB開關不反饋:A0 01 00 A1,繼電器會釋放,但不會反饋數據
#打開第1路USB開關并反饋:A0 01 03 A4,繼電器會吸合,并反饋狀態A0 01 01 A2
#關閉第1路USB開關并反饋:A0 01 02 A3,繼電器會釋放,并反饋狀態A0 01 00 A1
#取反第1路USB開關并反饋:A0 01 04 A5,繼電器的狀態會變化,并反饋最終狀態
#關閉第1路USB開關不反饋:A0 01 05 A6,繼電器會反饋實時狀態
#打開第2路USB開關不反饋:A0 02 01 A3,繼電器會吸合,但不會反饋數據
#關閉第2路USB開關不反饋:A0 02 00 A2,繼電器會釋放,但不會反饋數據
#打開第3路USB開關不反饋:A0 03 01 A4,繼電器會吸合,但不會反饋數據
#關閉第3路USB開關不反饋:A0 03 00 A3,繼電器會釋放,但不會反饋數據
#打開第4路USB開關不反饋:A0 04 01 A5,繼電器會吸合,但不會反饋數據
#關閉第4路USB開關不反饋:A0 04 00 A4,繼電器會釋放,但不會反饋數據#發送
while(1):d=bytes.fromhex('A0 01 01 A2')s.write(d)print("打開1")time.sleep(2)d = bytes.fromhex('A0 01 00 A1')s.write(d)print("關閉1")time.sleep(2)d=bytes.fromhex('A0 02 01 A3')s.write(d)print("打開2")time.sleep(2)d = bytes.fromhex('A0 02 00 A2')s.write(d)print("關閉2")time.sleep(2)# d=bytes.fromhex('A0 03 01 A4')# s.write(d)# print("打開2")# time.sleep(1)# d = bytes.fromhex('A0 03 00 A3')# s.write(d)# print("關閉2")# time.sleep(1)s.close()

8、相關資源

作品展示:https://www.bilibili.com/video/BV1Wf4y1k7UV?t=9

打包文件(含源碼、驅動、說明):

https://pan.baidu.com/s/19my0Kyw92W_f3MBHCl6pTA
提取碼:6666

?

轉載請注明出處,謝謝~~~
?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256033.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256033.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256033.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

字符串去掉空格

2019獨角獸企業重金招聘Python工程師標準>>> String s1s.trim().replaceAll("\\s*", ""); 轉載于:https://my.oschina.net/u/2842177/blog/1587850

cntk-notes

cntk Embedding layer “Embedding” refers to representing words or other discrete items by dense continuous vectors. This layer assumes that the input is in one-hot form. E.g., for a vocabulary size of 10,000, each input vector is expected to have dimensio…

ubuntu安裝配置elasticSearch(vagrant)

安裝jdk sudo apt-get install python-software-properties sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer sudo update-alternatives --config java 安裝elasticSearch mkdir /usr/local/elasticsearch/ su…

深入理解javascript函數進階系列第一篇——高階函數

前面的話 前面的函數系列中介紹了函數的基礎用法。從本文開始,將介紹javascript函數進階系列,本文將詳細介紹高階函數 定義 高階函數(higher-order function)指操作函數的函數,一般地,有以下兩種情況 1、函數可以作為參數被傳遞 2…

ANSYS WORKBENCH——參數化建模以及參數優化(結果導出為Excel)

目錄 1、打開軟件workbench 2、找到static structure,雙擊打開 3、選擇材料 4、參數化建模 ?

centos 安裝軟件

1)一種是軟件的源代碼,您需要自己動手編譯它。這種軟件安裝包通常是用gzip壓縮過的tar包(后綴為.tar.gz)。2)另一種是軟件的可執行程序,你只要安裝它就可以了。這種軟件安裝包通常被是一個RPM包&#xff08…

【圖像處理】——傅里葉變換、DFT以及在圖像上的應用

目錄 1、傅里葉變換 2、DFT 1)一維離散傅里葉變換: 離散傅里葉變換例子

JAVA開發Web Service幾種框架介紹

下面分別介紹一個這幾種Web Service框架的基本概念 1、JWS是Java語言對WebService服務的一種實現,用來開發和發布服務。而從服務本身的角度來看JWS服務是沒有語言界限的。但是Java語言為Java開發者提供便捷發布和調用WebService服務的一種途徑。 2、Axis2是Apache下…

基于CMake構建MSVC_CUDA及MinGW編譯環境下的的OpenCV項目

前言 第一次搭建OpenCV開發環境的時候各種報錯,內心那個煩啊,簡直了。當時只能針對某個特定的錯誤去尋找特定的解決方法,在OpenCV構建過程中出現最多的問題就是各個模塊文件的下載問題,本質上這類問題的解決思路都是一樣的&#…

OC Autorelease

implementation ViewController - (void)viewDidLoad {[super viewDidLoad];__unsafe_unretained NSObject *obj1 [ViewController getObj];NSLog("%",obj1); // 運行OK__unsafe_unretained NSObject *obj2 [ViewController getObj];NSLog("%",obj2); //…

【opencv】——鋼管計數(霍夫圓變換 + 閾值 + canny)

目錄 方法一:霍夫圓變換 + canny 方法二 閾值 + 尋邊 對圖中的鋼管進行計數 方法一:霍夫圓變換 + canny

svn服務器搭建-SuSE Linux Enterprise Server 11 SP3

svn存儲版本數據也有2種方式:1.bdb;2.fsfs。因為BDB方式在服務器中斷時,有可能鎖住數據(搞ldap時就深受其害,沒法根治),所以還是FSFS方式更安全一點,我也選擇這種方式。下載相關軟件…

Swift 2.0初探:值得注意的新特性

轉眼間,Swift已經一歲多了,這門新鮮、語法時尚、類型安全、執行速度更快的語言已經漸漸的深入廣大開發者的心。我同樣也是非常喜愛這門新的編程語言。 今年6月,一年一度的WWDC大會如期而至,在大會上Apple發布了Swift 2.0&#xff…

Android 自定義WebView彈窗及屏蔽彈窗

額,還是那個WebView的問題,內核已換成騰訊X5內核,所以接下來的內容會有一些X5內核的方法。但我們的H5是不能改的,還是只有委屈我們自己。先看看H5自帶的彈窗 這樣子的彈窗在不同的手機上呈現的可能是不同的效果,效果不…

【圖像處理】——Python實現two_pass方法來進行連通域的提取

目錄 一、相關知識 1、two_pass算法思想 2、并查集算法 二、自定義的two_pass算法

C++ 多線程使用future傳遞異常

如果 std::async 調用的函數拋出異常,那么這個異常會被存儲在值的位置,同時 future 變為 ready ,如果調用 get() 會重新拋出存儲的異常。 Note: 標準并沒有指定原來的異常對象是被重新拋出或者拷貝后拋出,不同的編譯器會做不同的選擇。 對于 …

期貨黃金與現貨黃金比較

現貨黃金與期貨黃金是目前市場上最熱門的黃金投資方式,與國內任何的金融投資品相比,都具有一定的優勢。 其實金投網小編覺得現貨黃金與期貨黃金最主要的不同點是這個:期貨黃金做的是國內市場,同股票市場一樣,里面有莊家…

DNS域傳送漏洞

0x00 相關背景介紹 Dns是整個互聯網公司業務的基礎,目前越來越多的互聯網公司開始自己搭建DNS服務器做解析服務,同時由于DNS服務是基礎性服務非常重要,因此很多公司會對DNS服務器進行主備配置而DNS主備之間的數據同步就會用到dns域傳送&#…

封裝之--通過類中公有方法訪問私有成員變量

如何在ClassB中訪問ClassA的私有成員變量?(典型的封裝案例) 通過在ClassA中定義公有的成員方法,然后,在ClassB中通過ClassA的對象調用ClassA中的公有方法,來訪問ClassA中的私有成員變量。 轉載于:https://w…

匹配物鏡放大倍數與相機像元尺寸

通常來說,相機內部的CCD或者CMOS傳感器上都有感光陣列,由一個一個的感光元件構成,每一個感光元件負責完成光電轉換的過程。簡單理解,一個感光元件可以認為就是一個像素(pixel)或像元(pel)。像元具有一定尺寸,如果像的尺…