在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

走進物聯網:制備您自己的Wi-Fi開關 !

王璐 ? 來源:DevicePlus ? 作者:DevicePlus ? 2023-02-24 18:12 ? 次閱讀

這篇文章來源于DevicePlus.com英語網站的翻譯稿。

目錄

1. 簡介
2. 大致規格
3. ESP32 硬件概述
4. 將固件加載到 ESP32
5. 運行!!
6. 選擇您自己的集線器:主機即為Heart.local所在的位置
7. 構建Wi-Fi 開關

1 簡介

物聯網技術已經深入到了大眾生活中。宇宙大爆炸帶來了世間所有存在的事物,但是以智能方式將它們連接起來,使其在發生相互關聯的同時發揮出作用,是最近才取得的進展。幾次雷擊后,細胞在地球海洋的原始泥漿中做到了這一點,氨基酸為第一個細胞的形成構成了物質基礎。然后就開始與其他萬物合作共贏了嗎?不,完全不是。細胞缺乏更高的智慧,它們只想在無盡的變異迭代中延續自己的生命。就這樣,逐漸進化成了人類,才有了現在正在閱讀有關物聯網文章的您。
物聯網的發展一定是以一個明確的目標開展的,并且在設計時會考慮未來產品的迭代。當然,您沒有辦法永生,只能提出一個想法,然后也許用幾個月的時間來設計出原型。接下來,就是PCB設計了。這樣說也許您會感到喜悅:每一個人都為物聯網的發展作出了貢獻,就像黎明前一個細胞加入了另一個細胞那樣,總有一天會迎來人工智能的全面開花,而人工智能也許會在未來選擇消滅人類,也可能不會。人工智能是基于二進制計算的。那么我們繼續!
在本文中,您將會學習如何使用MicroPython和ESP32來制作一個可用于物聯網項目的Wi-Fi開關。

2 大致規格

我需要一個本地物聯網Wi-Fi開關,用于兩個230V交流負載,每個負載高達500-600W。該開關需要易于更改(在代碼中),需要可以安裝在家里的任何地方,并且在硬件方面,可以快速進行修改和擴展。這意味著我必須使用MicroPython,以及一個ESP32開發板!它的引腳可以提供約10mA的電流,并且只需要串聯一個330歐姆的電阻器就可以對其進行保護。所有的輸出電壓都為3.3V,對于現如今的MOSFET來說很完美,甚至可以驅動更高電壓的負載。只要您確保使用邏輯電平MOSFET。WiFi傳輸速度約為150Mbit/s(18.75MByte/s),并且使用Loboris的ESP32固件(可在此處獲取)可以節省更多時間,因為它已經包含了用于mDNS的庫以及所有其他所需內容了。
mDNS可以使您的ESP32在網絡上被發現(對于Wireshark愛好者,可以多播到224.0.0.251),并讓您告訴其他使用者每個設備提供了哪些服務。它的系統與提供流媒體的媒體中心和Chromecasts的系統相同。我使用它來找到我的Raspberry Pi集線器(HEART.local),并且只接受來自該集線器的指令。
當使用USB TTL適配器連接到您的ESP32的UART時,您可以隨時使用CTRL+C跳出正在運行的程序,然后查看變量,調整內存使用情況(micropython.meminfo(1), esp.freemem()),釋放內存(gc.enable(), gc.collect()),進入粘貼模式(CTRL+E,paste, CTRL+D),從而了解一個想法是如何實現的。
想要在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()’)來實現上傳/下載代碼以及查看代碼運行結果的話,會需要這些程序包。為簡單起見,您可以進行搜索相關信息,然后將MicroPython板連接到您的網絡上。

3 ESP32 硬件概述

pYYBAGPzHgSAcLB8AAFrLmSL5bQ945.jpg


ESP32 規格

CPU 雙核@ 160/240MHz,Xtensa(R) 32位 LX6 微處理器

性能: <=600 DMIPS

芯片 ESP32D0WDQ6 (版本1)

Wi-Fi:802.11/b/g/n/e/i – 802.11n @ 2.4GHz 高達150Mbit/s

藍牙

RAM

448KB ROM 用于啟動及核心功能

520KB 片上SRAM 用于數據及指令

RTC(RTC FAST MEMORY)中的8KB SRAM用于從深度睡眠模式中恢復

RTC(RTC SLOW MEMORY)中的8KB SRAM用于深度睡眠模式下的協同處理

1Kbit eFuse(256位用于系統(MAC和芯片配置)),768位用于用戶應用程序、閃存加密以及芯片ID

40MHz晶振,可輸出40MHz PWM

