一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

走進(jìn)物聯(lián)網(wǎng):制備您自己的Wi-Fi開關(guān) !

王璐 ? 來源:DevicePlus ? 作者:DevicePlus ? 2023-02-24 18:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

這篇文章來源于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 硬件概述

pYYBAGPzHgSAcLB8AAFrLmSL5bQ945.jpg


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

藍(lán)牙

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)品添加更多的功能。

poYBAGPzHgeAVt7GAAGBh4FL6_Y086.jpg


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所在的位置

poYBAGPzHgqAB9gAAAGRjpSu4xI520.jpg


對(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 # set -eu -o pipefail # Usage: wifi_switch.sh < relay1 | relay2 | both > < on | off > # Examples: # wifi_switch.sh relay1 on # wifi_switch.sh relay1 off # wifi_switch.sh relay2 on # wifi_switch.sh relay2 off # wifi_switch.sh both on # wifi_switch.sh both off USAGE() { echo "Usage: "$( basename $0)" < relay1 | relay2 | both > < on | off >" cat <<-"EOF" Examples: wifi_switch.sh relay1 on wifi_switch.sh relay1 off wifi_switch.sh relay2 on wifi_switch.sh relay2 off wifi_switch.sh both on wifi_switch.sh both off EOF } if [ $# -ne 2 ] ; then USAGE ; exit ; fi NC=$( which nc 2>/dev/null ) ; if [ X"" = X"$NC" ] ; then echo "[!] No netcat in $PATH? Exiting ..." ; exit ; fi # avahi-resolve --name foo.local # avahi-resolve --address 192.168.0.101 , etc. AR=$( which avahi-resolve 2>/dev/null ) ; if [ X"" = X"$AR" ] ; then echo "[!] No avahi-resolve in $PATH? Exiting ..." ; exit ; fi SW_NAME='WiFiSwitch.local' SW_ADDR=$( $AR --name $SW_NAME 2>/dev/null | awk '{print $2}' ) # Did $SW_NAME reply? if [ -z $SW_ADDR ] ; then echo "[!] No reply from $SW_NAME - is the name correct? Is it online?" ; exit ; fi SW_PORT=10101 # Check arguments case $1 in 'relay1') RELAY=$1 ;; 'relay2') RELAY=$1 ;; 'both') RELAY=$1 ;; *) USAGE exit ;; esac case $2 in 'on') ACTION=$2 ;; 'off') ACTION=$2 ;; *) USAGE exit ;; esac # Remove these two lines once you have adapted this example script to your purposes echo "INFO: Name=>$SW_NAME address=>$SW_ADDR port=>$SW_PORT relay=>$RELAY action=>$ACTION" echo "COMMAND: echo $RELAY $ACTION | nc -w 1 $SW_ADDR $SW_PORT" # The '-w' flag sets timeout in seconds echo -n "REPLY: " ; echo "$RELAY $ACTION" | nc -w 1 $SW_ADDR $SW_PORT echo [end wifi_switch.sh]

以下是來自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供電是不可行的。

pYYBAGPzHg2AEsaXAAGRyn2l6YI551.jpg


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)慎些為好。

poYBAGPzHhCAPAPNAAGRW7T9rVg347.jpg


完成后,您已經(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ì)身體造成傷害。

pYYBAGPzHhSATXZGAAHWJZsWylY056.jpg


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ì)使部件無法正常工作。

poYBAGPzHhaAfPlWAAFwBxUUJPo705.jpg


以下是一個(gè)類似的板,連接到了我的Raspberry Pi集線器上。它有自己的5V電源,并且僅依賴于4條3V3信號(hào)線和來自Pi的GND連接。雖然它看起來也不太美觀,但是相比于具有相同容量和繼電器的PCB,它的尺寸更小。

pYYBAGPzHhqAdIM2AAF1aZniwIs126.jpg


首先在面包板上測(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)品。

pYYBAGPy03uAbR05AAAG6J_TkQQ048.jpg

Lasse Efrayim Jespersen

