Съдържание:
- Стъпка 1: Изградете Xbee Recievers
- Стъпка 2: Термометърът
- Стъпка 3: Какво е делител на напрежение?
- Стъпка 4: Какво е термистор?
- Стъпка 5: Верига на предавателя
- Стъпка 6: Дом, дом, няма обхват
- Стъпка 7: Софтуер
- Стъпка 8: Следващи стъпки
Видео: Tweet-A-Temp: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:55
От домашните експерименти на Z0tZot Следвайте още от автора:
Моят най-голям син (Minion #1) и аз започнахме да изграждаме Tweet-A-Watt и не успяхме да следваме правилно указанията, а именно направихме и двата приемника като стандартни приемници вместо само един и след това наполовина попълваме втория приемник XBee. имахме два избора, или да отрежем допълнителните части, или нещо друго. Като се има предвид, че все още не съм намерил локално Kill-A-Watt и имах този външен/вътрешен термометър, който исках да компютъризирам от 10 години, знаех какво трябва да направя: трябваше да използвам термометъра за измерване температурата на моята гореща вана и след това я чуруликах! Наскоро бях дал задача на Minion #1 да опише контролер за гореща вана без граници. Той спомена, че можем да го направим безжичен, но не, това е глупаво … Обичам, когато 10-годишният план се осъществи. Вижте го в Twitter
Стъпка 1: Изградете Xbee Recievers
Изградете два XBEE приемника. Използвах приемниците от Lady Ada, всеки приемник ще го направи. Ще ви е необходим достъп до пина VREF и AD0 на XBee. Трикът към Tweet-A-Watt е конфигурацията. На практика настройвате едно от устройствата да повтаря стойностите от Kill-A-Watt с: ATMY = 1, SM = 4, ST = 3, SP = C8, D4 = 2, D0 = 2, IT = 13, IR = 1 Това задава адреса (1), задава режима на заспиване, таймера и периода и след това задава щифтове 4 и 2 в режим на аналогов вход (2), който ще изпраща 0x13 (19 десетични) пакета, 1 ms между пробите. Трикът тук е аналоговият вход. Можете да четете малки напрежения (0-5V) директно от XBee. В Tweet-A-Watt бихте задали щифтове 4 и 0 за изпращане на усилвателите и волта, измерени с Kill-A-Watt. В действителност той не изпраща това, той изпраща малкото напрежение, измерено от чиповете в Kill-A-Watt, към приемника XBee, който е свързан към компютър. Софтуерът на компютъра непрекъснато чете получените пакети и преизчислява действителното напрежение и ампераж и след това изчислява мощността.
Стъпка 2: Термометърът
Купих два от тези вътрешни/външни термометри преди около 10 години от домашно депо. Винаги съм бил очарован, че външният "термометър" е включен към базовото устройство с нещо, което прилича на стандартен аудио щепсел. Винаги съм се чудил дали мога да измервам температурата, като го включа в жак за микрофон на компютър.
Оказа се, че вероятно бих могъл да го направя, но би било трудно. Щепселът всъщност е 3/32 жак, вместо аудио жак 1/8. Това е стандартният щепсел за мобилни телефони за външни микрофони. Това създаде проблем, тъй като не можах да намеря никакви микрофонни щепсели в купчините си боклуци, които не трябваше да се монтират на повърхността. Трябваше да си купя комплект от Radio Shack ($ 2), което добави голямо забавяне към проекта (стигането до барака не беше лесно). Разделих едно устройство, преди изведнъж да разбера как работи това, това беше делител на напрежение! Това беше очевидно, след като се замислих. Това направи живота много лесен.
Стъпка 3: Какво е делител на напрежение?
Едно от най -добрите места за научаване на електрониката е Уисконсин Онлайн разделители, обяснени на тази страница (долу вдясно), или можете да посетите страницата на Уикипедия Напрежение. Накратко, ако имате два резистора последователно, спадът на напрежението на всеки резистор е пропорционално на размера на резистора. Ако имате напрежение V във верига от R (1) + R (2), тогава V = V (1) + V (2). Така че, ако V = 3V и V (2) = 2V, знаете, че V (1) = 1 V. Сега основата на закона на Ом е, че токът (I) е V/R. В последователна верига токът е еднакъв навсякъде, така че токът през A и B е еднакъв за цялата верига. Следователно I = V1/R1 = V2/R2. Знаем V2 = V - V1, Включвайки се, виждаме V1/R1 = (V -V1)/R2. Решавайки, получаваме R2 = R1*(V-V1)/V1 Така че ако знаем, ако знаем V (1), V и R (2), можем да решим за R2. Ако имаме R2, знаем стойността на Термистор!
Стъпка 4: Какво е термистор?
Термисторът е резистор, който променя съпротивлението с температурата. Използвайки техниките от делителя на напрежение за определяне на съпротивлението, можем да кажем каква е температурата. Проблемът е, че имам евтин термистор в корпус от 10 годишен продукт. Как трябваше да създам функция, която да премине от съпротивление към температура? Е, имам термометър, към който се включва! Така че измерих много. Копирах температурата и след това измерих съпротивлението на термистора. Сложих го в хладилника, след което го поставих в топла вода. По-късно щях да грабна стайните температури, тъй като имах време. Предполагах, че можех да прочета таблицата на Уикипедия, да се опитам да позная факторите a и b, но предположих, че използвам нелинеен, възможен неуспешен компонент, който вече не съответства на производството спецификации. О, и аз съм мързелив. Затова изхвърлих всички стойности в Excel и след това го начертах. Първоначално се притесних, че трябва да си спомня дълбоката тъмна математика на нещо като "най -малко на квадрат", когато открих, че Excell ще направи това за Явно ми липсват пропуски на графиката, но имам много добри данни за температурите на горещите вани (100-105F). Докато проверявах диапазоните на стайните температури, забелязах нещо, което почти прави работата ми безполезна. Термометърът „Precise Temp“съобщава за грешка от 3-7 градуса между „вътрешен“и „външен“, когато термисторът е на сантиметри разстояние! Това може да се дължи на това, че смесвах и съпоставях термистор между единици, но се обзалагам, че това се дължи повече на качеството на 10 -годишно дете, артикул от $ 10 и Независимо от "точността" на температурата, имах нужда от прецизност и множество тестове на едно и също диапазонът показа много близки резултати в продължение на дни. В дългосрочен план най -вероятно ще прикрепя термистора към тръба, водеща към горещата вана, така че така или иначе ще се нуждая от отместване. Така че, като накарам Excel да покаже уравнението, след това го поставих в кода и засега е така " близо."
Стъпка 5: Верига на предавателя
Схемата на предавателя е проста. Избрах резистор от 100 kOhm за R2, тъй като изглеждаше, че ще отговаря на диапазона от графиката, и имах резервен от разпаяването на различни неща с Minions. Свързвам това последователно с термистора чрез конектор. След това добавих батерия. I Ran 3 V към VREF и горната част на делителя на напрежението и към входа Xbee +3V. Поставих GND (отрицателен акумулатор) към входа GND и в долната част на разделителя. След това свързах AD0 (Volts in) към средата на веригата на делителя на напрежение.
AD0 ще отчете относително напрежение от VREF до V (1). Тъй като батерията намалява, относителното напрежение трябва да спадне същото. В крайна сметка ще захранвам устройството с локален източник на захранване. Готовият блок работи добре, свързваме всичко с алигаторни клипове, което го направи крехко. След като получих женска 3/32 "връзка, поставям предавателя в произволна пластмасова вана, която имахме (бивш хумусов контейнер). Това трябва да го предпази от атмосферни влияния. Тъй като купих конектори за" монтаж на панел ", беше толкова просто като пробиване на дупка в пластмасата, за да се добави конектора отвън с доста водонепроницаема връзка. След като имахме това, беше време да тестваме.
Стъпка 6: Дом, дом, няма обхват
Едно от първите неща, които забелязахме, беше, че диапазонът умря ужасна смърт веднага щом излязохме от офиса с предавателя. Опитахме от друга стая и резултатите бяха ужасни. На 1 фут от него излезе. Време е да разгледаме решенията. Хрумна ми, че когато тествахме, имахме 4 източника на Wi Fi в рамките на 5 фута, всички в диапазона от 2.5 Ghz като Xbee. Също така изобщо не се насочихме към Xbee. След проучване реших, че мога да си купя по-мощно радио Xbee (около 23 долара) или да добавя антени. Едно от нещата, от които се нуждаех, беше добър тест за обхват. Софтуерът X-CTU от Digi има вграден "Range Test", но той не направи нищо. Прекарах известно време, опитвайки се да разбера как да го накарам да работи. Всъщност това беше толкова по-лесно, колкото беше казано. Всъщност нямах нужда от теста X-CTU, просто Стойност на „Индикатор за силата на сигнала на RX“(RSSI). Погледнах в xbee.pyTweet-A-Watt и точно там, ред 39: [код] self.rssi = p [3] [/код] Което означава, че е част на връщащата стойност на Xbee! (xb.rssi в wattcher), затова промених ред за отстраняване на грешки за моя хак: print str (counter) + ": RSSI:" + str (xb.rssi) + "| " + time.strftime (" %Y %m %d, %H: %M ") +", " +": Напрежение: " + str (CalcualtedVolts) +" avgv " + str (avgv) +" Thermistor: " + str (x) + "Температура:" + str (Температура) Което произвежда ред като този: 373: RSSI: 82 | 2009 04 26, 11:18,: Напрежение: 1.80100585938 avgv 593 Термистор: 71.2276559865 Температура: 78.6813444881 Можете също вижте RSSI с обработка, от страницата на Tom's Igoe. Макар че ще искате да промените дължината на пакета (в горната част), тъй като Processing се оплаква от писане след края на размера на буфера на пакета. Вярвам, че трябва да сте по -голям от 2 * дължина на пакета. Кодът на Том гледа назад за предходен пакет, което означава, че ако пропусне индикатора за пакети Ox7E, може да работи за известно време. Като се има предвид, че съм близо до външния ръб на обхвата на измерване, това може да се случи за известно време. 600 и той спря да ми дава съобщението "грешка, деактивиране на serialEvent ()". Кодът на Том просто отпечатва най -новата настройка, която не е толкова полезна за мен. Моят ред за отстраняване на грешки нека да проследя се променя, докато Миньон №1 се чуди наоколо. Сега имахме добър начин да измерим, повече от „хей, татко, имаме пакет“, беше време да изпробваме някои идеи за антена за домашно приготвяне! Използвайки идеи от https://www.usbwifi.orconhosting.net.nz/ Установих, че ъгловият куб измерва намаляване на dB, въпреки че на практика не изглежда да помага за свързването на разединена двойка. Vegatible Steamer всъщност беше най -добрият в прицелването и повторното свързване. Настройката на USB Wifi е много по -различна от някои други хора. Параходите имат стебло в средата, което улеснява поставянето на XBee. Обемът с фолио с фолио също изглежда обещаващ (макар че току -що отстранихме калайското фолио и го задържахме на място). Опитахме се също така да направим парабола с огъващо парче горещи колела „следа“, но това не помогна. Един от проблемите е, че тествахме на външния ръб на диапазона. Повечето 2.5Ghz радио, особено XBee, използват разпространение Spectrum, което означава, че те могат да вземат, но за "синхронизиране" и след това софтуерът XBee търси началото на XBee пакет преди задействане. Това означава, че ако получите ефект на всичко или нищо. Или радиостанциите се заключват помежду си, или не. Понякога изглежда като късмет, но всъщност вие сте антена в тези обхвати и може да повлияете на резултатите. Отидох да си купя два парахода, но след това установих, че цената на един параход от местния супермаркет е 10 долара, а за цената на 2 парахода мога да взема по -мощен XBee. Затова погледнах още няколко места и намерих доста дълбока цедка, която се оказа още по -добра. Беше 7 долара. Вярвам, че дълбочината е важна, тъй като съм в предаващия край на нещата, тя отразява повече от сигнала (според бележките в https://www.usbwifi.orconhosting.net.nz/number13.jpg). Крайни резултати, е, че със зеленчуков параход в единия край (за смяна) и цедка от другия, имам сигнал на около 20-30 м, от вътрешен офис, през 3-4 стени, до горещата вана! Професионален съвет: Запомнете за да вкарате цедката, ако искате 1) Вашият съпруг да остане и/или 2) Искате зеленчуци, приготвени на пара по-късно. Лично аз харесвам външния вид на зеленчуковата пара, подобен на венчелистчетата.
Стъпка 7: Софтуер
Започвайки с Tweet-A-Wattsoftware, започнах да хаквам кода на python. Най-вече трябваше да премахна преобразуването на Watts, функциите за история и след това трябваше да добавя редица разделяне на 0 защити (Tweet-A-Watt предполага, че пакетите ще имат данни). След това добавих формулата от Excel в програмата и тествах. Настроих го да отпечатва всеки пакет и имам много отстраняване на грешки в кода, за да уловя проблеми. Опитах се да накарам графичната част да работи, но се отказах, което ме доведе до: Python Rant: Това е вторият път, когато имам се опита да направи голям проект в Python. Не можах да накарам всички библиотечни зависимости и базови пакети да работят за по -малко от 20 часа в Windows, Windows 64, Ubuntu и Fedora. Накрая трябваше да изградя почти всичко от нулата и дори тогава някои функции не работеха. Опитах 2.4, 2.5, 2.6 и различни версии 3. X, а след това версии на всяка библиотека, която от своя страна имаше зависимости от други пакети. Докато други може да имат глупости срещу езика, открих, че просто инсталирам, дори използвайки много от "лесните инсталатори", за да бъдат обезсърчаващи в най -добрия случай! След като изчислих температурите, направих 1 градусова настройка, защото не можех да повярвам на горещата вана беше при 106F. Наистина не вярвам, че е и на 105. След това туирах логиката на отчитане и Twitter. Тъй като не съм сигурен дали ще получа пакети или добри пакети, избрах да докладвам температурата веднъж на час. Предполагам, че ще го намаля след известно време. В момента скриптът работи като нормален потребител. В крайна сметка ще искам да го преместя в сервиз.
Стъпка 8: Следващи стъпки
Има няколко очевидни следващи стъпки:
1) Сменете цедката за зеленчуци a. Миньоните се нуждаят от зеленчуците си! б. Този все пак беше стар. 2) Поставете антена за гореща вана под палубата a. Палубата може да го направи още по -далеч, но ще позволи по -грозна настройка. б. След това мога да пусна термистора до долната страна и да намеря по -добро място. 3) Добавете още сензори a. Най -лесният е сензор за външна температура. б. Но няма причина да не открием състоянието на контролните панели, особено топлинния сензор, който магически се докосва, когато децата свършат. ° С. Други сензори за времето (вятър, влажност и т.н.) d. Би било хубаво да контролирам горещата вана и бих могъл да изключвам отоплението през по -голямата част от нощта и деня. 4) Мога да настроя софтуера a. Миньоните вече искат по -добри съобщения за температура. б. Трябва да можем да отговаряме на отговорите и на съобщенията за съобщения. ° С. Трябва да туитвам по -интелигентно (по -малко от веднъж на час). д. Планирам някои други забавни неща.
Препоръчано:
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: Понякога вибрациите са причина за сериозни проблеми в много приложения. От валове и лагери на машината до работа на твърдия диск, вибрациите причиняват повреда на машината, ранна подмяна, ниска производителност и нанасят сериозен удар върху точността. Мониторинг
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: 3 стъпки
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: КУПЕТЕ (щракнете върху теста, за да закупите/посетете уеб страницата) STM32F767ZISUPPORTED SOFTWARE · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKBENCH използва се за програмиране на STM микроконтролери
Как да направите 4G LTE двойна BiQuade антена Лесни стъпки: 3 стъпки
Как да направя 4G LTE двойна BiQuade антена лесни стъпки: През повечето време, с което се сблъсквах, нямам добра сила на сигнала за ежедневните ми работи. Така. Търся и опитвам различни видове антени, но не работи. След загубено време намерих антена, която се надявам да направя и изпробвам, защото тя не градивен принцип
Дизайн на играта с бързо движение в 5 стъпки: 5 стъпки
Дизайн на игра с Flick в 5 стъпки: Flick е наистина прост начин да направите игра, особено нещо като пъзел, визуален роман или приключенска игра
Система за предупреждение за паркиране на автомобил Arduino - Стъпки по стъпка: 4 стъпки
Система за предупреждение за паркиране на автомобил Arduino | Стъпки по стъпка: В този проект ще проектирам обикновена верига за сензори за паркиране на автомобил Arduino, използвайки Arduino UNO и HC-SR04 ултразвуков сензор. Тази базирана на Arduino система за предупреждение за автомобил за заден ход може да се използва за автономна навигация, измерване на роботи и други обхвати