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

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

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

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

用ESP8266做一個高顏值的RGB時鐘的項目

GReq_mcu168 ? 來源:DF創(chuàng)客社區(qū) ? 作者:sainisagar7294 ? 2022-07-28 14:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

給大家分享一個用ESP8266做一個高顏值的RGB時鐘的項目!

這個時鐘還具有自動亮度控制功能并配備了溫度傳感器

材料準備

  • PCB
  • ESP8266或Nodemcu
  • 跳線
  • 焊接工具

第1步: 準備工作

2a1d8b40-0e3b-11ed-ba43-dac502259ad0.png2a39a56e-0e3b-11ed-ba43-dac502259ad0.png

Neo Pixel是可尋址的LED,我們可以通過編程,讓它顯示任何一種顏色或者數(shù)字。

Neo Pixel有不同的smd封裝,這個項目使用的是Ws2812b-5050 mini RGB。

這種迷你LED的額定電壓為3.0V到5.5V,電流為16mA(每個LED)。

NodeMCU有3.3V的穩(wěn)壓器,可以正常驅(qū)動所有的LED。

第2步:使用Neo Pixel Led制作7段顯示器

2a4ed074-0e3b-11ed-ba43-dac502259ad0.png2a5c04f6-0e3b-11ed-ba43-dac502259ad0.png2a79c8a6-0e3b-11ed-ba43-dac502259ad0.png

在這里,我們需要把所有的電源并聯(lián)起來,把所有的數(shù)據(jù)連接串聯(lián)起來,使用7段顯示方法,如上圖連接所有的LED。

每段有2個LED,整個面板總共有14個LED。

我們需要4個面板來顯示時間(2個顯示小時,2個顯示分鐘)。

當(dāng)然還可以再連接兩個面板來顯示秒/任何其他數(shù)值,或者溫度。

不管怎么連接,記住總是要把第一個面板的DOUT連接到第二個面板的DIN。

第3步:連接儀表盤

2a888080-0e3b-11ed-ba43-dac502259ad0.gif2b4f0336-0e3b-11ed-ba43-dac502259ad0.png

為了連接小時和分鐘面板,在兩面板之間有一個小的PCB板,名為Dash,包含了2個LED作為二進制數(shù)字,這2個LED燈每隔一秒就會發(fā)光一次。

第4步:NodeMCU/ESP8266介紹

2b76c498-0e3b-11ed-ba43-dac502259ad0.png

ESP8266集成了一個32位Tensilica處理器,標(biāo)準的數(shù)字外圍接口。

我們的ESP8266具有板載Wi-Fi支持,通過它我們可以連上互聯(lián)網(wǎng)調(diào)整時間,而不需要任何RTC(實時時鐘)模塊。

這樣子的話可以減少連接,使整個項目變得更簡單一些。

第5步:代碼中支持的功能

2b85489c-0e3b-11ed-ba43-dac502259ad0.png

如果使用本文提供的代碼,那么我們可以在這個7段時鐘中增加2個額外的功能:

  1. 使用觸覺開關(guān)的溫度和濕度顯示

在13號針腳上添加一個DHT11傳感器,在12號針腳上添加一個觸覺按鈕,可以在屏幕上獲得攝氏或華氏的溫度值。

用一個10k電阻將按鈕的第12針腳連接到5V,另一端連接到GND。也就是說,當(dāng)按鈕針腳被拉到GND時,顯示器將顯示溫度讀數(shù)。如果沒有這個溫度傳感器,代碼也可以工作,所以如果你想讓項目簡單一點,也可以不需要這些連接。

  1. 使用引腳A0的LDR傳感器進行亮度控制
2b99f6f2-0e3b-11ed-ba43-dac502259ad0.png

通過在A0引腳上做一個電阻分壓器網(wǎng)絡(luò),添加一個帶有10k電阻的LDR傳感器,可以相應(yīng)地改變亮度。

白天的亮度高,晚上的亮度低。如果你不想要可調(diào)節(jié)亮度,這部分代碼也可以在沒有這些傳感器的情況下工作,它將會鎖定在默認設(shè)置。

第6步:視頻演示

第7步:7段時鐘

2bb13fb0-0e3b-11ed-ba43-dac502259ad0.gif2c12d07c-0e3b-11ed-ba43-dac502259ad0.png

現(xiàn)在,我們有4個面板和一個Dash(儀表盤)。

根據(jù)上面GIF圖來連接面板和儀表盤;將2個面板串聯(lián)在一起。

然后使用上面給出的原理圖連接NodeMCU。