Lasse出生在以色列,后來移居到較冷的緯度地區(qū)。出于個(gè)人興趣,他逐漸了解到了Perl的直接、C/C++的高效以及MicroPython的優(yōu)雅。他喜歡用ESP8266/ESP32/Raspberry Pi和Arduino來制作機(jī)器。

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開關(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
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Wi-Fi HaLow——專為聯(lián)網(wǎng)而生

    Wi-Fi(IEEE 802.11)是家庭和小型企業(yè)應(yīng)用的首選互聯(lián)網(wǎng)連接技術(shù),在Wi-Fi的成功基礎(chǔ)上,Wi-Fi聯(lián)盟推出了另一項(xiàng)新標(biāo)準(zhǔn)——Wi-F
    發(fā)表于 03-16 11:25 ?1769次閱讀
    <b class='flag-5'>Wi-Fi</b> HaLow——專為<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>而生

    Wi-Fi 定位服務(wù)

    Wi-Fi 是一種著名的無線網(wǎng)絡(luò)技術(shù),用于設(shè)備的局域網(wǎng)和互聯(lián)網(wǎng)接入。Wi-Fi 通過 Wi-Fi 網(wǎng)絡(luò)為家庭、辦公室和學(xué)校等環(huán)境提供便捷的無線互聯(lián)
    發(fā)表于 04-17 15:01

    Wi-Fi:從局域網(wǎng)到聯(lián)網(wǎng)

    一直以來,由于漫游、切換、安全、干擾以及傳輸速率等方面的制約,Wi-Fi技術(shù)始終被定位在企業(yè)局域網(wǎng)的組網(wǎng)應(yīng)用,而替代企業(yè)有線網(wǎng)絡(luò)似乎也是Wi-Fi應(yīng)用的主要目標(biāo)。不過,隨著聯(lián)網(wǎng)、無
    發(fā)表于 07-18 15:27

    聯(lián)網(wǎng)與SimpleLink Wi-Fi的簡易連接解決方案

    聯(lián)網(wǎng)與SimpleLink Wi-Fi的簡易連接解決方案
    發(fā)表于 02-24 14:19

    基于云服務(wù)Wi-Fi的家電聯(lián)網(wǎng)應(yīng)用系統(tǒng)設(shè)計(jì)

    摘要:為了更加快速、便捷、廉價(jià)地實(shí)現(xiàn)家電聯(lián)網(wǎng),本文介紹了一款基于嵌入式微處理器,采用Wi-Fi模塊,配合機(jī)智云服務(wù)平臺(tái),可以接入互聯(lián)網(wǎng)并對(duì)家電設(shè)備進(jìn)行遠(yuǎn)程控制的家電
    發(fā)表于 08-25 13:48

    基于云服務(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ì) 隨著聯(lián)網(wǎng)技術(shù)不斷發(fā)展,智能化產(chǎn)品不斷進(jìn)入人們的視野,與大家的生活開始密不可分。今日,小編給大
    發(fā)表于 11-03 11:14

    SimpleLink Wi-Fi模塊讓Wi-Fi認(rèn)證更輕松

    其它設(shè)備。除了表明的產(chǎn)品符合最高連接標(biāo)準(zhǔn)外,您還能讓它的信息被Wi-Fi聯(lián)盟Wi-Fi CERTIFIED Product Finder收錄。我如何為自己的產(chǎn)品獲得
    發(fā)表于 09-06 14:42

    聯(lián)網(wǎng)無處不在取決于Wi-Fi和藍(lán)牙

    ,Wi-Fi和藍(lán)牙兩種技術(shù)允許網(wǎng)格化以實(shí)現(xiàn)更高的聯(lián)網(wǎng)無處不在。 Wi-FiWi-Fi基于IEEE 802.11標(biāo)準(zhǔn)。與TCP / IP堆棧完全集成,
    發(fā)表于 12-03 11:45

    Wi-Fi技術(shù)必須具有以下屬性才能考慮用于聯(lián)網(wǎng)設(shè)計(jì)

    聯(lián)網(wǎng)架構(gòu)使得Wi-Fi集成成為無數(shù)終端設(shè)備的必然選擇。請(qǐng)繼續(xù)關(guān)注下一期文章,屆時(shí)我們將詳細(xì)介紹幾個(gè)用例,將此解決方案納入的設(shè)計(jì);并查看這些鏈接,以了解有關(guān)SimpleLink Wi-Fi
    發(fā)表于 07-23 04:45

    基于Wi-Fi無線傳輸技術(shù)的聯(lián)網(wǎng)應(yīng)用介紹

    本文將通過講述基于Wi-Fi無線傳輸技術(shù)的聯(lián)網(wǎng)應(yīng)用。
    發(fā)表于 06-16 08:50

    Wi-Fi:從局域網(wǎng)到聯(lián)網(wǎng)

    隨著Wi-Fi應(yīng)用領(lǐng)域的不斷擴(kuò)展、產(chǎn)品類型的日益豐富以及Wi-Fi設(shè)備的加速應(yīng)用,相信Wi-Fi會(huì)成為聯(lián)網(wǎng)產(chǎn)業(yè)的基石,學(xué)習(xí)
    發(fā)表于 07-18 15:41 ?2384次閱讀
    <b class='flag-5'>Wi-Fi</b>:從局域網(wǎng)到<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>

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

    HaLow成為聯(lián)網(wǎng)的理想?yún)f(xié)議? Wi-Fi就像是我們互聯(lián)世界的氧氣,是當(dāng)今最普遍的無線網(wǎng)絡(luò)協(xié)議,承載了超過一半的互聯(lián)網(wǎng)流量?!?b class='flag-5'>Wi-Fi
    的頭像 發(fā)表于 06-22 17:33 ?2713次閱讀

    聯(lián)網(wǎng)的未來與Wi-Fi HaLow互聯(lián)

    Wi-Fi HaLow即將出現(xiàn)在周圍的智能門鎖、恒溫器、安全攝像頭、可穿戴設(shè)備、電子貨架標(biāo)簽和無線傳感器網(wǎng)絡(luò)中。什么是Wi-Fi HaLow,是什么讓其成為未來
    發(fā)表于 08-09 10:40 ?719次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>的未來與<b class='flag-5'>Wi-Fi</b> HaLow互聯(lián)

    什么是Wi-Fi HaLow?

    Wi-Fi HaLow很快就會(huì)運(yùn)用于附近的攝像頭、門鎖、商店、工廠和移動(dòng)設(shè)備。什么是Wi-Fi HaLow?為什么說這是聯(lián)網(wǎng)的最佳解決方
    發(fā)表于 08-01 15:28 ?3054次閱讀

    Wi-Fi 網(wǎng)狀網(wǎng)絡(luò)和聯(lián)網(wǎng)

    Wi-Fi 網(wǎng)狀網(wǎng)絡(luò)和聯(lián)網(wǎng)
    的頭像 發(fā)表于 01-04 11:17 ?1077次閱讀