資料介紹
描述
這種可視對(duì)講在日本只有一個(gè)共用入口的典型公寓中很常見。大多數(shù)型號(hào)沒有任何物聯(lián)網(wǎng)功能,并且由于它們已集成到樓宇安全系統(tǒng)中,因此幾乎不可能用智能門鈴代替它們。因此,有些人使用 ADC、光傳感器或音頻傳感器來檢測(cè)呼叫并使用伺服電機(jī)來執(zhí)行解鎖按鈕按下,從而入侵了他們公寓中的對(duì)講機(jī)。但是,由于我喜歡人們無法僅從外面看就知道是否添加了 IoT 功能的 hack,所以這次我在家中破解了一個(gè)(松下的 SHVT18612WK),其方式是
- 它的原始功能完好無損,從外部看不到破解。
- 呼叫檢測(cè)和解鎖操作 100% 以電子方式執(zhí)行。
- 它安全地連接到 AWS 云。
- 它播放預(yù)先錄制的消息。
工作原理
我使用了帶有Mongoose OS的ESP32微控制器,因?yàn)槲蚁嘈胚@是物聯(lián)網(wǎng)項(xiàng)目的最佳組合之一。我使用光電耦合器以電子方式檢測(cè)呼叫并解鎖入口門,并使用 DFPlayerMini播放預(yù)先錄制的消息。

以電子方式檢測(cè)呼叫
當(dāng)從入口發(fā)起視頻通話時(shí),可視對(duì)講機(jī)上的鑰匙形綠色 LED 開始閃爍。因此,通過將光耦合器的初級(jí)側(cè)與該 LED 并聯(lián),將次級(jí)側(cè)連接到 GPIO 和 GND,并檢查 GPIO 的狀態(tài),您可以檢測(cè)到呼叫。
當(dāng)檢測(cè)到呼叫時(shí),ESP32 會(huì)向 AWS IoT Core 發(fā)布消息。然后自動(dòng)執(zhí)行 AWS Lambda 以發(fā)送 Slack 消息。

以電子方式執(zhí)行解鎖按鈕按下
通過將光耦的初級(jí)端連接到 GPIO 和 GND,次級(jí)端與對(duì)講電路板上的解鎖按鈕并聯(lián),并將 GPIO 從 L 設(shè)置為 H,然后再設(shè)置為 L,中間有輕微的延遲,您無需物理按下解鎖按鈕即可執(zhí)行解鎖操作。通話按鈕也是如此。
AWS Amplify Web 應(yīng)用程序和 Alexa 技能向 AWS IoT Core 發(fā)布消息,ESP32 接收消息并完成工作。

步驟 1. 暴露主 PCB 并尋找 hack 點(diǎn)
首先,拆下可視對(duì)講機(jī)的側(cè)蓋并擰松螺絲。

在卸下電線束之前,請(qǐng)務(wù)必關(guān)閉電源開關(guān)。大多數(shù)型號(hào)都帶有內(nèi)置火災(zāi)警報(bào)器,當(dāng)這些電線在電源開關(guān)打開的情況下被移除、切斷或燒毀時(shí),它就會(huì)關(guān)閉。

?
尋找容易被黑客入侵的地點(diǎn)。

將帶狀電纜焊接到黑客點(diǎn)。(電纜顏色)
- 解鎖待機(jī) LED +(橙色)
- 解鎖待機(jī) LED –(紅色)
- 解鎖按鈕(藍(lán)色)
- 通話按鈕(綠色)
- 解鎖/通話按鈕共用 GND(黃色)

步驟 2. 構(gòu)建電路
在迷你面包板上,放置 ESP32-DevKitC、光耦合器和 DFPayerMini。為盡可能避免穩(wěn)定性問題,請(qǐng)使用實(shí)心跳線而不是柔性跳線。
我發(fā)現(xiàn)視頻對(duì)講面板上的鑰匙形 LED 上的電壓約為。3.0V,所以我使用 IF=7.5mA (and R=250ohm) 作為光耦進(jìn)行呼叫檢測(cè),根據(jù)其數(shù)據(jù)表,這是在 VF=1.17V 下運(yùn)行的推薦值。如果這個(gè)IF太大,鑰匙形LED不閃爍,如果太小,光耦將不起作用。我使用 IF=15mA(和 R=120ohm)作為光耦合器,用于通話和解鎖按鈕按下。
對(duì)于 DFPlayerMini,只連接 Rx,因?yàn)閷?duì)于這個(gè) hack,ESP32 不需要知道它何時(shí)完成播放音頻文件,因此不需要 Tx。使用 Amazon Polly 生成 mp3 格式的音頻消息并將其保存到 microSD。

