Orodha ya maudhui:
- Hatua ya 1: Nyenzo Inahitajika
- Hatua ya 2: Mchoro wa Mzunguko
- Hatua ya 3: Msimbo wa Arduino
- Hatua ya 4: 3d Kuchapa Msingi wa Taa
- Hatua ya 5: Kiambatisho kilichoongozwa
- Hatua ya 6: Ufungaji wa Taa
- Hatua ya 7: Sanidi
Video: Taa ya Smart (TCfD) - Upinde wa mvua + Kionyeshi cha Muziki: Hatua 7 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Mradi huu unafanywa kwa kozi ya Teknolojia ya Ubunifu wa Dhana huko TUDelft
Bidhaa ya Mwisho ni taa ya msingi ya ESP-32 na imeunganishwa na seva. Kwa mfano, taa ina kazi mbili; athari ya upinde wa mvua ambayo hutoa mwangaza wa rangi inayobadilisha kuelekea kwenye mazingira yake na pili mwoneko sauti ambapo saizi za LED "hucheza" kulingana na viwango vya sauti. Mfumo umeunganishwa na wifi na mtumiaji anaweza kuchagua ni athari gani anayotaka kutoka kwa taa kupitia WIFI.
Microchip ya ESP-32 ya bei rahisi hutupatia wasindikaji wenye nguvu, sensa ya ukumbi iliyojengwa, sensor ya joto, sensor ya kugusa na pia wifi na uwezo wa Bluetooth. Pamoja na hili, Wakati athari mbili tu zilichaguliwa kwa mradi huu, Maana ya taa hii "nzuri" haina kikomo. Ingetumika kuonyesha hali ya hewa kwa mtumiaji, au hali ya joto ya chumba, taa yenyewe inaweza kutenda kama kengele au inaweza kutoa mwangaza wa jua uliotuliza karibu na kitanda chako ikiiga kuchomoza kwa jua kwa uzoefu mzuri wa kuamka.
Hatua ya 1: Nyenzo Inahitajika
Arduino esp32
Sensor ya sauti
Njia nne za Bi-Directional Logic Level converter
Neopixel imesababisha 2m 60 iliyoongozwa / m
Waya za jumper
Cable ndogo ya USB na adapta
Uunganisho wa mtandao
Hatua ya 2: Mchoro wa Mzunguko
Mchoro wa mzunguko ulichorwa na mzunguko ulifanywa ipasavyo kama ilivyopewa
mchoro hapa chini.
Hatua ya 3: Msimbo wa Arduino
Hapa, kwanza nambari ya visasisho ilitengenezwa. Kisha, nambari mbili za mfano
; "Neoplxel RGBW nyota"; na "simpleWebServerWifi" ilibadilishwa na kuunganishwa ndani ya nambari ya kuona. Ingawa nambari hiyo bado ni buggy wakati mwingine (mwangaza ulioongozwa kwa nasibu mara kwa mara). Iteration ijayo ya nambari (mara tu tutakapopata muda wa kutosha) itasasishwa.
# pamoja
#ifdef _AVR_
# pamoja
# mwisho
usomaji wa hesabu = 5;
usomaji wa ndani [kusoma kwa hesabu];
int kusomaIndex = 0;
jumla = 0;
wastani = 0;
int micPin = 33;
#fafanua PIN 4
#fafanua NUM_LEDS 120
#fafanua NURU 100
Ukanda wa Adafruit_NeoPixel = Adafruit_NeoPixel (NUM_LEDS, PIN, NEO_GRBW + NEO_KHZ800);
byte neopix_gamma = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25, 25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36, 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89, 90, 92, 93, 95, 96, 98, 99, 101, 102, 104, 105, 107, 109, 110, 112, 114, 115, 117, 119, 120, 122, 124, 126, 127, 129, 131, 133, 135, 137, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 167, 169, 171, 173, 175, 177, 180, 182, 184, 186, 189, 191, 193, 196, 198, 200, 203, 205, 208, 210, 213, 215, 218, 220, 223, 225, 228, 231, 233, 236, 239, 241, 244, 247, 249, 252, 255 };
# pamoja
# pamoja
char ssid = "yakoNetwork"; // SSID mtandao wako (jina)
char pass = "neno la siri"; // nywila yako ya mtandao
int muhimuIndex = 0; // nambari yako ya ufunguo wa mtandao (inahitajika tu kwa WEP)
hali ya = WL_IDLE_STATUS;
Seva ya WiFiServer (80);
kuanzisha batili ()
{
Serial. Kuanza (9600); // kuanzisha mawasiliano ya serial
pinMode (9, OUTPUT); // weka hali ya pini ya LED
// angalia uwepo wa ngao:
ikiwa (WiFi.status () == WL_NO_SHIELD) {
Serial.println ("Ngao ya WiFi haipo");
wakati (kweli); // usiendelee
}
Kamba fv = WiFi.firmwareVersion ();
ikiwa (fv! = "1.1.0") {
Serial.println ("Tafadhali sasisha firmware");
}
// jaribio la kuungana na mtandao wa Wifi:
wakati (hadhi! = WL_CONNECTED) {
Serial.print ("Kujaribu kuungana na Mtandao uliopewa jina:");
Serial.println (ssid); // chapa jina la mtandao (SSID);
// Unganisha kwenye mtandao wa WPA / WPA2. Badilisha laini hii ikiwa unatumia mtandao wazi au wa WEP:
hadhi = WiFi. anza (ssid, pass);
// subiri sekunde 10 kwa unganisho:
kuchelewesha (10000);
}
kuanza server) (); // kuanza seva ya wavuti kwenye bandari 80
chapaWifiStatus (); // umeunganishwa sasa, kwa hivyo chapisha hali hiyo
}
{
Serial. Kuanza (9600);
strip.setBrightness (MWANGA);
strip. kuanza ();
onyesha (); // Anzisha saizi zote ili "kuzima"
pinMode (micPin, INPUT);
kwa (int thisReading = 0; hiiReading <numReadings; hiiReading ++) {
masomo [hiiKusoma] = 0;
}
}
upinde wa mvua utupu (uint8_t subiri) {
uint16_t i, j;
kwa (j = 0; j <256; j ++) {
kwa (i = 0; i
strip.setPixelColor (i, Gurudumu ((i + j) & 255));
}
onyesha ();
kuchelewesha (subiri);
}
}
Kionyeshi batili () {
jumla = jumla - usomaji [readIndex];
masomo [readIndex] = AnalogRead (micPin);
jumla = jumla + usomaji [readIndex];
somaIndex = somaIndex + 1;
ikiwa (somaIndex> = kusoma kwa nambari) {
somaIndex = 0;
}
wastani = jumla / hesabu za kusoma;
kuchelewesha (1);
int micpixel = (wastani-100) / 5;
Serial.println (micpixel);
ikiwa (micpixel> 0) {
{
kwa (int j = 0; j <= micpixel; j ++)
strip.setPixelColor (j, (micpixel * 2), 0, (90-micpixel), 0);
kwa (int j = micpixel; j <= NUM_LEDS; j ++)
strip.setPixelColor (j, 0, 0, 0, 0);
onyesha ();
}
}
ikiwa (kipaza sauti <0) {
kwa (int j = 0; j <= 20; j ++)
strip.setPixelColor (j, 0, 0, 50, 0);
onyesha ();
}
}
kitanzi batili () {
{
Mteja wa Wateja wa WiFi = seva haipatikani (); // sikiliza wateja wanaoingia
ikiwa (mteja) {// ikiwa unapata mteja, Serial.println ("mteja mpya"); // chapisha ujumbe nje ya bandari ya serial
Kamba ya sasaLine = ""; // fanya Kamba kushikilia data zinazoingia kutoka kwa mteja
wakati (mteja.meunganishwa ()) {// kitanzi wakati mteja ameunganishwa
ikiwa (mteja anapatikana ()) {// ikiwa kuna baiti za kusoma kutoka kwa mteja, char c = mteja.soma (); // soma ka, basi
Serial.write (c); // chapisha nje ya mfuatiliaji wa serial
ikiwa (c == '\ n') {// ikiwa baiti ni tabia mpya
// ikiwa laini ya sasa haina tupu, una herufi mbili mpya mfululizo.
// huo ndio mwisho wa ombi la mteja wa HTTP, kwa hivyo tuma jibu:
ikiwa (currentLine.length () == 0) {
// Vichwa vya HTTP kila wakati huanza na nambari ya kujibu (kwa mfano HTTP / 1.1 200 sawa)
// na aina ya yaliyomo ili mteja ajue kinachokuja, kisha laini tupu:
mteja.println ("HTTP / 1.1 200 OK");
mteja.println ("Aina ya Maudhui: maandishi / html");
mteja.println ();
// yaliyomo kwenye majibu ya HTTP ifuatavyo kichwa:
mteja.print ("Bonyeza hapa Washa athari ya Upinde wa mvua");
alama ya mteja ("Bonyeza hapa Washa Kionyeshi");
// Jibu la HTTP linaisha na laini nyingine tupu:
mteja.println ();
// kuvunja kitanzi cha wakati:
kuvunja;
} mwingine {// ikiwa una laini mpya, kisha wazi LineLine:
Mzunguko wa sasa = "";
}
} vingine ikiwa (c! = '\ r') {// ikiwa una kitu kingine chochote isipokuwa tabia ya kurudi kwa gari, LineLine + = c; // ongeza hadi mwisho wa LineLine
}
// Angalia kuona ikiwa ombi la mteja lilikuwa "GET / H" au "GET / L":
ikiwa (currentLine.endsWith ("GET / R")) {
Upinde wa mvua (10); // Athari ya Upinde wa mvua imewashwa
}
ikiwa (currentLine.endsWith ("GET / V")) {
Kionyeshi (); // Kionyeshi kimewashwa
}
}
}
// funga unganisho:
mteja.acha ();
Serial.println ("mteja ameondolewa");
}
}
uchapishaji batiliWifiStatus () {
// chapa SSID ya mtandao uliyoshikamana nayo:
Serial.print ("SSID:");
Serial.println (WiFi. SSID ());
// chapisha anwani yako ya IP ya ngao ya WiFi:
IPAddress ip = WiFi.localIP ();
Serial.print ("Anwani ya IP:");
Serial.println (ip);
// chapisha nguvu ya ishara iliyopokea:
rssi ndefu = WiFi. RSSI ();
Serial.print ("nguvu ya ishara (RSSI):");
Serial.print (rssi);
Serial.println ("dBm");
// chapisha mahali pa kwenda kwenye kivinjari:
Serial.print ( Ili kuona ukurasa huu ukifanya kazi, fungua kivinjari kwa
Serial.println (ip);
}
}
uint32_t Gurudumu (byte WheelPos) {
WheelPos = 255 - Magurudumu ya Magurudumu;
ikiwa (WheelPos <85) {
rangi ya kurudi (255 - WheelPos * 3, 0, WheelPos * 3, 0);
}
ikiwa (WheelPos <170) {
WheelPos - = 85;
kurudi strip. Rangi (0, WheelPos * 3, 255 - WheelPos * 3, 0);
}
WheelPos - = 170;
kurudi strip. Rangi (WheelPos * 3, 255 - WheelPos * 3, 0, 0);
}
uint8_t nyekundu (uint32_t c) {
kurudi (c >> 16);
}
uint8_t kijani (uint32_t c) {
kurudi (c >> 8);
}
uint8_t bluu (uint32_t c) {
kurudi (c);
}
}
//Serial.println (kipikseli);
}
Hatua ya 4: 3d Kuchapa Msingi wa Taa
Mfano wa 3d wa msingi wa taa ulipimwa, iliyoundwa na kuchapishwa na vipimo vikubwa vya kutosha kutoshea vifaa vyote vya umeme ndani ya sehemu ya msingi.
Hatua ya 5: Kiambatisho kilichoongozwa
Led's ziliviringishwa kwenye roll ya kadibodi na kuambatanishwa kwa kutumia mkanda wa pande mbili, shimo lilichimbwa sehemu ya chini kupitisha waya kupitia
Hatua ya 6: Ufungaji wa Taa
Ufungaji ulifanywa kwa kutafuta chupa ya uwazi na upana sawa kama msingi wa taa na urefu kama kiambatisho cha LED. Hii ilifunikwa na karatasi nene kwa mwangaza bora wa mwangaza. Vinginevyo, inawezekana kutumia glasi iliyohifadhiwa au mirija ya plastiki inayowaka kama uzio wa taa.
Hatua ya 7: Sanidi
Kila kitu kilikuwa kimeunganishwa pamoja na kukusanywa. Na taa ilikuwa tayari kwa upimaji !.
Ilipendekeza:
Kionyeshi cha Muziki wa Laser: Hatua 5
Kionyeshi cha Muziki wa Laser: Unajua jinsi nyimbo unazopenda zinasikika kama. Sasa unaweza kutengeneza kionyeshi na uone jinsi zinavyoonekana. Inafanya kazi kama hii: Unapocheza sauti kupitia spika yako, diaphragm ya spika hutetemeka. Mitetemo hii husogeza kioo kilichounganishwa na
Kionyeshi cha Muziki wa LightBox: Hatua 5 (na Picha)
Kionyeshi cha Muziki wa LightBox: LightBox hutumia maikrofoni ya simu yako au kompyuta kibao ili kuchanganua muziki ili kutoa muundo mzuri wa taa unaofanana na muziki. Anza tu programu, weka simu yako au kompyuta kibao mahali pengine karibu na chanzo cha sauti, na sanduku lako litaonekana
Spika ya Bluetooth Na Kionyeshi cha Muziki: Hatua 10 (na Picha)
Spika ya Bluetooth Pamoja na Kionyeshi cha Muziki Inaonekana ni nzuri sana na hufanya wakati wako wa kusikiliza wimbo uwe wa kushangaza zaidi. Unaweza kuamua ikiwa unataka kuwasha kiboreshaji au la
Kionyeshi cha Muziki (oscilloscope): Hatua 4 (na Picha)
Kionyeshi cha Muziki (oscilloscope): Kionyeshi hiki cha muziki hutoa njia bora ya kuongeza kina zaidi kwa uzoefu wa muziki wako, na ni rahisi kujenga. Inaweza pia kuwa muhimu kama oscilloscope halisi kwa matumizi mengine ambayo inahitajika ni:-crt wa zamani (karibu wote b & am
Kionyeshi cha Muziki wa Nixie Tube: Hatua 10 (na Picha)
Kionyeshi cha Muziki wa Nixie Tube: Kionyeshi cha muziki cha kudanganya kilichoongozwa na baa hizo zilizo juu ya iTunes. Mirija kumi na nne ya Kirusi IN-13 Nixie bargraph hutumiwa kama onyesho. Urefu ambao kila bomba la niki huwasha inawakilisha kiwango cha masafa fulani katika mu