Reklāma

Cilvēki ir dabiski ieprogrammēti mosties līdz ar saullēktu; diemžēl mūsdienu dzīvi diktē patvaļīgs pulkstenis, bieži liekot mums mosties, kad nav dabiskas gaismas. Šodien mēs izgatavosim saullēkta modinātāju, kas maigi un lēnām modinās jūs, neizmantojot aizvainojošu trokšņu radīšanas mašīnu.

Ja saullēkta modinātāja pagatavošana jums ir mazliet par daudz, pārbaudiet šos iPhone un Android lietotnes Izmantojiet šīs lietotnes, lai palīdzētu labāk gulēt [Android un iOS]Pēc drudžainas dienas labākais, ko varat darīt, ir iegūt izdevīgu miega daudzumu. Vienmēr parādās jauni pētījumi, kas pierāda, cik svarīgs cilvēkam ir miegs, uzlabojot ... Lasīt vairāk kas atklāj kad vislabāk pamodināt jūs ar ķermeņa kustībām Vai lietotne var reāli palīdzēt gulēt labāk?Es vienmēr esmu bijis mazliet miega eksperimentētājs, lielu savas dzīves daļu turējis rūpīgu sapņu dienasgrāmatu un pēc iespējas vairāk pētījis miega jautājumus. Ir ... Lasīt vairāk , pārliecinoties, ka jūs nevelciet prom no šī satriecošā sapņa, bet tā vietā pamodieties justies gaišs un atsvaidzināts - viņi tiešām strādā.

instagram viewer

Projekta izklāsts

Projekta galvenā daļa būs aptuveni 5 metru garā LED sloksnes gaisma, kas izlikta ap gultu. Mēs tos darbināsim ar ārēju 12 voltu barošanas avotu, kas tiks pārslēgts, izmantojot dažus MOSFET N tranzistorus. Šīs daļas iestatījumi būs identiski dinamiskā apgaismojuma sistēma Izveidojiet pats savu dinamisko apkārtnes apgaismojumu multivides centramJa datorā vai multivides centrā skatāties daudz filmu, esmu pārliecināts, ka esat saskāries ar apgaismojuma dilemmu; vai tu pilnībā izslēdz visas gaismas? Vai jūs uzturat viņiem pilnu sprādzienu? Vai arī ... Lasīt vairāk Es būvēju iepriekš.

Laiks būs problēma - tā kā tas ir prototips, es iestatīšu Arduino atskaiti, kad vien tas tiek atiestatīts. Teorētiski mums katru dienu vajadzētu zaudēt tikai sekundi vai divas, bet ideālā gadījumā mēs iekļautu “reālā laika pulksteņa” mikroshēmu, lai to izdarītu uzticamāk. Saullēkta trauksme sāksies 30 minūtes pirms pamošanās laika un lēnām palielinās izejas līmeni, līdz tas būs pie 100% spilgtuma - ar to vajadzētu pietikt, lai mūs pamodinātu, lai gan ir ieteicams turpināt lietot parasto modinātāju, līdz jūsu ķermenis ir pieradis tā.

Šajā projektā es iekļaušu arī nakts gaismu, kas nosaka kustību un aktivizē diskrētu zemu līmeni gaisma zem gultas ar 3 minūšu pārtraukumu, atsevišķi no LED gaismām, jo ​​tie pamodinātu gan manu sievu, gan es augšā. Zemgultas apgaismojums būs komerciāls tīkla bloks, tāpēc es iesprādzēšu releju kontaktligzdas iekšpusē, lai to ieslēgtu un izslēgtu. Ja jums nekādā gadījumā nav ērti strādāt ar 110–240 V maiņstrāvas strāvu (un tas parasti ir labs noteikums ir), pēc tam pieslēdziet 433 MHz bezvadu raidītāju ar komutācijas ligzdām, kā norādīts Aveņu Pi Arduino mājas automatizācijas projekts Mājas automatizācijas rokasgrāmata ar Aveņu Pi un ArduinoMājas automatizācijas tirgus ir pārpludināts ar dārgām patērētāju sistēmām, savstarpēji nesavienojamām un dārgām instalēšanai. Ja jums ir Aveņu Pi un Arduino, jūs to pašu varat sasniegt ... Lasīt vairāk .

