資料介紹
描述
使用 Python 和 JQWidgets 控制 Neopixels
低功耗無(wú)線標(biāo)準(zhǔn)與低成本和超小型 LED 相結(jié)合,使智能照明解決方案成為物聯(lián)網(wǎng)和家庭自動(dòng)化?的催化劑。
在本教程中,我們將了解如何使用Python和JQWidgets通過(guò)移動(dòng)設(shè)備控制 Adafruit NeoPixel環(huán)。特別是,我們將看到如何使用Zerynth Studio?在 Python 中對(duì)基于微控制器的板進(jìn)行編程,以及如何使用?Zerynth App?運(yùn)行基于 JQWidget 的 GUI。
為什么使用 Zerynth App 來(lái)遠(yuǎn)程控制 Neopixels
如果您錯(cuò)過(guò)了?如何使用 Zerynth 制作漂亮的 IoT 儀表板的教程,? Zerynth 應(yīng)用程序?是一個(gè)移動(dòng)應(yīng)用程序,可以??為您的?IoT 項(xiàng)目快速制作圖形界面原型?。?通過(guò) Zerynth 應(yīng)用程序,您可以使用?HTML 、? CSS?和?JavaScript運(yùn)行漂亮的響應(yīng)式圖形用戶界面。無(wú)需 Android 或 iOS 代碼!
特別是,Zerynth 應(yīng)用程序支持Zerynth 供電設(shè)備和您的移動(dòng)設(shè)備之間的雙向通信通道。我們已經(jīng)了解了如何從 Zerynth 驅(qū)動(dòng)的設(shè)備發(fā)送數(shù)據(jù)并將 Zerynth 應(yīng)用程序用作遠(yuǎn)程顯示器。?您可以將本教程視為同一枚硬幣的另一面:我們將了解如何通過(guò)用作遙控器的 Zerynth 應(yīng)用程序控制您的設(shè)備。
開(kāi)始吧!
所需材料
首先,你需要一塊板子。您可以選擇?Zerynth 支持的 32 位微控制器設(shè)備之一。我們選擇了Particle Photon ,這是一款非常流行的支持 Wi-Fi 的開(kāi)發(fā)板,用于創(chuàng)建 IoT 項(xiàng)目。
您還需要一個(gè)Adafruit Neopixel 環(huán)(或條帶)和一個(gè)面包板。
最后但并非最不重要的一點(diǎn)是,您需要:
- Zerynth 應(yīng)用程序。你可以?在這里下載。
組裝
只需將 USB 供電的 Particle Photon 放在面包板上并將其連接到 Neopixel 環(huán),如下所示:
- Neopixel +5V 至 Particle Photon 的 Vin 引腳
- Neopixel GND 到 Particle Photon 的 GND 引腳
- Neopixel“數(shù)據(jù)輸入”引腳到粒子光子的數(shù)字引腳
如果您想使用更多 Neopixels 或者您想以不同的方式為系統(tǒng)供電,請(qǐng)注意您可以在此處找到的信息:?基本連接、?最佳實(shí)踐、?為 NeoPixels 供電。
編程
安裝 Zerynth Studio?并?創(chuàng)建 Zerynth 用戶后,您?必須注冊(cè)并虛擬化開(kāi)發(fā)板。查看Particle Photon 的 Zerynth 官方文檔以快速入門。
現(xiàn)在您可以開(kāi)始用?Python對(duì)您的電路板進(jìn)行編程了!
創(chuàng)建一個(gè)新項(xiàng)目?并編輯main.py文件如下:
# Neopixel via Zerynth App
?
from wireless import wifi
# change the following line to use a different wifi driver
from broadcom.bcm43362 import bcm43362 as wifi_driver
?
from zerynthapp import zerynthapp
?
from adafruit.neopixel import ledstrips as neo
?
import streams
?
streams.serial()
?
num_leds = 16???????????????????? # adjust this to match the number of LEDs on your strip
led_pin = A5??????????????????????# this should match the data pin of the LED strip
?
leds = neo.LedStrip(led_pin, num_leds) # create a new Neopixel strip composed of??LEDs and connected to pin led_pin
?
leds.clear()
r = 72
g = 108
b = 108
leds.setall(r, g, b)
?
sleep(1000)
print("STARTING...")
?
try:
????# Device UID and TOKEN can be created in the ADM panel
????zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN")
????# connect to the wifi network (Set your SSID and password below)
????wifi_driver.auto_init()
????
?
????for i in range(0,5):
????????try:
????????????wifi.link("SSID",wifi.WIFI_WPA2,"PASSWORD")
????????????break
????????except Exception as e:
????????????print("Can't link",e)
????else:
????????print("Impossible to link!")
????????while True:
????????????sleep(1000)
?
????# Start the Zerynth app instance!
????# Remember to create a template (index.html),
????# upload it to the Zerynth ADM and associate it with the connected device
????zapp.run()
????
????def set_color(rr, gg, bb):
????????global r, g, b
????????r = rr
????????g = gg
????????b = bb
????????leds.setall(r, g, b) # set the color of LEDs
????
????# link "set_color" to the function set_color
????zapp.on("set_color", set_color)
????
????
????while True:
????????leds.on()?????? # refresh the LEDs color
????????print('r = %i, g = %i, b = %i' % (r, g, b))
????????print("..")
????????sleep(50)??
?
except Exception as e:
????print(e)
當(dāng)然,您必須編輯您要連接板子的wifi網(wǎng)絡(luò)的SSID名稱和密碼。
此外,您必須創(chuàng)建一個(gè)“已連接設(shè)備”并將“zerynthapp”實(shí)例鏈接到它。然后您必須創(chuàng)建模板并將其鏈接到項(xiàng)目。請(qǐng)查看本教程的“創(chuàng)建和設(shè)置連接的設(shè)備”和“創(chuàng)建、上傳和設(shè)置模板”步驟以?了解更多詳細(xì)信息。
index.html文件應(yīng)如下所示:
<html>
????<head>
????????<meta charset="utf-8">
????????<meta http-equiv="X-UA-Compatible" content="IE=edge">
????????<meta name="viewport" content="width=device-width, initial-scale=1">
????????
????????<title>Zerynthtitle>
????????
????????<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">script>
????????<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
????????<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
????????<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous">script>
????????
????????<script src="https://api.zerynth.com/zadm/latest/z.js">script>
????????
????????<link rel="stylesheet" href="https://jqwidgets.com/public/jqwidgets/styles/jqx.base.css" type="text/css" />
????????<script src="https://jqwidgets.com/public/jqwidgets/jqx-all.js">script>
????????<script type="text/javascript" src="https://www.jqwidgets.com/public/jqwidgets/jqxcore.js">script>
????head>????????
????<body>
????????<div style="text-align:center">
????????????<p id="status" style="background:#ddd;font-weight:bold">p>
????????????<h1>Color Pickerh1>
????????div>
????????<div id="colorPicker" style="position: relative; margin: auto;">div>
????????<script>
????????????
???????????? $(document).ready(function() {
????????????????
????????????????
????????????????$("#colorPicker").jqxColorPicker({
????????????????????width: 300,
????????????????????height: 300,
?????????????????? colorMode: 'saturation'
????????????????});
????????????????
????????????????$('#colorPicker').bind('colorchange', function (event)
????????????????{
????????????????var color = $("#colorPicker").jqxColorPicker('getColor');
????????????????????var hex = color.hex;
????????????????????var rgb = color.r + "," + color.g + "," + color.b;
????????????????????Z.call('set_color', [color.r, color.g, color.b]);
????????????????});
????????????????
????????????????// initialize the Z object
????????????????Z.init({
????????????????????on_connected:??function(){$("#status").html("CONNECTED")},
????????????????????on_error:??function(){$("#status").html("ERROR")},
????????????????????on_disconnected:??function(){$("#status").html("DISCONNECTED"); return true},
????????????????????on_online:??function(evt){$("#status").html("ONLINE");},
????????????????????on_offline:??function(evt){$("#status").html("OFFLINE");},
????????????????????on_event:??function(evt){
????????????????????????//display received event;
????????????????????}
??????????????????})
????????????});
????????
????????script>
????????
????body>
html>
此時(shí),您可以?將腳本上傳到您的設(shè)備。
最后,正如您在?這個(gè)非常簡(jiǎn)短的教程中所讀到的,您只需打開(kāi) Zerynth 應(yīng)用程序,登錄并選擇特定設(shè)備即可查看您的 GUI。
Zerynth Stack 的一個(gè)獨(dú)特功能是 Web 2.0 技術(shù)與連接設(shè)備的集成。通過(guò)將設(shè)備鏈接到模板(可以像單個(gè)靜態(tài)網(wǎng)頁(yè)一樣簡(jiǎn)單,也可以像響應(yīng)式網(wǎng)站一樣復(fù)雜),可以在 Zerynth 應(yīng)用程序或單擊眼睛圖標(biāo)的臺(tái)式計(jì)算機(jī)上遠(yuǎn)程監(jiān)控和控制設(shè)備如您在此處看到的,在設(shè)備名稱的右側(cè)。
為智能照明系統(tǒng)啟用固件無(wú)線 (FOTA) 更新
一旦你建立了你的智能照明系統(tǒng),你就不想拆卸所有東西來(lái)升級(jí)固件。
為滿足此規(guī)范,Zerynth在Zerynth Studio PRO版本中包含了“ Firmware Over-the-Air ”功能??,該功能還包括以下功能:
- 可選擇的實(shí)時(shí)操作系統(tǒng)
- 省電
- 硬件驅(qū)動(dòng)的安全固件以工業(yè)量在設(shè)備上燒錄
- …以及更多
通過(guò)Zerynth 學(xué)院
- 用于將數(shù)據(jù)從Google表單自動(dòng)發(fā)布到Adafruit IO的Python腳本
- 像DJ一樣控制 NeoPixels
- Neopixels ATTiny85和電源尖峰電容器開(kāi)源
- 《Python編程入門》.pdf 0次下載
- Python語(yǔ)言在AI、大數(shù)據(jù)方面的重要性 25次下載
- 機(jī)器學(xué)習(xí)必學(xué)的Python代碼示例集 14次下載
- 帶有Adafruit_IO的氣象站監(jiān)視器源碼 9次下載
- Python3基礎(chǔ)教程電子版下載 0次下載
- python的基礎(chǔ)知識(shí)培訓(xùn)教程課件免費(fèi)下載 73次下載
- Python的學(xué)習(xí)和使用經(jīng)驗(yàn)說(shuō)明 16次下載
- Python的基本知識(shí)和特點(diǎn)及功能詳細(xì)說(shuō)明 13次下載
- python基礎(chǔ)教程之如何使用python進(jìn)行環(huán)境搭建 32次下載
- 《21天學(xué)通Python》電子書籍下載-隨書附帶程序與ppt 0次下載
- 《Python開(kāi)發(fā)技術(shù)詳解》-隨書附帶程序 0次下載
- 《Raspberry Pi Python 編程入門 》-電子書籍.pdf 0次下載
- Python智能家居系統(tǒng)代碼介紹 1013次閱讀
- 如何使用Python和PinPong庫(kù)控制Arduino 718次閱讀
- 詳解Python條件語(yǔ)句 692次閱讀
- 如何配置Python環(huán)境變量 2w次閱讀
- 如何測(cè)試Python環(huán)境 4681次閱讀
- 如何安裝Python解釋器 5202次閱讀
- 如何搭建Python編程環(huán)境 4945次閱讀
- Python的環(huán)境配置 704次閱讀
- 一次學(xué)會(huì)使用Adafruit IO平臺(tái)! 3830次閱讀
- Python的Anaconda入門指南 2496次閱讀
- 如何快速學(xué)習(xí)Python?學(xué)習(xí)Python有哪些坑? 3808次閱讀
- python適合做什么開(kāi)發(fā)_python未來(lái)發(fā)展怎么樣 8251次閱讀
- 介紹Python 3 的功能 讓人輕松地從Python 2遷移到Python 3 4392次閱讀
- python串口接收數(shù)據(jù) 4.5w次閱讀
- python2與python3問(wèn)題的分析 994次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多