這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。
目錄
1. 簡介
2. 大致規(guī)格
3. ESP32 硬件概述
4. 將固件加載到 ESP32
5. 運(yùn)行!!
6. 選擇您自己的集線器:主機(jī)即為Heart.local所在的位置
7. 構(gòu)建Wi-Fi 開關(guān)
1 簡介
物聯(lián)網(wǎng)技術(shù)已經(jīng)深入到了大眾生活中。宇宙大爆炸帶來了世間所有存在的事物,但是以智能方式將它們連接起來,使其在發(fā)生相互關(guān)聯(lián)的同時(shí)發(fā)揮出作用,是最近才取得的進(jìn)展。幾次雷擊后,細(xì)胞在地球海洋的原始泥漿中做到了這一點(diǎn),氨基酸為第一個(gè)細(xì)胞的形成構(gòu)成了物質(zhì)基礎(chǔ)。然后就開始與其他萬物合作共贏了嗎?不,完全不是。細(xì)胞缺乏更高的智慧,它們只想在無盡的變異迭代中延續(xù)自己的生命。就這樣,逐漸進(jìn)化成了人類,才有了現(xiàn)在正在閱讀有關(guān)物聯(lián)網(wǎng)文章的您。
物聯(lián)網(wǎng)的發(fā)展一定是以一個(gè)明確的目標(biāo)開展的,并且在設(shè)計(jì)時(shí)會(huì)考慮未來產(chǎn)品的迭代。當(dāng)然,您沒有辦法永生,只能提出一個(gè)想法,然后也許用幾個(gè)月的時(shí)間來設(shè)計(jì)出原型。接下來,就是PCB設(shè)計(jì)了。這樣說也許您會(huì)感到喜悅:每一個(gè)人都為物聯(lián)網(wǎng)的發(fā)展作出了貢獻(xiàn),就像黎明前一個(gè)細(xì)胞加入了另一個(gè)細(xì)胞那樣,總有一天會(huì)迎來人工智能的全面開花,而人工智能也許會(huì)在未來選擇消滅人類,也可能不會(huì)。人工智能是基于二進(jìn)制計(jì)算的。那么我們繼續(xù)!
在本文中,您將會(huì)學(xué)習(xí)如何使用MicroPython和ESP32來制作一個(gè)可用于物聯(lián)網(wǎng)項(xiàng)目的Wi-Fi開關(guān)。
2 大致規(guī)格
我需要一個(gè)本地物聯(lián)網(wǎng)Wi-Fi開關(guān),用于兩個(gè)230V交流負(fù)載,每個(gè)負(fù)載高達(dá)500-600W。該開關(guān)需要易于更改(在代碼中),需要可以安裝在家里的任何地方,并且在硬件方面,可以快速進(jìn)行修改和擴(kuò)展。這意味著我必須使用MicroPython,以及一個(gè)ESP32開發(fā)板!它的引腳可以提供約10mA的電流,并且只需要串聯(lián)一個(gè)330歐姆的電阻器就可以對(duì)其進(jìn)行保護(hù)。所有的輸出電壓都為3.3V,對(duì)于現(xiàn)如今的MOSFET來說很完美,甚至可以驅(qū)動(dòng)更高電壓的負(fù)載。只要您確保使用邏輯電平MOSFET。WiFi傳輸速度約為150Mbit/s(18.75MByte/s),并且使用Loboris的ESP32固件(可在此處獲?。┛梢怨?jié)省更多時(shí)間,因?yàn)樗呀?jīng)包含了用于mDNS的庫以及所有其他所需內(nèi)容了。
mDNS可以使您的ESP32在網(wǎng)絡(luò)上被發(fā)現(xiàn)(對(duì)于Wireshark愛好者,可以多播到224.0.0.251),并讓您告訴其他使用者每個(gè)設(shè)備提供了哪些服務(wù)。它的系統(tǒng)與提供流媒體的媒體中心和Chromecasts的系統(tǒng)相同。我使用它來找到我的Raspberry Pi集線器(HEART.local),并且只接受來自該集線器的指令。
當(dāng)使用USB TTL適配器連接到您的ESP32的UART時(shí),您可以隨時(shí)使用CTRL+C跳出正在運(yùn)行的程序,然后查看變量,調(diào)整內(nèi)存使用情況(micropython.meminfo(1), esp.freemem()),釋放內(nèi)存(gc.enable(), gc.collect()),進(jìn)入粘貼模式(CTRL+E,paste, CTRL+D),從而了解一個(gè)想法是如何實(shí)現(xiàn)的。
想要在Linux、Windows、 以及MacOS X上使用圖形界面,可以使用ampy(“ampy –port COM4 –put boot.py”)、mpfshell(mpfshell -o ttyUSB0 -nc “put boot.py ; put main.py”)或簡單的ESPlorer。也就是說,如果您不單單只使用WebREPL(( ‘import webrepl’, ‘webrepl.start()’)來實(shí)現(xiàn)上傳/下載代碼以及查看代碼運(yùn)行結(jié)果的話,會(huì)需要這些程序包。為簡單起見,您可以進(jìn)行搜索相關(guān)信息,然后將MicroPython板連接到您的網(wǎng)絡(luò)上。
3 ESP32 硬件概述
ESP32 規(guī)格
CPU 雙核@ 160/240MHz,Xtensa(R) 32位 LX6 微處理器
性能: <=600 DMIPS
芯片 ESP32D0WDQ6 (版本1)
Wi-Fi:802.11/b/g/n/e/i – 802.11n @ 2.4GHz 高達(dá)150Mbit/s
RAM:
448KB ROM 用于啟動(dòng)及核心功能
520KB 片上SRAM 用于數(shù)據(jù)及指令
RTC(RTC FAST MEMORY)中的8KB SRAM用于從深度睡眠模式中恢復(fù)
RTC(RTC SLOW MEMORY)中的8KB SRAM用于深度睡眠模式下的協(xié)同處理
1Kbit eFuse(256位用于系統(tǒng)(MAC和芯片配置)),768位用于用戶應(yīng)用程序、閃存加密以及芯片ID
40MHz晶振,可輸出40MHz PWM
可用SPIRAM進(jìn)行擴(kuò)張!最多4個(gè)16MB外置QSPI 閃存/SRAM芯片,最多8MB映射到CPU數(shù)據(jù)空間的外置閃存/SRAM,支持存取8位、16位、32位數(shù)據(jù)。該SRAM可以寫入:
閃存: 4MB SPI 閃存(在GPIO6、 GPIO7、GPIO8、GPIO9、GPIO10上)
安全性: IEEE 802.11 標(biāo)準(zhǔn)安全機(jī)制:
WPA/WPA2/WAPI
安全啟動(dòng)
閃存加密
1024位OTP,最終用戶可達(dá)768位
AES,SHA-2,RSA,橢圓曲線加密(ECC),隨機(jī)數(shù)生成(RNG)的加密硬件加速
ESP32 數(shù)據(jù)表
雙核CPU和520KB RAM相對(duì)于您可能已經(jīng)習(xí)慣使用的Arduino atmega328p (例如Uno)的16MHz和2KB SRAM有了質(zhì)的提升,可以為您提供足夠的速度和空間來開發(fā)更高復(fù)雜程度的物聯(lián)網(wǎng)系統(tǒng)。相比于它的能力范圍,我的Wi-Fi開關(guān)只使用了其中很少的功能。但是,我在ESP32的兩側(cè)都添加了引腳公頭,之后可以隨時(shí)為我構(gòu)建的產(chǎn)品添加更多的功能。
wifiswitch.zip
4 將固件加載到 ESP32
您只需要esptool即可上傳Loboris MicroPython。為了方便起見,請(qǐng)直接使用我的腳本:
[begin flash_lobo_esp32_all.sh] # Enable flashing by holding the button to the right of # microUSB port when powering ESP32 on _baudrate=230400 _port=/dev/ttyUSB0 esptool.py --chip esp32 --before no_reset --after no_reset --baud $_baudrate --port $_port erase_flash esptool.py --chip esp32 --port $_port --baud $_baudrate --before no_reset --after no_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 bootloader/bootloader.bin 0xf000 phy_init_data.bin 0x10000 MicroPython.bin 0x8000 partitions_mpy.bin [end flash_lobo_esp32_all.sh]
為了實(shí)現(xiàn)連接,您可以在Windows、 Linux、以及MacOS上使用終端指令“python3 -m serial.tools.miniterm”。Miniterm可以與python3-serial模塊一起安裝,或者可以直接下載putty軟件來簡化您的過程。根據(jù)您使用的Windows, Linux,以及MacOS系統(tǒng),端口將會(huì)遵循不同的命名慣例。這兩個(gè)程序都會(huì)要求您輸入想要連接的端口以及波特率。對(duì)于MicroPython,使用115200。需要連接的端口在Windows系統(tǒng)上會(huì)有所不同(插入設(shè)備時(shí)在設(shè)備管理器中查找COM#端口變化),而在Linux或其他類似的系統(tǒng)中,通常對(duì)于第一個(gè)連接的USB串行適配器為“/dev/ttyUSB0”,第二個(gè)為“/dev/ttyUSB1”等等。
MicroPython的易用性和靈活性使您不會(huì)被代碼困擾,從而能有更多的時(shí)間投入到電子產(chǎn)品的開發(fā)中。
5 運(yùn)行!
您的ESP32在MicroPython上運(yùn)行時(shí),首先會(huì)執(zhí)行“boot.py”,接下來是“main.py”(如果存在的話)。“boot.py”通常用于Wi-Fi的初始化,并且完成系統(tǒng)的準(zhǔn)備工作。我將所有的指令都保存在了“boot.py”中,但是如果您原意的話,也可以將最后幾個(gè)無限循環(huán)代碼寫入“main.py”中。如果您對(duì)Arduino比較熟悉的話,可以將“boot.py”看作“setup()”,將“main.py”看作“l(fā)oop()”,只不過您需要添加一行“while True:”使“main.py”可以無限循環(huán)。
函數(shù)“connection_handler()”建立了一個(gè)Wi-Fi連接,會(huì)遍歷“_wlans”元組中所有配置過的WLAN。如果無法連接,將會(huì)重新開始直到連接成功為止。該函數(shù)會(huì)每隔一段時(shí)間被調(diào)用一次。
遺憾的是,在本項(xiàng)目中無法調(diào)用“sta_if.status(‘rssi’)”,否則該函數(shù)將有助于把您的ESP32物聯(lián)網(wǎng)設(shè)備放置在信號(hào)良好的位置。使用它您可以很方便地查看Wi-Fi信號(hào)強(qiáng)度。任何低于-80的信號(hào)都可能會(huì)導(dǎo)致間歇性的網(wǎng)絡(luò)故障,而-65或更高強(qiáng)度的信號(hào)可以連接良好。
控制繼電器的函數(shù)是“relay_handler()”,這是一個(gè)可以自我記錄的ifthis-dothis-ifthat-dothat代碼塊。它會(huì)返回一串文本,來通知集線器它發(fā)送到ESP32的指令已經(jīng)被成功執(zhí)行。我們沒有一個(gè)簡單的狀態(tài)機(jī)來對(duì)中繼狀態(tài)進(jìn)行追蹤,因?yàn)長oboris的ESP32模塊可能無法使用“state = pin.value()”。您仍然可以添加狀態(tài)追蹤功能,但是需要使用“pin.value()”。我相信這樣可以解決這個(gè)問題,因?yàn)樗梢院芡昝赖嘏c官方MicroPython固件配合使用。
在設(shè)置mDNS并找到集線器(“HEART.local”)時(shí),代碼會(huì)不斷嘗試對(duì)集線器進(jìn)行解析,直到成功為止。這旨在幫助您正確地設(shè)置Raspberry Pi。指令“avahi-browse -avtr”和“avahi-resolve –address/–name”會(huì)很有用!
最后,在大部分的有用信息被打印完成后,我們進(jìn)入主循環(huán)部分。通過偵聽10101/tcp端口,ESP32可以查看有效指令,并將符合要求的指令傳遞給“relay_handler()”。您可以禁用對(duì)“are-you-in-fact ‘HEART.local’?”的檢查。簡單地說,這種檢查是無關(guān)緊要的,并不是真正的身份驗(yàn)證機(jī)制。mDNS網(wǎng)絡(luò)名稱是可以偽造的,并且隨著時(shí)間的推移,集線器將會(huì)更改其IP地址。
最后有一個(gè)循環(huán)將會(huì)無限運(yùn)行下去,該循環(huán)只與來自網(wǎng)絡(luò)的輸入有關(guān)。如果您想對(duì)其進(jìn)行嘗試,需要添加“except KeyboardInterrupt: break”,它包含在wifiswitch.zip中。
6 選擇您的集線器:主機(jī)就是Heart.local所在的位置
對(duì)于您的集線器,我建議使用一個(gè)Raspberry Pi。查看有關(guān)如何設(shè)置Raspberry Pi的指南,并將其連接到網(wǎng)絡(luò)上。對(duì)于無顯示器操作,Raspberry Pi Zero W是理想選擇,但是如果您想要通過圖形界面進(jìn)行操作,請(qǐng)使用Raspberry Pi 2/3/4 B/B+。當(dāng)然,如果您運(yùn)行的是Linux或其他類似的系統(tǒng),也可以直接從您的筆記本電腦端來操作Wi-Fi開關(guān)。高級(jí)用戶也可以嘗試使用OpenWRT,它在新版路由器上的功能和Raspberry Pi 4 B一樣,并且可以全天候運(yùn)行。需要的軟件包是avahi-daemon和avahi-discover(Linux或其他類似系統(tǒng)),配置示例請(qǐng)參閱wifiswitch.zip中的wifiswitch/rpi/etc/avahi/avahi-daemon.conf。如果您使用了一個(gè)Raspberry Pi,請(qǐng)確保在您的集線器上wifiswitch/rpi運(yùn)行upgrade.sh和setup.sh,這樣的話就可以保證一切正常。除了avahi-daemon,只需要再安裝幾個(gè)有用的額外的安裝包。其中,“nmap”十分有用,它可以讓您查看網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)和服務(wù)。
avahi-daemon通常都預(yù)裝在使用Linux發(fā)行版(如Ubuntu)的臺(tái)式機(jī)和筆記本電腦上。如果沒有的話,請(qǐng)使用您的軟件包管理器將其添加到您的系統(tǒng)中。同時(shí)還必須安裝avahi-discover包。在您的終端中,輸入“sudo apt update; sudo apt install avahi-daemon avahi-discover”。然后,使用wifiswitch.zip中的wifiswitch/rpi/wifi_switch.sh來操作您的WiFiSwitch。您可以很輕松地對(duì)事務(wù)進(jìn)行時(shí)間安排,而且如果您在外度假的話,cron可以在您期望的時(shí)間打開和關(guān)閉您家里的燈光,從而給小偷之類的人留下有人在家的印象。把臥室和客廳的燈以1秒鐘的時(shí)間間隔進(jìn)行打開和關(guān)閉?只有瘋了的人才會(huì)做這種事吧。但是不要進(jìn)行3-30Hz頻率的循環(huán),這樣會(huì)導(dǎo)致一直執(zhí)行重復(fù)性動(dòng)作。
檢查您的設(shè)置時(shí),請(qǐng)使用“avahi-browse -avtr”查看所有的mDNS對(duì)等點(diǎn)及其服務(wù)。“avahi-browse -lavtr”將顯示除了您所在系統(tǒng)之外的所有內(nèi)容。使用“avahi-browse -avtr”查看所有服務(wù)是對(duì)設(shè)置進(jìn)行調(diào)試的好方法!腳本“wifi_switch.sh”使用了指令“avahi-resolve –name WiFiSwitch.local”,通過指令“avahi-resolve –address”,您可以查找設(shè)備的mDNS名稱。
[begin wifi_switch.sh] #! /usr/bin/env bash #
以下是來自ESP32的日志,以及對(duì)來自我的集線器的指令的啟動(dòng)和執(zhí)行。
[begin esp32.log] ... D (1096) MicroPython: Main task exit, stack used: 1392 I (1098) MicroPython: [=== MicroPython FreeRTOS task started (sp=3ffc5c10) ===] Internal FS (SPIFFS): Mounted on partition 'internalfs' [size: 1048576; Flash address: 0x200000] ---------------- Filesystem size: 956416 B Used: 10752 B Free: 945664 B ---------------- [!] Booting, running boot.py ... I (2058) phy: phy_version: 3960, 5211945, Jul 18 2018, 10:40:07, 0, 0 [!] Hostname: WiFiSwitch.local [!] Connecting to b'TestNetwork' using key b'TestPassword' ... [!] Network configuration: ('192.168.0.100', '255.255.255.0', '192.168.0.1', '192.168.0.1') [!] Starting mDNS ... [!] Discovering control hub HEART.local ... [!] HEART.local has address 192.168.0.101 [!] Entering listener loop, responding to arg1=>relay1|relay2|both arg2=>on|off - but only from HEART.local (192.168.0.101) [!] relay1: OFF [!] relay1: ON [!] relay1 + relay2: OFF [!] relay1 + relay2: ON [!] Connected peer 192.168.0.103 is _NOT_ HEART.local (192.168.0.101), rejecting it ... [!] Connected peer 192.168.0.103 is _NOT_ HEART.local (192.168.0.101), rejecting it ... [!] relay1 + relay2: OFF [!] relay1: ON [!] relay1: OFF [!] relay2: OFF [!] relay2: ON [!] relay2: OFF [!] relay1 + relay2: ON [end esp32.log]
在集線器上:
[begin hub.log] $ # give wifiswitch a rigorous workout! $ while true do wifi_switch.sh relay1 on ; sleep 2 wifi_switch.sh relay1 off ; sleep 2 wifi_switch.sh relay2 on ; sleep 2 wifi_switch.sh relay2 off ; sleep 2 wifi_switch.sh both on ; sleep 2 wifi_switch.sh both off ; sleep 2 done INFO: Name=>WiFiSwitch.local address=>192.168.0.102 port=>10101 relay=>relay1 action=>on COMMAND: echo relay1 on | nc -w 1 192.168.0.102 10101 REPLY: WiFiSwitch: relay1 ON WiFiSwitch: OK INFO: Name=>WiFiSwitch.local address=>192.168.0.102 port=>10101 relay=>relay1 action=>off COMMAND: echo relay1 off | nc -w 1 192.168.0.102 10101 REPLY: WiFiSwitch: relay1 OFF WiFiSwitch: OK INFO: Name=>WiFiSwitch.local address=>192.168.0.102 port=>10101 relay=>relay2 action=>on COMMAND: echo relay2 on | nc -w 1 192.168.0.102 10101 REPLY: WiFiSwitch: relay2 ON WiFiSwitch: OK INFO: Name=>WiFiSwitch.local address=>192.168.0.102 port=>10101 relay=>relay2 action=>off COMMAND: echo relay2 off | nc -w 1 192.168.0.102 10101 REPLY: WiFiSwitch: relay2 OFF WiFiSwitch: OK INFO: Name=>WiFiSwitch.local address=>192.168.0.102 port=>10101 relay=>both action=>on COMMAND: echo both on | nc -w 1 192.168.0.102 10101 REPLY: WiFiSwitch: relay1 + relay2 ON WiFiSwitch: OK INFO: Name=>WiFiSwitch.local address=>192.168.0.102 port=>10101 relay=>both action=>off COMMAND: echo both off | nc -w 1 192.168.0.102 10101 REPLY: WiFiSwitch: relay1 + relay2 OFF WiFiSwitch: OK [end hub.log]
7 構(gòu)建Wi-Fi開關(guān)
在構(gòu)建設(shè)備時(shí),您將需要以下部件。如果您沒有這些部件,請(qǐng)查看零件數(shù)據(jù)表并使用具有相似特性的部件。例如,LM317是7805的完美替代品。
ESP32 Wroom (ESP32D0WDQ6(修訂版1)) | https://www.adafruit.com/product/3269 |
12V 電源,1A | https://www.newark.com/xp-power/vel12us120-us-ja/adaptor-ac-dc-12v-1a/dp/71Y7923 |
Raspberry Pi Zero/Zero W/2 B+/3 B+ | https://www.newark.com/raspberry-pi/rpi3-modbp/sbc-arm-cortex-a53-1gb-sdram/dp/49AC7637 |
5.25V 電源 | https://www.newark.com/raspberry-pi/t6712dv/raspberry-pi-power-supply-90-264vac/dp/81AC2841 |
2x 12V 汽車?yán)^電器,>=8A | https://www.newark.com/te-connectivity/v23086c1001a403/relay-automotive-spdt-12vdc-30a/dp/86K0343 |
2P 2.54mm 螺絲端子 | https://www.newark.com/buchanan-te-connectivity/282834-2/terminal-block-pcb-2-position/dp/12H8386 |
2x 3P 2.54mm 螺絲端子 | https://www.newark.com/buchanan-te-connectivity/282834-3/terminal-block-pcb-3-position/dp/12H8387 |
7805 穩(wěn)壓器 | https://www.newark.com/on-semiconductor/mc7805actg/ldo-voltage-regulator-5v-1a-to/dp/45J1442 |
0.1uF + 0.33uF 電容 | https://www.newark.com/multicomp/mc0805b334k500a5-08mm/ceramic-capacitor-0-33uf-50v-x7r/dp/46P6304 |
3-5W 散熱器 | https://www.newark.com/aavid-thermalloy/sw25-4/heat-sink/dp/01M9146 |
2x PC817 光隔離器 | https://www.newark.com/sharp/pc817x1nsz0f/transistor-output-optocoupler/dp/55X3057 |
2x 330 + 2x 10Kohm 電阻 | https://www.newark.com/velleman-sa/k-res-e3/480-piece-misc-resistor-kit/dp/43W7615 |
烙鐵,推薦使用 TS100 | https://www.newark.com/weller/wp35/temperature-controlled-soldering/dp/34F1023 |
松香芯焊錫 | https://www.newark.com/gc-electronics/6033/solder-60-40-rosin-core-20g-1/dp/01E0120?st=solder%20rosin%20core |
2.54mm 引腳公頭與母頭 |
https://www.newark.com/mcm/ph1-40-ua/break-away-2-54mm-40-pin-strip/dp/97W4638 https://www.newark.com/mcm/rs1-06-g-413/1-x-6-position-female-socket-with/dp/97W4645 |
2x BAT86 肖特基二極管 | https://www.newark.com/nexperia/bat86/rectifier-diode-single-50-v-200/dp/96K6771 |
2x 2N7000 MOSFETs | https://www.newark.com/on-semiconductor/2n7000/n-channel-mosfet-60v-200ma-to/dp/58K9650 |
外盒(塑料材料,金屬材料將會(huì)阻擋WiFi信號(hào)) | https://www.newark.com/hammond/1591dbk/enclosure-multipurpose-plastic/dp/65F1761 |
細(xì)實(shí)心線(聚四氟乙烯涂層?。?/td> | https://www.newark.com/alpha-wire/2936-br005/hook-up-wire-36awg-brown-30-5m/dp/22AC3546 |
此外,您還需要一些粗絞線(剝出電源線,只需要約10厘米),也可以選擇使用一個(gè)帶研磨鉆頭的旋轉(zhuǎn)工具。
假設(shè)您已經(jīng)具有烙鐵以及松香芯的焊料了,您可以使用任何具備溫度控制功能的工具進(jìn)行焊接。焊接溫度最好為824華氏度,并且每次只接觸焊點(diǎn)3-5秒。
該Fritzing 示意圖顯示了所有的連接。注意7805 Vout和ESP32之間的滑動(dòng)開關(guān)。如果您想把ESP32和中繼器板完全隔離開,請(qǐng)使用DPDT開關(guān),并將其使用在5V和GND線上。光隔離器在正確操作的情況下不需要公共接地。您可以通過添加一個(gè)DPDT開關(guān)來免去一些麻煩,因?yàn)橥瑫r(shí)用7805和microUSB為ESP32供電是不可行的。
microUSB端口通常用于上傳代碼,microUSB端口上的5V引腳沒有直接連接到5V引腳上,這里有一個(gè)正向偏置到該引腳的肖特基二極管。連接兩個(gè)5V電源不僅會(huì)燒壞ESP32,可能還會(huì)損壞您的USB端口。我們永遠(yuǎn)不要讓這種事情發(fā)生。只需在microUSB數(shù)據(jù)線連接到ESP32之前將滑動(dòng)開關(guān)轉(zhuǎn)到OFF位置即可。這不會(huì)影響開發(fā)板的操作,光隔離器與驅(qū)動(dòng)繼電器的MOSFET之間沒有電流流通。您可以考慮購買一個(gè)USB TTL適配器,它可以讓您連接到ESP32,并且無需在每次重啟程序的時(shí)候進(jìn)行重置。如果您通過其他方式為其供電,請(qǐng)勿將它的5V電線連接到開發(fā)板上。
如圖所示將所有部件進(jìn)行連接,請(qǐng)?zhí)貏e注意繼電器上的電流端子。如果您有帶磨頭的旋轉(zhuǎn)工具,請(qǐng)移除端子周圍的銅墊,然后將粗絕緣線鋪在清理過的表面上。開關(guān)繼電器總是會(huì)產(chǎn)生電弧,但是這些電弧不會(huì)在繼電器外產(chǎn)生。對(duì)板進(jìn)行打磨。230V電壓不會(huì)造成什么傷害,但是還是謹(jǐn)慎些為好。
完成后,您已經(jīng)驗(yàn)證了繼電器可以正常工作,在交流電流動(dòng)的所有點(diǎn)以及這些點(diǎn)之間的線路上涂上具有耐高溫特性的熱膠,并粘上電工膠帶。熱膠在高達(dá)194華氏度的溫度下形狀穩(wěn)定,所以它會(huì)一直穩(wěn)固在其位置上?,F(xiàn)在,我們已經(jīng)確認(rèn)了不會(huì)對(duì)身體造成傷害。
PC817光隔離器標(biāo)有A-K、C-E。這意味著小圓標(biāo)記旁邊的引腳是陽極(A),旁邊的引腳是陰極(K)。您需要在ESP32引腳和每個(gè)光隔離器陽極之間串聯(lián)一個(gè)330歐姆的電阻。內(nèi)部有一個(gè)紅外線LED。您一定了解LED的一個(gè)特點(diǎn)—它們會(huì)在過高的電流負(fù)載下燒壞。發(fā)射的紅外光打開了晶體管集電極(與NPN不太一樣),使集電極(C)側(cè)的電流流經(jīng)發(fā)射極(E),到達(dá)2N7000 MOSFET柵極。發(fā)生這種情況時(shí),2N7000將會(huì)打開,讓來自繼電器的電流流過漏極,通過源極流到GND,然后它會(huì)即刻發(fā)出咔噠聲。
2N7000 MOSFET的連接很簡單,但前提是您需要記得在柵極和GND之間放置10Kohm的下拉電阻。如果您忘記了這一點(diǎn),柵極就不會(huì)被關(guān)閉,您的繼電器也就無法可靠地轉(zhuǎn)換。
您所構(gòu)建的設(shè)備不需要很美觀,它會(huì)被一直放在一個(gè)盒子里。該設(shè)備不會(huì)消耗太多功率(約2.7W),不過在外盒上添加幾個(gè)小孔是個(gè)不錯(cuò)的主意,這樣系統(tǒng)可以被動(dòng)地進(jìn)行冷卻。如果沒有這幾個(gè)孔的話,熱量聚集可能會(huì)使部件無法正常工作。
以下是一個(gè)類似的板,連接到了我的Raspberry Pi集線器上。它有自己的5V電源,并且僅依賴于4條3V3信號(hào)線和來自Pi的GND連接。雖然它看起來也不太美觀,但是相比于具有相同容量和繼電器的PCB,它的尺寸更小。
首先在面包板上測(cè)試您的電路,然后構(gòu)建該電路。構(gòu)建完成后,您可以開始根據(jù)自己的想法對(duì)代碼進(jìn)行調(diào)整。無論您有什么想法,我想都會(huì)比構(gòu)建物聯(lián)網(wǎng)鞋要好得多。我想我永遠(yuǎn)都沒法搞明白為什么我用物聯(lián)網(wǎng)購買了一些工具和書籍后,亞馬遜會(huì)給我推薦這些產(chǎn)品。
Lasse Efrayim Jespersen
Lasse出生在以色列,后來移居到較冷的緯度地區(qū)。出于個(gè)人興趣,他逐漸了解到了Perl的直接、C/C++的高效以及MicroPython的優(yōu)雅。他喜歡用ESP8266/ESP32/Raspberry Pi和Arduino來制作機(jī)器。
審核編輯黃宇
-
開關(guān)
+關(guān)注
關(guān)注
19文章
3278瀏覽量
95162 -
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2930文章
46108瀏覽量
390508 -
wi-fi
+關(guān)注
關(guān)注
14文章
2250瀏覽量
126728
發(fā)布評(píng)論請(qǐng)先 登錄
Wi-Fi HaLow——專為物聯(lián)網(wǎng)而生

Wi-Fi 定位服務(wù)
Wi-Fi:從局域網(wǎng)到物聯(lián)網(wǎng)
物聯(lián)網(wǎng)與SimpleLink Wi-Fi的簡易連接解決方案
基于云服務(wù)Wi-Fi的家電物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計(jì)
基于云服務(wù)Wi-Fi的家電物聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計(jì)
SimpleLink Wi-Fi模塊讓Wi-Fi認(rèn)證更輕松
物聯(lián)網(wǎng)無處不在取決于Wi-Fi和藍(lán)牙
Wi-Fi技術(shù)必須具有以下屬性才能考慮用于物聯(lián)網(wǎng)設(shè)計(jì)
基于Wi-Fi無線傳輸技術(shù)的物聯(lián)網(wǎng)應(yīng)用介紹
Wi-Fi:從局域網(wǎng)到物聯(lián)網(wǎng)

是什么讓Wi-Fi HaLow成為物聯(lián)網(wǎng)的理想?yún)f(xié)議?
物聯(lián)網(wǎng)的未來與Wi-Fi HaLow互聯(lián)

評(píng)論