Detaļu saraksts un shēma

  • Arduino
  • RGB LED sloksnes lukturu komplekts
  • 12 voltu barošanas avots
  • 3 x MOSFET N tranzistori (es izmantoju STP16NF06FP tipu)
  • Releju un strāvas kontaktligzdu vai bezvadu vadāmās kontaktligzdas un piemērotu raidītāju
  • Jūsu nakts apgaismojums (parastais elektrotīkls ar spraudni ir kārtībā)
  • PIR kustības sensors (HC-SR501) vai SC-04 sonārs (nav tik efektīvs)
  • Gaismas sensors
  • Projekta kods - bet izlasiet tālāk, lai pārliecinātos, ka saprotat, kā visu pielāgot.

Šeit ir visa shēma.

saullēkta trauksmes signāla shēma

Releja vadīšana

Piezīme: Izlaidiet šo sadaļu, ja vēlaties RGB gaismas izmantot arī kā nakts gaismu - tas ir īpaši paredzēts, lai ieslēgtu atsevišķu elektrotīkla apgaismojumu.

Lai ieslēgtu strāvas padevi, relejam būs nepieciešams spriegums - 110 V vai 240 V maiņstrāva atkarībā no jūsu dzīvesvietas - un vairāk nekā kopējais strāvas stiprums, kuru mainīsit. To, ko esmu izmantojis no šī sensoru komplekta (atruna: tas ir mans veikals) ir 250 VAC / 10A, tāpēc mums vajadzētu būt drošiem. Relejiem ir a com pieslēgvieta, parasti centrā, kurai jābūt savienotai ar dzīvu vadu, kas nonāk kontaktdakšā; pēc tam pievienojiet kontaktligzdas tiešo spaili (parasti atvērts). Man nevajadzēja jums teikt, ka nedariet to, ja tas ir pievienots kontaktligzdai, vai arī jūs mirsit. Ja jūs baidāties sajaukties ar strāvas padevi, tā vietā izmantojiet bezvadu komutācijas kontaktligzdas.

releju vadi

Zemes un neitrālajiem kabeļiem jāiet tieši pie kontaktligzdas un tie nepieskaras relejam. Jums, iespējams, nav zemes līnijas ASV. Tas ir jūsu pienākums zināt vietējā apgabala vadu krāsu kodus - ja savādāk mājās nevarētu pieslēgt parasto kontaktligzdu vai pārvilkt kontaktdakšu, nemēģiniet iegult releju vienā!

Lai pārbaudītu, pieslēdziet releja signāla tapu līdz 12, pēc tam palaidiet vienkāršu mirgošanas programmu, kas modificēta darbam ar 12. tapu, nevis 13, kā paredzēts. Kontaktligzdai vajadzētu ieslēgties un izslēgties ik pēc dažām sekundēm. Iemesls, kāpēc es neizmantoju 13. piespraudi, ir tāpēc, ka augšupielādes procesa laikā borta gaismas diode ātri iedegas, lai norādītu uz sērijas darbību, kas arī aktivizētu releju.

Laika pareizība

Laika un pulksteņa funkcijas ir sarežģītas, ja nav piekļuves tīkla savienojumam vai tam nav speciālas piekļuves Reāllaika pulkstenis (tajās ietilpst savas baterijas, lai pulkstenis darbotos pat tad, ja galvenajam Arduino nav enerģijas). Lai izmaksas nebūtu zemas, es gatavojas krāpties. Es grūti kodēšu Arduino sākuma laiku, lai sāktu tā atpakaļskaitīšanu; laika grafiks tāpēc būs relatīvs ar šo sākuma laiku. Katru 24 stundu laikā pulkstenis tiks atiestatīts. Zemāk redzamais pulksteņa funkcijas kods pārliecinās par globālajiem mainīgajiem pašreizējaisMillis un pašreizējaisMinutes ir pareizi katru dienu. Arduino nevajadzētu zaudēt vairāk kā dažas sekundes ik pēc 45 dienām; tomēr šis grūti kodētais laika noteikšanas stils ir diezgan ierobežots, jo strāvas padeves pārtraukšana vai nejauša atiestatīšana sagraus visu, tāpēc šī noteikti ir viena no jomām, kuru varētu uzlabot. Ja laiks iziet no sinhronizācijas, vienkārši atiestatiet Arduino iestatītajā sākuma laikā.