實(shí)際電路如下所示。你可以為此設(shè)計(jì)一個(gè)PCB。

步驟 3. 為 ESP32 編寫代碼并為 AWS IoT 預(yù)置它
對(duì)于這個(gè)項(xiàng)目,我使用了Mongoose OS ,一個(gè)非常強(qiáng)大的物聯(lián)網(wǎng)固件開發(fā)框架,因此應(yīng)用程序代碼(init.js)可以用 JavaScript 編寫。完整代碼可在GitHub中找到。
首先,將 Mongoose OS 安裝到 ESP32 并使用以下命令將其連接到 Wi-Fi。
$ mos flash esp32
$ mos wifi SSID PASSWORD
通過加載 Mongoose OS API 開始編寫 init.js,然后聲明變量。
// Load Mongoose OS APIs
load('api_gpio.js');
load('api_mqtt.js');
load('api_sys.js');
load('api_timer.js');
load('api_uart.js');
// Declare variables
let ledPin = 12;
let talkBtn = 13;
let unlockBtn= 14;
let callState = false;
let uartNo =1;
let topic1 = 'intercom/detect';
let topic2 = 'intercom/unlock';
let qos = 1;
為 DFPlayerMini 設(shè)置 UART。
// UART Setup
UART.setConfig(uartNo, {
baudRate: 9600,
esp32: {
gpio: {
rx: 25,
tx: 26,
},
},
});
設(shè)置 GPIO 模式并初始化 GPIO。
// Set GPIO mode
GPIO.setup_input(ledPin, GPIO.PULL_UP); // iput & internally pulled up
GPIO.set_mode(startTalkingBtn, GPIO.MODE_OUTPUT);
GPIO.set_mode(openSecurityDoorBtn, GPIO.MODE_OUTPUT);
// Initialize GPIOs
GPIO.write(startTalkingBtn, 0);
GPIO.write(openSecurityDoorBtn, 0);
以下代碼塊檢測(cè)調(diào)用并向 topic1 發(fā)布消息。Mongoose OS 帶有一個(gè)有用的按鈕處理程序,用于檢測(cè)按鈕按下。ledPin 是內(nèi)部上拉的,所以它通常是 H 并在發(fā)起呼叫時(shí)變?yōu)?L。Timer.set() 使 callState 在 15 秒后恢復(fù)正常。
// Detect calls and publish a message to topic1
GPIO.set_button_handler(ledPin, GPIO.PULL_UP, GPIO.INT_EDGE_NEG, 20, function(x) {
?
if (!callState) {
?
callState = true;
let message = JSON.stringify({ });
let ok = MQTT.pub(topic1, message, qos);
print(ok);
print("-----Call detected, hopefully published to AWS IoT-----");
?
Timer.set(15000, false, function() {
callState = false;
print("-----Back to normal-----");
}, null);
?
}
?
}, true);
要通過 Slack 發(fā)送通知,您可以使用發(fā)布到 topic1 和Incoming Hooks 的消息。創(chuàng)建一個(gè)將消息發(fā)送到 Slack 通道并配置 AWS IoT 規(guī)則以觸發(fā)此 Lambda 的 Lambda 函數(shù)。
當(dāng)從 AWS IoT Core 接收到消息時(shí),以下代碼塊依次執(zhí)行通話按鈕按下、音頻播放、解鎖按鈕按下和通話按鈕按下。我在這里使用了 3 個(gè)定時(shí)器,因?yàn)樵?Mongoose OS 中,對(duì)于這種用例,建議使用 Timer.set() 而不是 Sys.usleep() 來穩(wěn)定運(yùn)行。
// Subscribe to topic2 and unlock door when message is received
MQTT.sub(topic2, function(conn, msg) {
print('-----Received message from AWS IoT-----')
talk();
?
Timer.set(2000, false, function() {
play();
}, null);
Timer.set(4500, false, function() {
unlock();
}, null);
?
Timer.set(9500, false, function() {
talk();
}, null);
?
}, true);
talk() 和 unlock() 所做的是將 GPIO 從 L 設(shè)置為 H,然后將 Sys.usleep() 設(shè)置回 L。這可以模擬實(shí)際的按鈕按下。
// Mimic talk button press
function talk(){
GPIO.write(talkBtn, 1);
Sys.usleep(300000);
GPIO.write(talkBtn, 0);
}
// Mimic unlock button press
function unlock(){
GPIO.write(unlockBtn, 1);
Sys.usleep(300000);
GPIO.write(unlockBtn, 0);
}
DFPlayerMini 可以通過 UART 控制。參考在這里。
// Play /01/001.mp3 with DFPlayerMini
function play(){
UART.write(uartNo, '\x7E');
UART.write(uartNo, '\xFF');
UART.write(uartNo, '\x06');
UART.write(uartNo, '\x0F');
UART.write(uartNo, '\x00');
UART.write(uartNo, '\x01');
UART.write(uartNo, '\x01');
UART.write(uartNo, '\xEF');
}
由于 Mongoose OS 包含適用于嵌入式 C 的 AWS IoT 設(shè)備開發(fā)工具包并執(zhí)行將 ESP32 連接到 AWS IoT Core 所需的一切操作,因此您需要執(zhí)行以下命令。確保您準(zhǔn)備好您的訪問密鑰 ID 和秘密訪問密鑰對(duì),并事先在您的計(jì)算機(jī)上進(jìn)行設(shè)置。
$ mos aws-iot-setup --aws-region AWS_REGION
對(duì)于 Alexa 技能,創(chuàng)建一個(gè)具有向主題 2 發(fā)布消息的歡迎意圖,對(duì)講/解鎖。如果你使用 python,這樣的東西會(huì)起作用。
client = boto3.client('iot-data', region_name='es-east-1')
response = client.publish(
topic='intercom/unlock',
qos=1,
payload=json.dumps({ })
)
網(wǎng)上有很多如何創(chuàng)建 Alexa Skill 和 Amplify web 應(yīng)用程序,所以請(qǐng)參考那些創(chuàng)建自己的 Skill 和應(yīng)用程序的方法。
第 4 步:做電氣工作,把所有東西都藏在墻上
從墻上拆下可視對(duì)講機(jī)的底座。