第8步:代碼

  1. 首先使用庫來初始化代碼:
#include
#include
#include
#include
#include
#include
#include
  1. 定義所有像素、I/O引腳、傳感器引腳:
#definePIXEL_PER_SEGMENT2//NumberofLEDsineachSegment
#definePIXEL_DIGITS4//NumberofconnectedDigits
#definePIXEL_PIN2//GPIOPin
#definePIXEL_DASH1//Binarysegment
#defineLDR_PINA0//LDRpin
#defineDHT_PIN13//DHTSensorpin
#defineBUTTON_PIN12//Buttonpin

3. 對于時間格式,使用Wi-Fi把ESP8266連接到互聯(lián)網(wǎng):

WiFi.begin(ssid,password);
Serial.print("Connecting.");
while(WiFi.status()!=WL_CONNECTED)
  1. 時間設(shè)置:
voiddisp_Time(){
clearDisplay();
writeDigit(0,Hour/10);
writeDigit(1,Hour%10);
writeDigit(2,Minute/10);
writeDigit(3,Minute%10);
writeDigit(4,Second/10);
writeDigit(5,Second%10);
disp_Dash();

5. 面板上的顏色設(shè)置:

if(index==0||index==1)color=strip.Color(0,Brightness,0);
if(index==2||index==3)color=strip.Color(0,Brightness,0);
if(index==4||index==5)color=strip.Color(Brightness,0,0);

這只是一個簡單的介紹,同時代碼還有溫度和自動時間選項。

溫度模式可以通過數(shù)字針腳12的開關(guān)來選擇。

第9步:完整代碼

#include
#include
#include
#include
#include
#include
#include

#definePIXEL_PER_SEGMENT2//NumberofLEDsineachSegment
#definePIXEL_DIGITS4//NumberofconnectedDigits
#definePIXEL_PIN2//GPIOPin
#definePIXEL_DASH1//Binarysegment

#defineLDR_PINA0//LDRpin
#defineDHT_PIN13//DHTSensorpin
#defineBUTTON_PIN12//Buttonpin

//Uncommentthetypeofsensorinuse
#defineDHT_TYPEDHT11//DHT11
//#defineDHT_TYPEDHT22//DHT22(AM2302)
//#defineDHT_TYPEDHT21//DHT21(AM2301)

#defineTIME_FORMAT12//12=12hoursformat||24=24hoursformat

Adafruit_NeoPixelstrip=Adafruit_NeoPixel((PIXEL_PER_SEGMENT*7*PIXEL_DIGITS)+(PIXEL_DASH*2),PIXEL_PIN,NEO_GRB+NEO_KHZ800);
DHTdht(DHT_PIN,DHT_TYPE);

//setWi-FiSSIDandpassword
constchar*ssid="Hackster";
constchar*password="Sainisagar7294";

WiFiUDPntpUDP;
//'time.nist.gov'isused(defaultserver)with+1houroffset(3600seconds)60seconds(60000milliseconds)updateinterval
NTPClienttimeClient(ntpUDP,"time.nist.gov",19800,60000);//GMT+5:30:5*3600+30*60=19800

intperiod=2000;//Updatefrequency
unsignedlongtime_now=0;
intSecond,Minute,Hour;

//setdefaultbrightness
intBrightness=40;
//currenttemperature,updatedinloop()
intTemperature;

boolShow_Temp=false;

//Digitsarray
bytedigits[12]={
//abcdefg
0b1111110,//0
0b0110000,//1
0b1101101,//2
0b1111001,//3
0b0110011,//4
0b1011011,//5
0b1011111,//6
0b1110000,//7
0b1111111,//8
0b1110011,//9
0b1001110,//C
0b1000111,//F
};

//ClearallthePixels
voidclearDisplay(){
for(inti=0;i0,0,0));
}
strip.show();
}