可用SPIRAM進行擴張!最多4個16MB外置QSPI 閃存/SRAM芯片,最多8MB映射到CPU數據空間的外置閃存/SRAM,支持存取8位、16位、32位數據。該SRAM可以寫入:

閃存: 4MB SPI 閃存(在GPIO6、 GPIO7、GPIO8、GPIO9、GPIO10上)

安全性: IEEE 802.11 標準安全機制:

WPA/WPA2/WAPI

安全啟動

閃存加密

1024位OTP,最終用戶可達768位

AES,SHA-2,RSA,橢圓曲線加密(ECC),隨機數生成(RNG)的加密硬件加速

ESP32 數據表
雙核CPU和520KB RAM相對于您可能已經習慣使用的Arduino atmega328p (例如Uno)的16MHz和2KB SRAM有了質的提升,可以為您提供足夠的速度和空間來開發更高復雜程度的物聯網系統。相比于它的能力范圍,我的Wi-Fi開關只使用了其中很少的功能。但是,我在ESP32的兩側都添加了引腳公頭,之后可以隨時為我構建的產品添加更多的功能。

poYBAGPzHgeAVt7GAAGBh4FL6_Y086.jpg


wifiswitch.zip

4 將固件加載到 ESP32

您只需要esptool即可上傳Loboris MicroPython。為了方便起見,請直接使用我的腳本:

[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]

