女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

用ESP8266做一個(gè)高顏值的RGB時(shí)鐘的項(xiàng)目

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

掃碼添加小助手

加入工程師交流群

給大家分享一個(gè)用ESP8266做一個(gè)高顏值的RGB時(shí)鐘的項(xiàng)目!

這個(gè)時(shí)鐘還具有自動(dòng)亮度控制功能并配備了溫度傳感器

材料準(zhǔn)備

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

第1步: 準(zhǔn)備工作

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

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

Neo Pixel有不同的smd封裝,這個(gè)項(xiàng)目使用的是Ws2812b-5050 mini RGB。

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

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

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

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

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

每段有2個(gè)LED,整個(gè)面板總共有14個(gè)LED。

我們需要4個(gè)面板來(lái)顯示時(shí)間(2個(gè)顯示小時(shí),2個(gè)顯示分鐘)。

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

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

第3步:連接儀表盤(pán)

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

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

第4步:NodeMCU/ESP8266介紹

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

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

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

這樣子的話可以減少連接,使整個(gè)項(xiàng)目變得更簡(jiǎn)單一些。

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

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

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

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

在13號(hào)針腳上添加一個(gè)DHT11傳感器,在12號(hào)針腳上添加一個(gè)觸覺(jué)按鈕,可以在屏幕上獲得攝氏或華氏的溫度值。

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

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

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

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

第6步:視頻演示

第7步:7段時(shí)鐘

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

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

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

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

第8步:代碼

  1. 首先使用庫(kù)來(lái)初始化代碼:
#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. 對(duì)于時(shí)間格式,使用Wi-Fi把ESP8266連接到互聯(lián)網(wǎng):

WiFi.begin(ssid,password);
Serial.print("Connecting.");
while(WiFi.status()!=WL_CONNECTED)
  1. 時(shí)間設(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);

這只是一個(gè)簡(jiǎn)單的介紹,同時(shí)代碼還有溫度和自動(dòng)時(shí)間選項(xiàng)。

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

第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è)計(jì)(面板部分)

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

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

點(diǎn)擊閱讀原文可以下載源文件

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

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

第13步:故障排除

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

  • 按上面的圖連接Dash;

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

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

第14步:完整展示

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

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

喜歡大家喜歡這個(gè)項(xiàng)目!

審核編輯 :李倩


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

    關(guān)注

    242

    文章

    23780

    瀏覽量

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

    關(guān)注

    4361

    文章

    23452

    瀏覽量

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

    關(guān)注

    24

    文章

    4631

    瀏覽量

    95802

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

    ESP8266 太空人動(dòng)畫(huà)的 OLED 顯示

    ESP8266 太空人動(dòng)畫(huà)的 OLED 顯示
    的頭像 發(fā)表于 10-08 15:06 ?670次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動(dòng)畫(huà)的 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ā)展,越來(lái)越多的智能設(shè)備開(kāi)始進(jìn)入我們的生活。其中,ESP32和
    的頭像 發(fā)表于 08-19 18:23 ?2261次閱讀

    esp8266esp32區(qū)別是什么

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

    ESP8266需要燒錄固件庫(kù)嘛

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

    esp8266不燒錄可以使用嗎

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

    esp8266wifi模塊怎么連接手機(jī)

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

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

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

    如何對(duì)ESP8266進(jìn)行降頻?

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

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

    各位專(zhuān)家,您好: 我是 esp8266 的新手,我正在做一個(gè)項(xiàng)目,我需要使用 esp8266 使用服務(wù)器到移動(dòng)設(shè)備處理實(shí)時(shí)視頻和音頻流。可以使用 e
    發(fā)表于 07-19 08:40

    ESP8266EX開(kāi)發(fā)板PWM非常不準(zhǔn)確是怎么回事?

    , 根據(jù)開(kāi)發(fā)文檔,我編譯下載了 IOT_DEMO 控制燈的案例到開(kāi)發(fā)板,實(shí)際測(cè)試 RGB 的3路PWM控制信號(hào),發(fā)現(xiàn)PWM非常不準(zhǔn)確(根據(jù)代碼查看估計(jì)ESP8266可能不是硬件PWM定時(shí)器實(shí)現(xiàn)
    發(fā)表于 07-12 08:16

    開(kāi)源項(xiàng)目ESP8266 DIY會(huì)爬墻的無(wú)人機(jī)

    的錢(qián)買(mǎi)飛行控制器,怎么辦?我們可以自己做一個(gè)自己的飛行控制器。之前作者已經(jīng)做了個(gè)非常便宜的飛行控制器,使用了ESP8266,鏈接如下:<span>https
    發(fā)表于 07-04 09:22

    ESP8266網(wǎng)絡(luò)天氣時(shí)鐘OLED顯示

    基于ESP8266實(shí)現(xiàn)網(wǎng)絡(luò)獲取天氣和時(shí)鐘并OLED顯示
    的頭像 發(fā)表于 06-28 04:46 ?2150次閱讀
    <b class='flag-5'>ESP8266</b>網(wǎng)絡(luò)天氣<b class='flag-5'>時(shí)鐘</b>OLED顯示