Turinys:
- 1 žingsnis: sukurkite „Xbee“gavėjus
- 2 žingsnis: termometras
- 3 žingsnis: kas yra įtampos skirstytuvas?
- 4 žingsnis: kas yra termistorius?
- 5 žingsnis: siųstuvo grandinė
- 6 žingsnis: namai, namai, nėra diapazono
- 7 žingsnis: programinė įranga
- 8 veiksmas: kiti veiksmai
Video: „Tweet-A-Temp“: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:50
„Z0tZot“„Homebrew“eksperimentai Sekite daugiau autoriaus:
Mano vyresnysis sūnus (Minionas #1) ir aš pradėjome kurti „Tweet-A-Watt“ir nesilaikėme teisingų nurodymų, būtent abu imtuvus padarėme kaip standartinius imtuvus, o ne tik vieną, o po to pusę užpildėme antruoju „XBee“imtuvu. Na turėjome du pasirinkimus, arba nupjauti papildomas dalis, arba ką nors kita. Atsižvelgdama į tai, kad dar neradau „Kill-A-Watt“vietoje ir turėjau šį išorinį/vidinį termometrą, kurį norėjau kompiuterizuoti 10 metų, žinojau, ką turiu daryti: matuoti reikėjo naudoti termometrą mano karšto kubilo temperatūrą, o paskui ją tviteryje! Neseniai Minionui #1 daviau užduotį apibūdinti kubilo valdiklį be sienų. Jis paminėjo, kad galėtume padaryti jį belaidžiu, bet ne, tai kvaila … Man patinka, kai išsipildo 10 metų planas. Žr. „Twitter“
1 žingsnis: sukurkite „Xbee“gavėjus
Sukurkite du XBEE imtuvus. Aš naudoju Lady Ada imtuvus, bet koks imtuvas bus tinkamas. Jums reikės prieigos prie „XBee“VREF ir AD0 kaiščio. „Tweet-A-Watt“apgauti yra konfigūracija. Tiesą sakant, jūs nustatote vieną iš įrenginių pakartoti „Kill-A-Watt“reikšmes: ATMY = 1, SM = 4, ST = 3, SP = C8, D4 = 2, D0 = 2, IT = 13, IR = 1 Taip nustatomas adresas (1), nustatomas miego režimas, laikmatis ir laikotarpis, o tada 4 ir 2 kaiščiai nustatomi į analoginio įvesties režimą (2), kuris siunčia 0x13 (19 dešimtųjų) paketus, 1 ms tarp mėginių. Apgaulė čia yra analoginė įvestis. „XBee“galite nuskaityti mažą įtampą (0–5 V). „Tweet-A-Watt“nustatysite 4 ir 0 kaiščius, kad būtų siunčiami stiprintuvai ir voltai, išmatuoti „Kill-A-Watt“. Tiesą sakant, jis to nesiunčia, o mažą įtampą, išmatuotą „Kill-A-Watt“mikroschemomis, siunčia į kompiuterį prijungtą imtuvą „XBee“. Kompiuterio programinė įranga nuolat skaito gautus paketus ir perskaičiuoja tikrąją įtampą ir srovės stiprį, tada apskaičiuoja galingumą.
2 žingsnis: termometras
Aš nusipirkau du tokius patalpų/lauko termometrus maždaug prieš 10 metų iš namų sandėlio. Mane visada žavėjo tai, kad išorinis „termometras“buvo prijungtas prie pagrindinio įrenginio su standartiniu garso kištuku. Aš visada galvojau, ar galėčiau išmatuoti temperatūrą, prijungdamas jį prie kompiuterio mikrofono lizdo.
Pasirodo, greičiausiai galėčiau tai padaryti, bet tai būtų sudėtinga. Kištukas iš tikrųjų yra 3/32 colių lizdas, o ne 1/8 garso kištukas. Tai yra standartinis išorinių mikrofonų mobiliųjų telefonų kištukas. Tai sukėlė problemą, nes nepavyko rasti jokių kištukų nebuvau montuojamas ant paviršiaus. Turėjau nusipirkti „Radio Shack“rinkinį (2 USD), o tai labai atitolino projektą (patekti į lūšną nebuvo lengva). Išardžiau vieną įrenginį, kol staiga supratau, kaip kas veikia, tai buvo įtampos daliklis! Tai buvo akivaizdu, kai pagalvojau. Tai labai palengvino gyvenimą.
3 žingsnis: kas yra įtampos skirstytuvas?
Viena geriausių vietų sužinoti apie elektroniką yra Viskonsino internetiniai skirstytuvai, aprašyti tame puslapyje (apačioje dešinėje), arba galite apsilankyti „Voltage Wikipedia“puslapyje. Trumpai tariant, jei turite du nuoseklius rezistorius, įtampos kritimas kiekviename rezistoriuje yra proporcingai rezistoriaus dydžiui. Jei R (1) + R (2) grandinėje turite įtampą V, tada V = V (1) + V (2). Taigi, jei V = 3V ir V (2) = 2V, žinote, kad V (1) = 1V. Dabar Ohmo įstatymo pagrindas yra tas, kad srovė (I) yra V/R. Serijinėje grandinėje srovė yra vienoda visoje, todėl srovė per A ir B yra vienoda visai grandinei. Todėl I = V1/R1 = V2/R2. Mes žinome, kad V2 = V - V1, prijungus, matome V1/R1 = (V -V1)/R2. Sprendžiant gauname R2 = R1*(V-V1)/V1 Taigi, jei žinome, ar žinome V (1), V ir R (2), galime išspręsti R2. Jei turime R2, žinome Termistorius!
4 žingsnis: kas yra termistorius?
Termistorius yra rezistorius, kuris keičia atsparumą temperatūrai. Naudodami įtampos skirstytuvo metodus, kad nustatytumėte pasipriešinimą, galime pasakyti, kokia temperatūra yra. Problema ta, kad aš turiu keletą pigių termistorių 10 metų senumo gaminio korpuse. Kaip aš turėjau sukurti funkciją, kuri nuo pasipriešinimo pereitų prie temperatūros? Na, aš turiu termometrą, prie kurio jis prijungiamas! Taigi aš daug išmatavau. Nukopijavau temperatūrą ir tada išmatavau termistoriaus varžą. Aš įdėjau į šaldytuvą, tada įdėjau į šiltą vandenį. Vėliau turėjau laiko paimti kambario temperatūrą, nes turėjau laiko. Maniau, kad galėjau perskaityti „Wikipedia“plage gali pabandyti atspėti a ir b veiksnius, bet maniau, kad naudoju nelinijinį, galimą gedimo komponentą, kuris nebeatitiko jo gamybos specifikacijas. O aš tingus. Taigi visas vertes išmečiau į „Excel“ir tada nubraižiau. Iš pradžių nerimavau, kad turėjau prisiminti giliai tamsią matematiką, panašią į „mažiausio kvadrato formos“, kai sužinojau, kad „Excel“tai padarys aš! Akivaizdu, kad man trūksta grafiko spragų, tačiau gavau daug gerų duomenų apie karšto vandens temperatūrą (100–105 F). Tikrindamas kambario temperatūros diapazonus pastebėjau kažką, kas beveik daro mano darbą bevertį. Termometras „Precise Temp“pranešė apie 3–7 laipsnių klaidą tarp „vidaus“ir „lauko“, kai termistorius buvo colių atstumu! Dabar tai gali būti dėl to, kad sumaišiau ir suderinau termistorių tarp vienetų, bet lažinuosi, kad tai daugiau dėl 10 metų kokybės, 10 USD vertės prekės ir nepriklausomai nuo temperatūros „tikslumo“, man reikėjo tikslumo ir daugybės tų pačių bandymų diapazonas parodė labai artimus rezultatus per dienas. Ilgainiui greičiausiai prijungsiu termistorių prie vamzdžio, vedančio į sūkurinę vonią, todėl man vis tiek reikės poslinkio. Taigi, gaudamas „Excel“, kad būtų rodoma lygtis, aš jį įdėjau į kodą ir kol kas tai yra “Uždaryti."
5 žingsnis: siųstuvo grandinė
Siųstuvo grandinė yra paprasta. R2 pasirinkau 100 kOhm rezistorių, nes atrodė, kad jis atitiks grafiko diapazoną, o aš turėjau atsarginį, kad su „Minions“neištirpintų įvairių dalykų. Aš jungiu tai nuosekliai su termistoriumi per jungtį. Tada pridėjau bateriją. Aš praleidau 3 V prie VREF ir įtampos skirstytuvo viršaus bei į „Xbee +3V“įvestį. Įdėjau GND (Battery Negative) į GND įvestį ir į skirstytuvo apačią. Tada prijungiau AD0 (Volts in) prie įtampos skirstytuvo grandinės vidurio.
AD0 nuskaitys santykinę įtampą nuo VREF iki V (1). Taigi, mažėjant akumuliatoriui, santykinė įtampa turėtų mažėti. Galų gale aš maitinu įrenginį iš vietinio maitinimo šaltinio. Gatavas įrenginys veikė gerai, mes viską sujungiame su aligatoriaus spaustukais, todėl jis buvo trapus. Gavęs 3/32 colių jungtį, įdedu siųstuvą į atsitiktinį plastikinį kubilą, kurį turėjome (buvusį humuso konteinerį). Tai turėtų jį apsaugoti nuo oro sąlygų. Kadangi nusipirkau „panel mount“jungtis, tai buvo taip paprasta Kaip gręžti skylę plastike, kad prijungtumėte jungtį prie išorės, naudojant gana vandeniui nepralaidžią jungtį.
6 žingsnis: namai, namai, nėra diapazono
Vienas iš pirmųjų dalykų, kurį pastebėjome, buvo tas, kad diapazonas mirė siaubingai, kai tik su siųstuvu išėjome iš biuro. Mes bandėme iš kito kambario, o rezultatai buvo siaubingi. 1 pėdų atstumu jis išsprūdo. Atėjo laikas pažvelgti į sprendimus. Man pasirodė, kad kai mes bandėme, turėjome 4 „Wi -Fi“šaltinius per 5 pėdas, visi 2,5 GHz diapazone, kaip „Xbee“. Be to, mes visiškai „nesiekėme„ Xbee “. Ištyręs nusprendžiau, kad galėčiau nusipirkti galingesnį„ Xbee “radiją (apie 23 USD) arba pridėti antenas. Vienas iš dalykų, kurių man reikėjo, buvo geras diapazono testas.„ Digi “X-CTU programinė įranga turi įmontuotą „diapazono testą“, tačiau tai nieko nepadarė. Praleidau šiek tiek laiko bandydamas išsiaiškinti, kaip tai padaryti. Tiesą sakant, tai buvo padaryti taip lengviau, nei buvo pasakyta. Man tikrai nereikėjo X-CTU testo, tik „RX signalo stiprumo indikatoriaus“(RSSI) reikšmė. Pažvelgiau į „xbee.pyTweet-A-Watt“naudojimo būdus ir ten, 39 eilutėje: [code] self.rssi = p [3] [/code]. Tai reiškia, kad tai yra dalis Xbee grąžinimo vertės! (xb.rssi „wattcher“), todėl pakeičiau savo įsilaužimo derinimo eilutę: print str (counter) + ": RSSI:" + str (xb.rssi) + "| " + time.strftime (" %Y %m %d, %H: %M ") +", " +": įtampa: " + str (CalcualtedVolts) +" avgv " + str (avgv) +" termistorius: " + str (x) + "Temperatūra:" + str (temperatūra) Kuria tokia eilutė: 373: RSSI: 82 | 2009 04 26, 11:18,: Įtampa: 1.80100585938 avgv 593 Termistorius: 71.2276559865 Temperatūra: 78.6813444881 Galite taip pat žr. RSSI su apdorojimu iš Tomo Igoe puslapio. Nors norėsite pakeisti paketo ilgį (viršuje), nes „Processing“skundėsi dėl rašymo už paketo buferio dydžio pabaigos. Manau, kad turite būti didesnis nei 2 * paketo ilgis. Tomo kodas ieško ankstesnio paketo atgal, o tai reiškia, kad jei jis praleis „Ox7E“paketo indikatorių, jis gali veikti kurį laiką. Atsižvelgiant į tai, kad esu netoli išorinio matavimo diapazono krašto, tai gali įvykti kurį laiką. Aš nustatiau savo 600 ir jis nustojo man duoti pranešimą „error, invalidable serialEvent ()“. Tomo kodas tik spausdina naujausią nustatymą, kuris man nėra toks naudingas. Mano derinimo eilutė leiskite man sekti keičiasi, nes Minionas #1 stebisi. Dabar turėjome gerą būdą išmatuoti, daugiau nei „Ei tėtis, mes turime paketą“, atėjo laikas išbandyti keletą namų alaus antenos idėjų! Naudodamasis idėjomis iš https://www.usbwifi.orconhosting.net.nz/ sužinojau, kad „Corner Cube“matavo dB sumažėjimą, nors praktiškai neatrodė, kad tai padėtų sujungti atjungtą porą. „Vegatible Steamer“iš tikrųjų geriausiai siekė ir vėl prisijungė. „USB Wifi“sąranka labai skiriasi nuo kai kurių kitų žmonių. Garlaivių viduryje yra stiebas, kuris leidžia lengvai įdėti „XBee“. Pho dubuo su alavo folija taip pat atrodo daug žadantis (nors mes tik vėliau pašalinome alavo foliją ir laikėme ją vietoje). Mes taip pat bandėme padaryti parabolę su lenkiančia karštų ratų „trasa“, tačiau neatrodė, kad tai padėtų. Viena iš problemų yra ta, kad bandėme išoriniame diapazono krašte. Dauguma 2,5 Ghz radijo imtuvų, ypač „XBee“, naudoja „Spectrum“spektrą, o tai reiškia, kad jie gali „nesinchronizuoti“, o tada „XBee“programinė įranga prieš suveikimą ieško „XBee“paketo pradžios. Tai reiškia, kad gausite „viskas arba nieko“efektą. Radijas arba užsifiksuoja, arba ne. Kartais atrodo, kad tau pasisekė, bet iš tikrųjų tu esi šių diapazonų antena ir gali turėti įtakos rezultatams. Aš nuėjau nusipirkti dviejų garlaivių, bet tada sužinojau, kad garlaivio kaina iš vietinio prekybos centro buvo 10 USD, o už 2 garlaivių kainą galiu įsigyti galingesnį „XBee“. Taigi aš apžiūrėjau dar keletą vietų ir radau gana gilų sietelį, kuris pasirodė dar geresnis. Buvo $ 7. Manau, kad gilumas yra svarbus, nes aš esu perduodančių dalykų gale, jis atspindi daugiau signalo (pagal pastabas https://www.usbwifi.orconhosting.net.nz/number13.jpg). Pabaigos rezultatai yra tai, kad su daržovių garintuvu viename gale (turi būti pakeista) ir sieteliu kitame, turiu signalą apie 20-30 m, nuo vidinio biuro, per 3-4 sienas, iki kubilo! Pro patarimas: prisiminkite Jei norite, kad sietelis būtų įvestas, jei norite 1) Jūsų sutuoktinis pasiliks ir (arba) 2) Norite vėliau garuose virtų daržovių. Asmeniškai man patinka daržovių garintuvo išvaizda, panaši į žiedlapius.
7 žingsnis: programinė įranga
Pradėdamas nuo „Tweet-A-Wattsoftware“, pradėjau įsilaužti į python kodą. Dažniausiai man reikėjo pašalinti vatų konversiją, istorijos funkcijas, o tada reikėjo pridėti skaičių padalijimo iš 0 apsaugos („Tweet-A-Watt“numato, kad paketai turės duomenų). Tada į programą pridėjau formulę iš „Excel“ir išbandžiau. Nustatiau, kad būtų išspausdintas kiekvienas paketas, ir aš turiu daug derinimo kode, kad galėčiau išspręsti problemas. Bandžiau, kad grafinė dalis veiktų, bet aš atsisakiau, o tai mane atveda į: Python Rant: tai antras kartas bandė atlikti didelį projektą „Python“. Nepavyko, kad visos bibliotekų priklausomybės ir baziniai paketai veiktų mažiau nei per 20 valandų „Windows“, „Windows 64“, „Ubuntu“ir „Fedora“. Pagaliau turėjau beveik viską sukurti nuo nulio ir net tada kai kurios funkcijos neveikė. Aš išbandžiau 2.4, 2.5, 2.6 ir įvairias 3. X versijas, o tada kiekvienos bibliotekos versijas, kurios savo ruožtu priklausė nuo kitų paketų. Nors kiti gali šmeižti kalbą, aš pastebėjau, kad tik įdiegimas, net naudojant daugelį „lengvų montuotojų“, geriausiu atveju yra bauginantis! Apskaičiavęs temperatūrą, sureguliavau 1 laipsnį, nes negalėjau patikėti karšta vonia buvo 106F. Aš tikrai netikiu, kad taip pat yra 105. Tada sukūriau ataskaitų teikimo ir „Twitter“logiką. Kadangi nesu tikras, ar gausiu paketus, ar gerus paketus, nusprendžiau pranešti apie temperatūrą kartą per valandą. Manau, kad kurį laiką tai sumažinsiu. Šiuo metu scenarijus veikia kaip įprastas vartotojas. Galų gale norėčiau jį perkelti į paslaugą.
8 veiksmas: kiti veiksmai
Yra keletas akivaizdžių tolesnių veiksmų:
1) Pakeiskite daržovių sietelį a. Minionams reikia savo daržovių! b. Tas vis tiek buvo senas. 2) Padėkite kubilo anteną po deniu a. Denis gali padaryti jį dar „toliau“, tačiau tai leis padaryti bjauresnę sąranką. b. Tada galiu paleisti termistorių į apačią ir rasti geresnę vietą. 3) Pridėkite daugiau jutiklių a. Lengviausias yra lauko temperatūros jutiklis. b. Tačiau nėra jokios priežasties, kodėl negalėtume aptikti valdymo skydelių, ypač šilumos jutiklio, kuris stebuklingai paliečiamas, kai vaikai baigiasi. c. Kiti oro jutikliai (vėjas, drėgmė ir kt.) D. Būtų malonu kontroliuoti kubilą ir galėčiau išjungti šildymą didžiąją nakties ir dienos dalį. 4) Galiu koreguoti programinę įrangą a. Minionai jau nori geresnių pranešimų apie temperatūrą. b. Turėtume sugebėti atsakyti į atsakymus ir DM. c. Turėčiau tweetuoti protingiau (rečiau nei kartą per valandą). d. Aš suplanavau ir kitų įdomių dalykų.
Rekomenduojamas:
„Arduino“automobilių atbulinės eigos įspėjimo sistema - Žingsniai po žingsnio: 4 žingsniai
„Arduino“automobilių atbulinės eigos įspėjimo sistema | Žingsniai po žingsnio: Šiame projekte aš suprojektuosiu paprastą „Arduino“automobilio atbulinės eigos stovėjimo jutiklio grandinę, naudodamas „Arduino UNO“ir ultragarsinį jutiklį „HC-SR04“. Ši „Arduino“pagrįsta automobilio atbulinės eigos įspėjimo sistema gali būti naudojama autonominei navigacijai, robotų diapazonui ir kitiems diapazonams
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su nuotraukomis): 6 žingsniai
„Arduino Halloween Edition“- „Zombies“iššokantis ekranas (žingsniai su paveikslėliais): norite Helovino metu išgąsdinti savo draugus ir sukelti riksmą? O gal tiesiog norite padaryti gerą išdaigą? Šis iššokantis „Zombies“ekranas gali tai padaryti! Šioje instrukcijoje aš išmokysiu jus, kaip lengvai padaryti iššokančius zombius naudojant „Arduino“. HC-SR0
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): 8 žingsniai
Akustinė levitacija naudojant „Arduino Uno“žingsnis po žingsnio (8 žingsniai): ultragarsiniai garso keitikliai L298N nuolatinės srovės adapterio maitinimo šaltinis su vyrišku nuolatinės srovės kaiščiu „Arduino UNOBreadboard“Kaip tai veikia: pirmiausia įkelkite kodą į „Arduino Uno“(tai yra mikrovaldiklis su skaitmeniniu ir analoginiai prievadai kodui konvertuoti (C ++)
„Tweet“OLED SPI ekrane ir dalelių fotonų plokštėje: 6 žingsniai
„Tweet“OLED SPI ekrane ir dalelių fotonų lentoje: Sveiki visi. Ši paprasta pamoka parodys mums, kaip skaityti mūsų „tweets“naudojant IFTTT ir fotonų lentą. Jums gali tekti pamatyti šį nurodymą
Alexa Skill: perskaitykite naujausią „Tweet“(šiuo atveju - Dievo): 6 žingsniai
„Alexa Skill“: perskaitykite naujausią „Tweet“(šiuo atveju - Dievo): aš sukūriau „Alexa“įgūdį, kad galėčiau perskaityti " Dievo naujausią tviterį " - turinys, ty iš @TweetOfGod, 5 milijonų+ abonentų paskyra, sukurta buvusio „Daily Show“komedijų rašytojo. Jis naudoja IFTTT (jei tai tada tai), „Google“skaičiuoklę ir