Kodam jābūt viegli uztveramam.

void clock () {if (millis ()> = previousMillis + 86400000) {// ir pagājusi pilna diena, atiestatiet pulksteni; iepriekšējaisMillis + = 86400000; } currentMillis = millis () - previousMillis; // tas uztur mūsu currentMillis vienādu katru dienu currentMinutes = (currentMillis / 1000) / 60; }

Nakts gaismas funkcija

Galvenās cilpas esmu sadalījis atšķirīgās funkcijās, lai tās būtu vieglāk lasīt, noņemt vai pielāgot. nakts gaisma() funkcija darbojas tikai starp tām stundām, kad Arduino tika atiestatīts (es pieņemu, ka jūs, iespējams, to darīsit pirms gulētiešanas vai ap to, kad ir tumšs), un līdz brīdim, kad būs jāsāk trauksma saullēktā. Sākumā es biju mēģinājis izmantot no gaismas atkarīgu rezistoru, taču tie nav ļoti jutīgi pret zilo gaismu (kas dažreiz ir krāsa, kuru izmantoju naktsgaismā), un ir grūti kalibrējami pareizi. Jebkurā gadījumā pulksteņa izmantošana ir saprātīgāka. Mēs izmantosim globālo pašreizējaisMinutes mainīgais, kas katru dienu tiek atiestatīts.

PIR sensors var būt nedaudz kutelīgs, ja jūs nekad to vēl neesat izmantojis, lai gan to vadīt nav grūti - jūs atradīsit RKC, GND, un ĀRĀ skaidri marķēts aizmugurē. Arī tev ir divi mainīgi rezistori; viens ar marķējumu RX nosaka diapazonu (līdz aptuveni 7 m), bet cits ar marķējumu TX nosaka kavēšanos. Kavējums ir 5 sekundes pie tā zemākā iestatījuma (pilnībā pretēji pulksteņrādītāja virzienam), un tas nozīmē, ka jebkura momentāna kustība no sensora iedarbina vismaz 5 sekundes “ieslēgtā” stāvoklī. Tomēr tas arī nosaka kavēšanos starp aktīvajiem stāvokļiem - tātad, ja ir pagājušas 5 sekundes un nav kustības atklāts, sensors vismaz 5 sekundes sūta zemu signālu, pat ja tajā laikā notiek kustība periods. Ja aizkavēšanās ir iestatīta patiešām augsta - apmēram 30 sekundes, var šķist, ka sensors ir bojāts.

pir-sensors

Ja jūs gulējat viens pats un nedomājat izmantot tos pašus RGB strāvas lukturus gan saullēkta trauksmei, gan nakts apgaismojumam, jums vajadzētu būt iespējai pietiekami viegli pielāgot kodu.

tukšs naktsgaisma () {// Strādā tikai starp atiestatīšanas stundām -> saullēktu. if (currentMinutes 

Trauksme saullēktā

Vienkāršības labad dziļi dzeltenā saullēktā izmantošu RGB krāsas vērtību 255 255,0 - šādā veidā abu krāsu kanālu solis būs vienāds. Ja uzskatāt, ka tas pamodina jūs pārāk agri, apsveriet iespēju sākt ar tumši sarkanu un izbalēt dzeltenas vai baltas krāsas virzienā. Palielinājums, kuru esmu izmantojis, ir tikai lineārs - iespējams, vēlēsities izpētīt, izmantojot spilgtāku vērtību dabiskāku līkni.

Funkcija ir vienkārša - tā nosaka, cik daudz gaismas jāpalielina par katru sekundi, piemēram, pēc 30 minūšu laika tas ir pilnā spilgtumā; tad reizina, ka pēc dažām sekundēm tas pašlaik atrodas saullēktā. Ja tas jau ir ar pilnu spilgtumu, tas paliek ieslēgts vēl 10 minūtes, lai pārliecinātos, ka esat gatavs (un, ja jūs joprojām neesat augšā, jums, iespējams, ir jābūt rezerves trauksmes signālam).

void sunrisealarm () {// katru sekundi 30 minūšu laikā jāpalielina krāsas vērtība par: pludiņa palielinājums = (pludiņš) 255 / (30 * 60); // sarkans 255, zaļš 255 dod mums pilnīgu dzeltenumu, ja (currentMinutes> = minutesUntilSunrise) {// sākas saullēkts! float currentVal = (pludiņš) ((currentMillis / 1000) - (minutesUntilSunrise * 60)) * palielinājums; Serial.print ("Saullēkta pašreizējā vērtība:"); Serial.println (currentVal); // uzbraukšanas laikā uzrakstiet minūtes X spilgtuma pieauguma pašreizējo vērtību, ja (currentVal <255) {analogWrite (RED, currentVal); analogWrite (GREEN, currentVal); } cits, ja (currentMinutes - minutesUntilSunrise <40) {// kad būsim pilnā gaismā, turiet apgaismojumu ieslēgtu 10 minūtes ilgāk analogWrite (RED, 255); analogWrite (GREEN, 255); } cits {// pēc tam mēs tos atkopējam analogWrite izslēgtā stāvoklī (RED, 0); analogWrite (GREEN, 0); } } }

Kļūdas un nākotnes jauninājumi

Es to izmantoju pēdējās pāris nedēļas, un tas patiešām palīdz pamodināt justies vairāk atsvaidzinātai un pienācīgā laikā; arī naktslampiņa darbojas patiešām labi. Tomēr tā nav perfekta, tāpēc šeit ir aprakstītas dažas lietas, kurām nepieciešams darbs un celtniecības laikā gūtās atziņas.

saullēkta trauksme

Veidojot šo projektu, es saskāros ar daudzām problēmām, kas saistītas ar lielu skaitu cilvēku, tāpēc, ja plānojat mainīt kodu, lūdzu, atcerieties to. C valodā, jūsu mainīgo ievadīšana ir ļoti svarīga - cipars ne vienmēr ir tikai cipars. Piemēram, neparakstīts ilgi mainīgie būtu jāizmanto, lai saglabātu ļoti lielus skaitļus, piemēram, ar kuriem mēs strādājam, runājot par milisekundēm, bet pat tādu skaitli, kas ir mazs, 60 000, nevar uzglabāt kā parastu veselu skaitli (neparakstīts int būtu bijis pieņemams līdz 68 000). Lieta ir tā, lasīt par jūsu mainīgo veidiem ja izmantojat lielus skaitļus un ja atrodat nepāra kļūdas, tas, iespējams, ir tāpēc, ka vienam no jūsu mainīgajiem nav pietiekami daudz bitu!

Es esmu atradis arī problēmu ar ļoti zemām spilgtuma sprieguma noplūdēm - kā rezultātā mazākais gaismas daudzums tiek izstarots pat tad, ja digitalWrite (RED, 0) tiek izstarots signāls - es nedomāju, ka tā ir aparatūras problēma ar sloksnēm, jo ​​tās lieliski darbojas ar oficiālajiem kontrolieriem. Ja kāds var atrisināt šo problēmu, kas parādīta zemāk, es būtu ļoti pateicīgs. Es esmu mēģinājis nolaist rezistorus un ierobežot izejas spriegumu no Arduino tapām. Man, iespējams, būs jāpievieno vienkārša strāvas pārslēgšanas ķēde, lai LED sloksnei tiktu piegādāts tikai spriegums, kad tas tiešām ir nepieciešams; vai arī tas var būt kļūdains MOSFET.

gaismas noplūde

Turpmākam darbam es ceru pievienot IR uztvērēju un pavairot dažas oriģinālā kontroliera funkcijas - vietnē vismazāk spēja mainīt krāsas kā vispārējas lietošanas gaismu, jo šobrīd šis projekts pārvērš sloksni īpašā naktī viegls. Es pat varētu pievienot automātisku 30 minūšu noildzes funkciju.

Vai esat to izmēģinājis, veicis uzlabojumus vai guvis kādas citas idejas? Paziņojiet man komentāros!

Džeimsam ir mākslīgā intelekta bakalaura grāds, un viņš ir sertificēts CompTIA A + un Network +. Viņš ir galvenais MakeUseOf izstrādātājs un brīvo laiku pavada, spēlējot VR peintbolu un galda spēles. Kopš mazotnes viņš būvēja datorus.