voidsetup(){
Serial.begin(115200);
strip.begin();
strip.show();

dht.begin();
pinMode(BUTTON_PIN,INPUT);

WiFi.begin(ssid,password);
Serial.print("Connecting.");
while(WiFi.status()!=WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("connected");
timeClient.begin();
delay(10);
}

voidloop(){
if(WiFi.status()==WL_CONNECTED){//checkWiFiconnectionstatus
intsensor_val=analogRead(LDR_PIN);
Brightness=40;
timeClient.update();
intHours;
unsignedlongunix_epoch=timeClient.getEpochTime();//getUNIXEpochtime
Second=second(unix_epoch);//getseconds
Minute=minute(unix_epoch);//getminutes
Hours=hour(unix_epoch);//gethours

if(TIME_FORMAT==12){
if(Hours>12){
Hour=Hours-12;
}
else
Hour=Hours;
}
else
Hour=Hours;
}

if(digitalRead(BUTTON_PIN)==LOW){
Show_Temp=true;
}
else
Show_Temp=false;

if(Show_Temp){
Temperature=dht.readTemperature();
Serial.println(Temperature);
clearDisplay();
writeDigit(0,Temperature/10);
writeDigit(1,Temperature%10);
writeDigit(2,10);
strip.setPixelColor(28,strip.Color(Brightness,Brightness,Brightness));
strip.show();
delay(3000);
clearDisplay();
Show_Temp=false;
}
while(millis()>time_now+period){
time_now=millis();
disp_Time();//ShowTime
}
}

voiddisp_Time(){
clearDisplay();
writeDigit(0,Hour/10);
writeDigit(1,Hour%10);
writeDigit(2,Minute/10);
writeDigit(3,Minute%10);
writeDigit(4,Second/10);
writeDigit(5,Second%10);
disp_Dash();
strip.show();
}

voiddisp_Dash(){
intdot,dash;
for(inti=0;i2;i++){
dot=2*(PIXEL_PER_SEGMENT*7)+i;
for(intj=0;j2*(PIXEL_PER_SEGMENT*7)+2);
Second%2==0?strip.setPixelColor(dash,strip.Color(0,Brightness,0)):strip.setPixelColor(dash,strip.Color(0,Brightness,0));
}
}
}

