第1步:組件
NodeMCU
AH180霍爾效應(yīng)傳感器
磁鐵
面包板。 (我們使用了Adafruit Perma-Proto面包板)
步驟2:將其接線
接線該圖顯示了如何連接傳感器和LED。首先,我們將數(shù)字霍爾效應(yīng)傳感器連接到D5,并在Vcc和傳感器信號(hào)引腳之間連接10K電阻。對(duì)于LED,它通過1K電阻連接到D3。
但是,如果您使用的是霍爾效應(yīng)傳感器(如我們?cè)诮M件列表中鏈接的傳感器),則已經(jīng)包含了LED和電阻器,因此您只需將三個(gè)引腳接地即可(-引腳),Vcc(中間引腳)和D5(S引腳)。
第3步:源代碼
我們將發(fā)布到每當(dāng)我們?cè)趥鞲衅魃峡吹綘顟B(tài)變化時(shí),都可以使用readiness.io服務(wù)。我們將使用readiness.io庫(kù)來(lái)管理wifi和服務(wù)連接。
為了減少誤報(bào)的數(shù)量-我們提供了一個(gè)帶有200ms窗口的軟件防反跳功能,您可以
要讀取霍爾效應(yīng)傳感器更改狀態(tài)時(shí)的讀數(shù),我們將D5作為中斷連接起來(lái),以使循環(huán)免于任何不必要的工作。一旦檢測(cè)到更改,我們就在INTERRUPT變量中設(shè)置一個(gè)標(biāo)志,然后將狀態(tài)發(fā)送回readiness.io服務(wù)。
將數(shù)據(jù)發(fā)送回readiness.io服務(wù)應(yīng)該在循環(huán)內(nèi)部而不是在中斷函數(shù)中進(jìn)行,因?yàn)樗谟袡C(jī)會(huì)完成操作之前會(huì)超時(shí)。
您可以在此處找到完整的源代碼
《圖id =“ rich-embed-files” class =“ ible-files”》
config.h
const 字符串CHANNEL_ID = ” XXXXXX “ 跨度》 ; // Readiness.io頻道ID
const 字符串SENSOR_ID = ” XXXXXX “ ; //您的AgriWebb或組成的傳感器ID
const 字符串主題= ” switch-generic “ ; //傳感器的類型或您發(fā)送的數(shù)據(jù)的名稱
const 字符串VERSION = ” 1 “ ;
const 字符串格式= “ ” ;
const char * WIFI_SSID = ” XXXXXX “ ; //您的WiFi SSID/名稱
const char * WIFI_PASS = ” XXXXXX “ 跨度》 ; //您的WiFi密碼
const uint8_t TIMEZONE_OFFSET = 10 ; //傳感器所在的時(shí)區(qū)(例如GMT為10)
const uint16_t DEBOUNCE_TIME = 200 ; //下一次門讀取可以發(fā)生多長(zhǎng)時(shí)間(毫秒)
查看GitHub托管于?的rawconfig.h
genericHallEffect.ino
《噸d class =“ blob-code blob-code-inner js-file-line” id =“ file-generichalleffect-ino-LC33”》 客戶端。 publishData (GATE_STATE);# include 《 readiness_io.h 》
# include “ config.h ”
const int LED_PIN = 4 ; //連接LED的引腳(D3)
const int INTERRUPT_PIN = 14 ; //該引腳連接測(cè)試按鈕(D5)
易失性字節(jié)中斷= 0 ;
靜態(tài) 無(wú)符號(hào) 長(zhǎng) last_interrupt_time = 0 ;
readiness_io client ( CHANNEL_ID,TOPIC,SENSOR_ID,VERSION,F(xiàn)ORMAT);
/* 中斷,用于評(píng)估霍爾效應(yīng)傳感器的變化(高低) */
void halleffectInterrupt (){
unsigned long interrupt_time = millis ();
如果(interrupt_time-last_interrupt_time》 DEBOUNCE_TIME)
{
中斷++;
}
last_interrupt_time = interrupt_time;
}
void 設(shè)置(){
pinMode (LED_PIN,輸出);
pinMode (BUILTIN_LED,OUTPUT);
digitalWrite (BUILTIN_LED,高); //內(nèi)部LED處于低電平時(shí)會(huì)亮起-因此我們必須將其關(guān)閉/
序列號(hào)。開始( 115200 );
串行。 setTimeout ( 2000 );
同時(shí) (!Serial){} //等待序列初始化。
序列號(hào)。 println ( “ 設(shè)備已啟動(dòng)” );
序列。打印( ” 連接到“ );
Serial。 println (WIFI_SSID);
客戶端。 wifiConnection (WIFI_SSID,WIFI_PASS);
pinMode (INTERRUPT_PIN,INPUT_PULLUP); //設(shè)置簧片/霍爾效應(yīng)的中斷引腳
attachInterrupt ( digitalPinToInterrupt (INTERRUPT_PIN),halleffectInterrupt,CHANGE); //附加中斷。
客戶端。 testConnection ();
}
void loop (){
如果(interrupt》 0 ){
中斷= 0 ;
// GATE_STATE 0 =打開1 =關(guān)閉
布爾 GATE_STATE =! digitalRead (INTERRUPT_PIN);
digitalWrite (LED_PIN,GATE_STATE);
}
}
view rawgenericHallEffect .ino由GitHub托管?
步驟4:成品
這是最終的木板。如您所見,我們已經(jīng)使用了一個(gè)霍爾效應(yīng)傳感器,該傳感器連接到一個(gè)分線板上-包括LED和電阻。您只需要將磁鐵抬高至傳感器,就會(huì)看到LED亮起。然后它將狀態(tài)傳輸?shù)絩eadiness.io。
-
霍爾效應(yīng)傳感器
+關(guān)注
關(guān)注
1文章
252瀏覽量
15829 -
AH1806
+關(guān)注
關(guān)注
0文章
2瀏覽量
6747 -
NODEMCU
+關(guān)注
關(guān)注
13文章
289瀏覽量
22270
發(fā)布評(píng)論請(qǐng)先 登錄
Diodes公司推出3D線性霍爾效應(yīng)傳感器AH4930Q
霍爾傳感器介紹(可下載)
一款內(nèi)置2個(gè)霍爾效應(yīng)元件的霍爾速度方向傳感器 - AH700

線性霍爾效應(yīng)傳感器角度測(cè)量原理、實(shí)現(xiàn)和校準(zhǔn)

霍爾效應(yīng)傳感器在電子智能鎖中的應(yīng)用

在汽車 HMI 應(yīng)用中使用霍爾效應(yīng)傳感器和電感式傳感器應(yīng)用說明

使用 TI 的霍爾效應(yīng)和線性 3D 霍爾效應(yīng)傳感器替代簧片開關(guān)應(yīng)用說明

線性霍爾效應(yīng)傳感器陣列設(shè)計(jì)應(yīng)用手冊(cè)

帶霍爾效應(yīng)傳感器的游戲觸發(fā)器

使用霍爾效應(yīng)傳感器的低功耗設(shè)計(jì)

評(píng)論