拆下交流電源線,并在交流電源線上做一個(gè)分支。將帶有 USB 充電端口的壁式插座連接到分支,并將交流電源線連接到基本單元。

?
使用微型 USB 電纜為 ESP32 供電并將所有東西隱藏在墻上。確保將揚(yáng)聲器放置在靠近麥克風(fēng)的位置,否則客人無法聽到音頻消息。

現(xiàn)在破解完成了!

未來發(fā)展方向
我想為這個(gè)項(xiàng)目制作一個(gè)PCB。我還想分析視頻信號(hào),將其從板上取出,然后發(fā)送到 AWS 云來做一些有趣的事情。
- 對(duì)講機(jī)原理、使用及縱圖集 108次下載
- DMR828數(shù)字對(duì)講機(jī)模塊資料下載
- 對(duì)講機(jī)寫頻軟件 67次下載
- 基于光子的對(duì)講機(jī)
- 對(duì)講機(jī)業(yè)務(wù)頻率規(guī)劃 11次下載
- ICOM對(duì)講機(jī)寫頻編程軟件CSF33G下載 12次下載
- ICOM對(duì)講機(jī)寫頻編程軟件CS-36FI下載 4次下載
- 如何使用ARM內(nèi)核實(shí)現(xiàn)民用數(shù)字對(duì)講機(jī)系統(tǒng)的設(shè)計(jì) 25次下載
- 關(guān)于DSP的數(shù)字對(duì)講機(jī)語音處理方案的研究 15次下載
- 基于MPPSK數(shù)字對(duì)講機(jī)系統(tǒng) 1次下載
- 對(duì)講機(jī)維修資料 0次下載
- 藍(lán)牙對(duì)講手機(jī)APP藍(lán)牙對(duì)講對(duì)講機(jī)PTT對(duì)講方案 66次下載
- 簡(jiǎn)易對(duì)講機(jī) 74次下載
- 數(shù)字對(duì)講機(jī)與模擬對(duì)講機(jī)的比較 252次下載
- 基于ARM內(nèi)核的民用數(shù)字對(duì)講機(jī)系統(tǒng)的設(shè)計(jì)
- 艾為芯片在對(duì)講機(jī)中的應(yīng)用 1.1k次閱讀
- 防爆的對(duì)講機(jī)有哪些 防爆的對(duì)講機(jī)怎么選 2.8k次閱讀
- 為什么藍(lán)牙對(duì)講機(jī)要加一根PTT線與普通對(duì)講機(jī)連接 1.6w次閱讀
- 淺析模擬對(duì)講機(jī)和數(shù)字對(duì)講機(jī)的區(qū)別 2.7w次閱讀
- 防爆對(duì)講機(jī)與普通對(duì)講機(jī)如何區(qū)別? 1.4w次閱讀
- 對(duì)講機(jī)和微信的區(qū)別在哪里?為什么微信,手機(jī)不能取代對(duì)講機(jī)? 1.1w次閱讀
- 什么是全國(guó)對(duì)講機(jī)_全國(guó)對(duì)講機(jī)的原理_全國(guó)對(duì)講機(jī)怎么用 5.5w次閱讀
- 新買的對(duì)講機(jī)怎么用_怎么知道對(duì)講機(jī)的頻率_對(duì)講機(jī)頻率設(shè)置 8.3w次閱讀
- 公網(wǎng)對(duì)講相關(guān)的幾個(gè)時(shí)延指標(biāo)定義以及常用對(duì)講機(jī)與集群對(duì)講機(jī)之分 1w次閱讀
- 對(duì)講機(jī)是怎么分類的_對(duì)講機(jī)分類大全_對(duì)講機(jī)的工作原理介紹 1.7w次閱讀
- 關(guān)于對(duì)講機(jī)基礎(chǔ)知識(shí)的解答 8k次閱讀
- 對(duì)講機(jī)按鍵功能圖解 19.4w次閱讀
- 對(duì)講機(jī)調(diào)頻的4個(gè)步驟 4.9w次閱讀
- 深度剖析門禁對(duì)講機(jī) 6.8k次閱讀
- 基于防爆對(duì)講機(jī)的使用詳細(xì)說明 5.7k次閱讀
下載排行
本周
- 1耗盡型MOS FET產(chǎn)品目錄選型表
- 0.14 MB | 2次下載 | 免費(fèi)
- 2TI系列-米爾TI AM62L核心板開發(fā)板-高能效低功耗嵌入式平臺(tái)
- 1.51 MB | 次下載 | 免費(fèi)
- 3WILLSEMI韋爾20年半年度報(bào)告由代理分銷經(jīng)銷一級(jí)代理分銷經(jīng)銷
- 3.30 MB | 次下載 | 免費(fèi)
- 4LRC 樂山無線電InTWSApplications家電由原廠代理分銷經(jīng)銷一級(jí)代理分銷經(jīng)銷供應(yīng)
- 85.84 KB | 次下載 | 免費(fèi)
- 5LAT1596 一文說明白 STM32G4 雙 Bank 啟動(dòng)與升級(jí)
- 0.64 MB | 次下載 | 5 積分
- 6LAT1594_基于事件喚醒低功耗之介紹
- 0.37 MB | 次下載 | 5 積分
- 7PT8P2309 觸控 A/D 型 8-Bit MCU規(guī)格書
- 4.05 MB | 次下載 | 免費(fèi)
- 8PT8P2308 觸控 A/D 型 8-Bit MCU規(guī)格書
- 4.13 MB | 次下載 | 免費(fèi)
本月
- 1美的電磁爐電路原理圖資料
- 4.39 MB | 19次下載 | 10 積分
- 2反激式開關(guān)電源設(shè)計(jì)解析
- 0.89 MB | 11次下載 | 5 積分
- 3耗盡型MOS FET產(chǎn)品目錄選型表
- 0.14 MB | 2次下載 | 免費(fèi)
- 4簡(jiǎn)易光伏控制器原理圖資料
- 0.07 MB | 1次下載 | 5 積分
- 52EDL05x06xx系列 600V半橋門驅(qū)動(dòng)器帶集成自舉二極管(BSD)手冊(cè)
- 0.69 MB | 1次下載 | 免費(fèi)
- 6國(guó)產(chǎn)千兆網(wǎng)口芯片PT153S中文資料
- 1.35 MB | 次下載 | 免費(fèi)
- 7斯丹電子 | 用于芯片測(cè)試系統(tǒng)的射頻干簧繼電器
- 5.11 MB | 次下載 | 免費(fèi)
- 8SFI立昌ESD/TVS管原廠代理分銷經(jīng)銷一級(jí)代理分銷經(jīng)銷
- 294.76 KB | 次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191448次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81605次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73829次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論