voidwriteDigit(intindex,intval){
bytedigit=digits[val];
intmargin;
if(index==0||index==1)margin=0;
if(index==2||index==3)margin=1;
if(index==4||index==5)margin=2;
for(inti=6;i>=0;i--){
intoffset=index*(PIXEL_PER_SEGMENT*7)+i*PIXEL_PER_SEGMENT+margin*2;
uint32_tcolor;
if(digit&0x01!=0){
if(index==0||index==1)color=strip.Color(Brightness,0,Brightness);
if(index==2||index==3)color=strip.Color(Brightness,0,Brightness);
if(index==4||index==5)color=strip.Color(Brightness,0,0);
}
else
color=strip.Color(0,0,0);

for(intj=offset;j>1;
}
}

第10步:完整電路圖(高清版本文末下載)

2c25a1f2-0e3b-11ed-ba43-dac502259ad0.png2c38a4f0-0e3b-11ed-ba43-dac502259ad0.png

第11步:PCB設(shè)計(面板部分)

2c646e6e-0e3b-11ed-ba43-dac502259ad0.png

主要的PCB設(shè)計,用于顯示數(shù)字和其他字母。

點擊閱讀原文可以下載源文件。

第12步:PCB設(shè)計(Dash部分)

2c735316-0e3b-11ed-ba43-dac502259ad0.png2c8430aa-0e3b-11ed-ba43-dac502259ad0.png

第13步:故障排除

  • DIN總是與DOUT串聯(lián)在一起,如果接反了或從任何地方斷開了,整個裝置就會停止工作;

  • 按上面的圖連接Dash;

  • 確保所有的連接都焊接好,干焊會導(dǎo)致數(shù)據(jù)值和顏色的改變;

  • 在焊接時,不要把印刷電路板加熱太多,溫度保持在300度。

第14步:完整展示

2c91e2d6-0e3b-11ed-ba43-dac502259ad0.gif

2cd82f20-0e3b-11ed-ba43-dac502259ad0.png

喜歡大家喜歡這個項目!

審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23840

    瀏覽量

    673961
  • pcb
    pcb
    +關(guān)注

    關(guān)注

    4367

    文章

    23487

    瀏覽量

    409575
  • 穩(wěn)壓器
    +關(guān)注

    關(guān)注

    24

    文章

    4677

    瀏覽量

    96146

原文標(biāo)題:酷,用ESP8266做一個高顏值的RGB時鐘!

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    ESP8266燒錄與機智云鍵配網(wǎng)教程

    ESP8266模塊因其低成本和高性能,廣泛應(yīng)用于智能家居和工業(yè)自動化等領(lǐng)域。機智云平臺提供了鍵配網(wǎng)功能,簡化了設(shè)備的聯(lián)網(wǎng)過程。本教程將詳細介紹如何使用ESP8266進行燒錄,并通過機智云實現(xiàn)
    的頭像 發(fā)表于 05-24 11:04 ?460次閱讀
    <b class='flag-5'>ESP8266</b>燒錄與機智云<b class='flag-5'>一</b>鍵配網(wǎng)教程

    esp8266 at device做一個網(wǎng)頁服務(wù)器 ,運行webnet_test顯示錯誤怎么解決?

    我現(xiàn)在想用esp8266 at device 做一個網(wǎng)頁服務(wù)器 但是文件系統(tǒng)什么都做好了 運行webnet_test 顯示下邊的錯誤 查了論壇 說at不支持服務(wù)器 但是是20年的帖子了 現(xiàn)在有支持嗎 如果不支持是不是換rw007就可以了
    發(fā)表于 03-07 06:47

    ESP8266 太空人動畫的 OLED 顯示

    ESP8266 太空人動畫的 OLED 顯示
    的頭像 發(fā)表于 10-08 15:06 ?707次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動畫的 OLED 顯示

    STM32 ESP8266阿里云鏈接源碼

    stm32F103C8T6 ESP8266 物聯(lián)網(wǎng)電表 登錄阿里云
    發(fā)表于 08-29 14:21 ?9次下載

    esp32和esp8266代碼共用嗎

    本文將介紹ESP32和ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 、引言 隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來越多的智能設(shè)備開始進入我們的生活。其中,ESP32和
    的頭像 發(fā)表于 08-19 18:23 ?2340次閱讀

    esp8266esp32區(qū)別是什么

    以下是關(guān)于ESP8266ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用Tensilica L106 80MHz的處理
    的頭像 發(fā)表于 08-19 18:16 ?7329次閱讀

    ESP8266需要燒錄固件庫嘛

    需要。ESP8266款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項目中。它具有低成本、低功耗、易于編程等特點,因此受到了許多開發(fā)者的喜愛。在開發(fā)ESP8266
    的頭像 發(fā)表于 08-19 17:30 ?1873次閱讀

    esp8266不燒錄可以使用嗎

    ESP8266款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項目中。然而,如果不進行燒錄,ESP8266將無法正常工作。 1. ESP8266
    的頭像 發(fā)表于 08-19 17:28 ?1678次閱讀

    esp8266wifi模塊怎么連接手機

    ESP8266 WiFi模塊連接手機主要可以通過兩種方式實現(xiàn): 通過路由器連接(STA模式)和直接作為熱點連接(AP模式) 。以下是兩種連接方式的步驟: 、通過路由器連接(STA模式) 配置
    的頭像 發(fā)表于 08-19 17:27 ?7601次閱讀

    機智云ESP8266開發(fā)板RGB彩燈控件

    隨著智能家居技術(shù)的迅猛發(fā)展,RGB彩燈控件正逐漸成為現(xiàn)代家庭不可或缺的部分。在這潮流中,機智云(Gizwits)的ESP8266開發(fā)板RGB
    的頭像 發(fā)表于 08-09 08:10 ?806次閱讀
    機智云<b class='flag-5'>ESP8266</b>開發(fā)板<b class='flag-5'>RGB</b>彩燈控件

    ESP8266如何測量Beacon RSSI?

    我開始了項目,我想檢測具有 RSSI 的對象,該可以在接收的信標(biāo)幀的頭部找到.根據(jù)IEEE的說法,RSSI的測量是特定于供應(yīng)商的。
    發(fā)表于 07-19 11:31

    如何使用ESP8266創(chuàng)建WiFi熱點?

    我有第二張?zhí)峁┟赓M互聯(lián)網(wǎng)的SIM卡,但我無法在手機中使用它,因為我只有SIM卡插槽。 因此,我想使用ESP8266創(chuàng)建WiFi熱點
    發(fā)表于 07-19 11:29

    如何對ESP8266進行降頻?

    大家好,我正在做一個電池供電的物聯(lián)網(wǎng)項目,正在考慮使用 esp8266。我需要讓 esp 直運行,以不斷記錄來自我的傳感器的數(shù)據(jù)。不幸的是
    發(fā)表于 07-19 10:55

    可以使用esp8266處理實時視頻和音頻流到服務(wù)器到移動設(shè)備?

    各位專家,您好: 我是 esp8266 的新手,我正在做一個項目,我需要使用 esp8266 使用服務(wù)器到移動設(shè)備處理實時視頻和音頻流??梢允褂?e
    發(fā)表于 07-19 08:40

    是否可以創(chuàng)建包含多個esp8266模塊(esp-01)的網(wǎng)狀網(wǎng)絡(luò)?

    我想知道是否可以創(chuàng)建包含多個 esp8266 模塊(esp-01)的網(wǎng)狀網(wǎng)絡(luò)。如果是這樣,是否有任何指南/示例可以開始使用 esp8266
    發(fā)表于 07-19 08:31