為了實現連接,您可以在Windows、 Linux、以及MacOS上使用終端指令“python3 -m serial.tools.miniterm”。Miniterm可以與python3-serial模塊一起安裝,或者可以直接下載putty軟件來簡化您的過程。根據您使用的Windows, Linux,以及MacOS系統,端口將會遵循不同的命名慣例。這兩個程序都會要求您輸入想要連接的端口以及波特率。對于MicroPython,使用115200。需要連接的端口在Windows系統上會有所不同(插入設備時在設備管理器中查找COM#端口變化),而在Linux或其他類似的系統中,通常對于第一個連接的USB串行適配器為“/dev/ttyUSB0”,第二個為“/dev/ttyUSB1”等等。
MicroPython的易用性和靈活性使您不會被代碼困擾,從而能有更多的時間投入到電子產品的開發中。

5 運行!

您的ESP32在MicroPython上運行時,首先會執行“boot.py”,接下來是“main.py”(如果存在的話)。“boot.py”通常用于Wi-Fi的初始化,并且完成系統的準備工作。我將所有的指令都保存在了“boot.py”中,但是如果您原意的話,也可以將最后幾個無限循環代碼寫入“main.py”中。如果您對Arduino比較熟悉的話,可以將“boot.py”看作“setup()”,將“main.py”看作“loop()”,只不過您需要添加一行“while True:”使“main.py”可以無限循環。
函數“connection_handler()”建立了一個Wi-Fi連接,會遍歷“_wlans”元組中所有配置過的WLAN。如果無法連接,將會重新開始直到連接成功為止。該函數會每隔一段時間被調用一次。
遺憾的是,在本項目中無法調用“sta_if.status(‘rssi’)”,否則該函數將有助于把您的ESP32物聯網設備放置在信號良好的位置。使用它您可以很方便地查看Wi-Fi信號強度。任何低于-80的信號都可能會導致間歇性的網絡故障,而-65或更高強度的信號可以連接良好。
控制繼電器的函數是“relay_handler()”,這是一個可以自我記錄的ifthis-dothis-ifthat-dothat代碼塊。它會返回一串文本,來通知集線器它發送到ESP32的指令已經被成功執行。我們沒有一個簡單的狀態機來對中繼狀態進行追蹤,因為Loboris的ESP32模塊可能無法使用“state = pin.value()”。您仍然可以添加狀態追蹤功能,但是需要使用“pin.value()”。我相信這樣可以解決這個問題,因為它可以很完美地與官方MicroPython固件配合使用。
在設置mDNS并找到集線器(“HEART.local”)時,代碼會不斷嘗試對集線器進行解析,直到成功為止。這旨在幫助您正確地設置Raspberry Pi。指令“avahi-browse -avtr”和“avahi-resolve –address/–name”會很有用!
最后,在大部分的有用信息被打印完成后,我們進入主循環部分。通過偵聽10101/tcp端口,ESP32可以查看有效指令,并將符合要求的指令傳遞給“relay_handler()”。您可以禁用對“are-you-in-fact ‘HEART.local’?”的檢查。簡單地說,這種檢查是無關緊要的,并不是真正的身份驗證機制。mDNS網絡名稱是可以偽造的,并且隨著時間的推移,集線器將會更改其IP地址。
最后有一個循環將會無限運行下去,該循環只與來自網絡的輸入有關。如果您想對其進行嘗試,需要添加“except KeyboardInterrupt: break”,它包含在wifiswitch.zip中。

6 選擇您的集線器:主機就是Heart.local所在的位置

poYBAGPzHgqAB9gAAAGRjpSu4xI520.jpg


對于您的集線器,我建議使用一個Raspberry Pi。查看有關如何設置Raspberry Pi的指南,并將其連接到網絡上。對于無顯示器操作,Raspberry Pi Zero W是理想選擇,但是如果您想要通過圖形界面進行操作,請使用Raspberry Pi 2/3/4 B/B+。當然,如果您運行的是Linux或其他類似的系統,也可以直接從您的筆記本電腦端來操作Wi-Fi開關。高級用戶也可以嘗試使用OpenWRT,它在新版路由器上的功能和Raspberry Pi 4 B一樣,并且可以全天候運行。需要的軟件包是avahi-daemon和avahi-discover(Linux或其他類似系統),配置示例請參閱wifiswitch.zip中的wifiswitch/rpi/etc/avahi/avahi-daemon.conf。如果您使用了一個Raspberry Pi,請確保在您的集線器上wifiswitch/rpi運行upgrade.sh和setup.sh,這樣的話就可以保證一切正常。除了avahi-daemon,只需要再安裝幾個有用的額外的安裝包。其中,“nmap”十分有用,它可以讓您查看網絡上的每個節點和服務。
avahi-daemon通常都預裝在使用Linux發行版(如Ubuntu)的臺式機和筆記本電腦上。如果沒有的話,請使用您的軟件包管理器將其添加到您的系統中。同時還必須安裝avahi-discover包。在您的終端中,輸入“sudo apt update; sudo apt install avahi-daemon avahi-discover”。然后,使用wifiswitch.zip中的wifiswitch/rpi/wifi_switch.sh來操作您的WiFiSwitch。您可以很輕松地對事務進行時間安排,而且如果您在外度假的話,cron可以在您期望的時間打開和關閉您家里的燈光,從而給小偷之類的人留下有人在家的印象。把臥室和客廳的燈以1秒鐘的時間間隔進行打開和關閉?只有瘋了的人才會做這種事吧。但是不要進行3-30Hz頻率的循環,這樣會導致一直執行重復性動作。
檢查您的設置時,請使用“avahi-browse -avtr”查看所有的mDNS對等點及其服務。“avahi-browse -lavtr”將顯示除了您所在系統之外的所有內容。使用“avahi-browse -avtr”查看所有服務是對設置進行調試的好方法!腳本“wifi_switch.sh”使用了指令“avahi-resolve –name WiFiSwitch.local”,通過指令“avahi-resolve –address”,您可以查找設備的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的日志,以及對來自我的集線器的指令的啟動和執行。

[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 構建Wi-Fi開關

在構建設備時,您將需要以下部件。如果您沒有這些部件,請查看零件數據表并使用具有相似特性的部件。例如,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 汽車繼電器,>=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 穩壓器 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
外盒(塑料材料,金屬材料將會阻擋WiFi信號) https://www.newark.com/hammond/1591dbk/enclosure-multipurpose-plastic/dp/65F1761
細實心線(聚四氟乙烯涂層!) https://www.newark.com/alpha-wire/2936-br005/hook-up-wire-36awg-brown-30-5m/dp/22AC3546

此外,您還需要一些粗絞線(剝出電源線,只需要約10厘米),也可以選擇使用一個帶研磨鉆頭的旋轉工具。
假設您已經具有烙鐵以及松香芯的焊料了,您可以使用任何具備溫度控制功能的工具進行焊接。焊接溫度最好為824華氏度,并且每次只接觸焊點3-5秒。
該Fritzing 示意圖顯示了所有的連接。注意7805 Vout和ESP32之間的滑動開關。如果您想把ESP32和中繼器板完全隔離開,請使用DPDT開關,并將其使用在5V和GND線上。光隔離器在正確操作的情況下不需要公共接地。您可以通過添加一個DPDT開關來免去一些麻煩,因為同時用7805和microUSB為ESP32供電是不可行的。

pYYBAGPzHg2AEsaXAAGRyn2l6YI551.jpg


microUSB端口通常用于上傳代碼,microUSB端口上的5V引腳沒有直接連接到5V引腳上,這里有一個正向偏置到該引腳的肖特基二極管。連接兩個5V電源不僅會燒壞ESP32,可能還會損壞您的USB端口。我們永遠不要讓這種事情發生。只需在microUSB數據線連接到ESP32之前將滑動開關轉到OFF位置即可。這不會影響開發板的操作,光隔離器與驅動繼電器的MOSFET之間沒有電流流通。您可以考慮購買一個USB TTL適配器,它可以讓您連接到ESP32,并且無需在每次重啟程序的時候進行重置。如果您通過其他方式為其供電,請勿將它的5V電線連接到開發板上。
如圖所示將所有部件進行連接,請特別注意繼電器上的電流端子。如果您有帶磨頭的旋轉工具,請移除端子周圍的銅墊,然后將粗絕緣線鋪在清理過的表面上。開關繼電器總是會產生電弧,但是這些電弧不會在繼電器外產生。對板進行打磨。230V電壓不會造成什么傷害,但是還是謹慎些為好。

poYBAGPzHhCAPAPNAAGRW7T9rVg347.jpg


完成后,您已經驗證了繼電器可以正常工作,在交流電流動的所有點以及這些點之間的線路上涂上具有耐高溫特性的熱膠,并粘上電工膠帶。熱膠在高達194華氏度的溫度下形狀穩定,所以它會一直穩固在其位置上。現在,我們已經確認了不會對身體造成傷害。

pYYBAGPzHhSATXZGAAHWJZsWylY056.jpg


PC817光隔離器標有A-K、C-E。這意味著小圓標記旁邊的引腳是陽極(A),旁邊的引腳是陰極(K)。您需要在ESP32引腳和每個光隔離器陽極之間串聯一個330歐姆的電阻。內部有一個紅外線LED。您一定了解LED的一個特點—它們會在過高的電流負載下燒壞。發射的紅外光打開了晶體管集電極(與NPN不太一樣),使集電極(C)側的電流流經發射極(E),到達2N7000 MOSFET柵極。發生這種情況時,2N7000將會打開,讓來自繼電器的電流流過漏極,通過源極流到GND,然后它會即刻發出咔噠聲。
2N7000 MOSFET的連接很簡單,但前提是您需要記得在柵極和GND之間放置10Kohm的下拉電阻。如果您忘記了這一點,柵極就不會被關閉,您的繼電器也就無法可靠地轉換。
您所構建的設備不需要很美觀,它會被一直放在一個盒子里。該設備不會消耗太多功率(約2.7W),不過在外盒上添加幾個小孔是個不錯的主意,這樣系統可以被動地進行冷卻。如果沒有這幾個孔的話,熱量聚集可能會使部件無法正常工作。

poYBAGPzHhaAfPlWAAFwBxUUJPo705.jpg


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

pYYBAGPzHhqAdIM2AAF1aZniwIs126.jpg


首先在面包板上測試您的電路,然后構建該電路。構建完成后,您可以開始根據自己的想法對代碼進行調整。無論您有什么想法,我想都會比構建物聯網鞋要好得多。我想我永遠都沒法搞明白為什么我用物聯網購買了一些工具和書籍后,亞馬遜會給我推薦這些產品。

pYYBAGPy03uAbR05AAAG6J_TkQQ048.jpg

Lasse Efrayim Jespersen

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

審核編輯黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開關
    +關注

    關注

    19

    文章

    3142

    瀏覽量

    93766
  • 物聯網
    +關注

    關注

    2911

    文章

    44824

    瀏覽量

    375135
  • wi-fi
    +關注

    關注

    14

    文章

    2157

    瀏覽量

    124721
收藏 人收藏

    評論

    相關推薦

    Wi-Fi HaLow——專為聯網而生

    Wi-Fi(IEEE 802.11)是家庭和小型企業應用的首選互聯網連接技術,在Wi-Fi的成功基礎上,Wi-Fi聯盟推出了另一項新標準——Wi-F
    發表于 03-16 11:25 ?1696次閱讀
    <b class='flag-5'>Wi-Fi</b> HaLow——專為<b class='flag-5'>物</b><b class='flag-5'>聯網</b>而生

    Wi-Fi:從局域網到聯網

    一直以來,由于漫游、切換、安全、干擾以及傳輸速率等方面的制約,Wi-Fi技術始終被定位在企業局域網的組網應用,而替代企業有線網絡似乎也是Wi-Fi應用的主要目標。不過,隨著聯網、無
    發表于 07-18 15:27

    聯網與SimpleLink Wi-Fi的簡易連接解決方案

    聯網與SimpleLink Wi-Fi的簡易連接解決方案
    發表于 02-24 14:19

    基于云服務Wi-Fi的家電聯網應用系統設計

    摘要:為了更加快速、便捷、廉價地實現家電聯網,本文介紹了一款基于嵌入式微處理器,采用Wi-Fi模塊,配合機智云服務平臺,可以接入互聯網并對家電設備進行遠程控制的家電
    發表于 08-25 13:48

    基于云服務Wi-Fi的家電聯網應用系統設計

    基于云服務Wi-Fi的家電聯網應用系統設計 隨著聯網技術不斷發展,智能化產品不斷進入人們的視野,與大家的生活開始密不可分。今日,小編給大
    發表于 11-03 11:14

    SimpleLink Wi-Fi模塊讓Wi-Fi認證更輕松

    其它設備。除了表明的產品符合最高連接標準外,您還能讓它的信息被Wi-Fi聯盟Wi-Fi CERTIFIED Product Finder收錄。我如何為自己的產品獲得
    發表于 09-06 14:42

    聯網無處不在取決于Wi-Fi和藍牙

    Wi-Fi和藍牙兩種技術允許網格化以實現更高的聯網無處不在。 Wi-FiWi-Fi基于IEEE 802.11標準。與TCP / IP堆棧完全集成,
    發表于 12-03 11:45

    Wi-Fi技術必須具有以下屬性才能考慮用于聯網設計

    聯網架構使得Wi-Fi集成成為無數終端設備的必然選擇。請繼續關注下一期文章,屆時我們將詳細介紹幾個用例,將此解決方案納入的設計;并查看這些鏈接,以了解有關SimpleLink Wi-Fi
    發表于 07-23 04:45

    基于Wi-Fi無線傳輸技術的聯網應用介紹

    本文將通過講述基于Wi-Fi無線傳輸技術的聯網應用。
    發表于 06-16 08:50

    怎樣去開發基于STM32和聯網Wi-Fi程序呢

    IAP程序的流程是怎樣的?怎樣去開發基于STM32和聯網Wi-Fi程序呢?
    發表于 10-14 06:10

    Wi-Fi:從局域網到聯網

    隨著Wi-Fi應用領域的不斷擴展、產品類型的日益豐富以及Wi-Fi設備的加速應用,相信Wi-Fi會成為聯網產業的基石,學習
    發表于 07-18 15:41 ?2307次閱讀
    <b class='flag-5'>Wi-Fi</b>:從局域網到<b class='flag-5'>物</b><b class='flag-5'>聯網</b>

    是什么讓Wi-Fi HaLow成為聯網的理想協議?

    HaLow成為聯網的理想協議? Wi-Fi就像是我們互聯世界的氧氣,是當今最普遍的無線網絡協議,承載了超過一半的互聯網流量。“Wi-Fi
    的頭像 發表于 06-22 17:33 ?2458次閱讀

    聯網的未來與Wi-Fi HaLow互聯

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

    什么是Wi-Fi HaLow?

    Wi-Fi HaLow很快就會運用于附近的攝像頭、門鎖、商店、工廠和移動設備。什么是Wi-Fi HaLow?為什么說這是聯網的最佳解決方
    發表于 08-01 15:28 ?2841次閱讀

    Wi-Fi 網狀網絡和聯網

    Wi-Fi 網狀網絡和聯網
    的頭像 發表于 01-04 11:17 ?824次閱讀
    主站蜘蛛池模板: 亚洲jizzjizz中国妇女| 456成人| 夜色剧场| 天天色综合三| 在线观看国产精美视频| 亚洲 午夜在线一区| 性做久久久久久久免费观看| 男人j进女人j免费视频视频| 综合色吧| 色婷婷亚洲综合五月| 亚洲视频二| 人人添人人澡人人澡人人人爽| 色综合视频一区二区三区| 国产精品成人aaaaa网站| 992tv国产精品福利在线| 美女bbbb视频| 午夜伦y4480影院中文字幕| 天天操你| 四虎永久免费地ww4hu57| 日本免费一区二区视频| 亚洲高清免费在线观看| 日本视频www色| 国产特级毛片| 思思99re66在线精品免费观看| 丰满放荡岳乱妇91www| 亚洲一级视频在线观看| 亚欧免费视频| 你懂的网址免费国产| ww免费视频| 大黄香蕉| 失禁h啪肉尿出来高h男男| 26uuu欧美日本| 黄视频网站免费看| 色婷婷六月丁香在线观看| 国产三级精品在线| 国产日韩精品欧美一区色| 午夜一区二区免费视频| 91精品啪国产在线观看免费牛牛 | 欧美一区二区精品| 国产精品手机在线| 男人天堂网址|