Мазмуну:

Bluetooth термометр: 8 кадам
Bluetooth термометр: 8 кадам

Video: Bluetooth термометр: 8 кадам

Video: Bluetooth термометр: 8 кадам
Video: ч.3/3 Arduino ANDROID Bluetooth термометр temperature sensors DHT11 thermometer 2024, Ноябрь
Anonim
Bluetooth термометр
Bluetooth термометр
Bluetooth термометр
Bluetooth термометр
Bluetooth термометр
Bluetooth термометр

Бул көрсөтмө 100K термистордук зонддорду, Bluetooth модулун жана смартфонду колдонуп, жөнөкөй 2 каналдуу термометрдин жасалышын камтыйт. Bluetooth модулу - бул LightBlue Bean, ал модулду программалоо үчүн тааныш Arduino чөйрөсүн колдонуу менен Bluetooth Low Energy колдонмосун иштеп чыгууну жөнөкөйлөтүү үчүн иштелип чыккан.

Bluetooth модулунан температураны iPhone'го кантип алууну билүүгө аракет кылып, бир аз чалынып жүргөндөн кийин, мен EvoThings аттуу колдонмону таптым, ал долбоордун колдонмону иштеп чыгуу жагын бир топ жөнөкөйлөштүрдү. Менде iPhone колдонмосун иштеп чыгуу мүмкүнчүлүгүм чектелген Mac жок (мен таң калам!) Жана iOS жана Android үчүн платформаны өнүктүрүүнү колдогон жаңы Microsoft куралдарын чечмелөөгө убактым жок. Мен HTML5 стилиндеги бир нече колдонмолорду жасадым, бирок Bluetooth маалыматына жетүүнүн бирден -бир жолу - бул Кордова үчүн плагиндер, бул мен үчүн убакытка караганда кыйыныраак окшойт. EvoThings Bluetooth-а-iPhone көйгөйүн торт аянтчага айландырган абдан оңой куралдар топтомун камсыздайт. А мен тортту жакшы көрөм!

Жалпысынан мен Lightblue Bean менен EvoThingsтин айкалышын аз убакыттуу инвестиция менен абдан практикалык чечим деп таптым.

1 -кадам: Сизге керектүү нерселер

Сизге керектүү нерселер
Сизге керектүү нерселер
Сизге керектүү нерселер
Сизге керектүү нерселер
Сизге керектүү нерселер
Сизге керектүү нерселер

Мен термистордун суюктуктарга чөмүлүү үчүн мөөрлөнүшүн каалагандыктан, бир канал үчүн коммерциялык түрдө жеткиликтүү термистор зондун колдондум. Экинчи канал үчүн мен термистордон, 26 калибрлүү зымдан жана 3.5 мм гарнитуранын сайгычынан негизги иликтөө жасадым. Сиз каалаган термисторлорду колдонууга акысыз жана мисалы, термикалык өткөргүч эпоксиден жана пластикалык самандан/кофе аралаштыргычтардан өзүңүздүн зондуңузду жасай аласыз. Кийинкиси мен колдонгон нерселер - бул көрсөтмө тизме болуу үчүн эмес!

Аппараттык

  • 1 x 100K Thermistor зонддору. Модели Extech TP890. Булар ebay жана amazonто кеңири таралган.
  • 2 х 2.5мм стерео уячасы, ал Extech зонддорундагы 2.5мм сайгычка дал келет. Мен эски компьютерден 3,5 мм джекти тазаладым, ошондуктан Extech зондунун штепсельин кесип, ордуна 3,5 мм сайгычтарды койдум. Сиз муну алдын алууңуз керек, болгону 2,5 мм джекти колдонуңуз, же 2,5 мм-3,5 мм стерео адаптер сайгычын колдонуңуз.
  • 100K термистордук шуру плюс 26 ченегич зым плюс 3.5мм стерео штепсель, эгерде сиз өзүңүз иликтөө жасоону кааласаңыз. Болбосо, экинчи Extech зондун сатып алыңыз!
  • 1 х Lightblue Bean Дизайн аркылуу муштум менен. Бул Bluetooth модулу Arduino өнүктүрүү тактасы катары программаланат. Модуль бир аз кымбат, бирок ал көп татаалдыкты жок кылат. Алар карап чыгууга арзый турган кийинки муундагы түзмөк үчүн Kickstarter кампаниясын жүргүзүп жатышат.
  • 2 x 1/4W 100K каршылыгы, алар термисторлор үчүн чыңалуу чыңалуусун бөлүү үчүн колдонулат. Мен 5% резистор колдондум, бирок жогорку толеранттуу резисторлор негизинен температурага азыраак жана жакшы иштөөнү камсыз кылат. 1% бул үчүн жакшы сабырдуулук мааниси.
  • Лампочка жана ширетүүчү
  • Сым кескичтери жана 26 же 28 калибрдүү зымдын кичинекей узундугу.

Программалык камсыздоо жана программалык камсыздоо

  • Буурчакты программалоо үчүн Bean Loader тиркемеси керек болот. Мен терезелерди колдондум, андыктан бардык шилтемелер Windows конкреттүү болот. Bean менен баштоо үчүн керек болгон нерселердин баары, анын ичинде Arduino өзгөчөлүктөрү LightBlueBean сайтынан жеткиликтүү
  • Смартфон тиркемеси үчүн EvoThings жумушчу үстөлү бул жерде жеткиликтүү. Бардык "баштоо" документтери ошол жерде жеткиликтүү. Бул абдан жакшы документтештирилген.

2 -кадам: Райондук жана электрдик курулуш

Райондук жана электрдик курулуш
Райондук жана электрдик курулуш
Райондук жана электрдик курулуш
Райондук жана электрдик курулуш
Райондук жана электрдик курулуш
Райондук жана электрдик курулуш

Термистор - бул температурага көз каранды резистор. Extech иликтөөчүсү терс температура коэффициентине ээ, бул температура жогорулаган сайын каршылык төмөндөйт. Каршылыктын мааниси жөнөкөй схема менен өлчөнөт, ал бир бутунда термистор менен чыңалуу бөлүштүргүчтү түзөт, ал эми экинчи бутунда 100K туруктуу резистор. Бөлүнгөн чыңалуу буурчактын аналогдук кирүү каналына берилип, программалык камсыздоого тандалат.

Районду куруу үчүн мен эски сынган ПКдан 3,5 мм аудио джекти тазаладым. Мультиметр зонддун учуна жана биринчи тилкесине туура келген ПХБдагы эки чекитти аныктоо үчүн колдонулган. Сүрөттөрдө көрсөтүлгөндөй, зымдар аудио джектерге жана буурчакка кошулган. Аудио джектери эки тараптуу скотчтун жардамы менен буурчактын прототипине жабыштырылган. Мен колдонгон лента - бул автоматтык класстагы декал тасмасы, ал сүйрөө бөлүктөрүнүн ортосунда абдан бекем байланышты түзөт.

3 -кадам: Текшерүү коэффициенттери

Зонд коэффициенттери
Зонд коэффициенттери

Extech иликтөө канчалык кеңири таралса, Стейнхарт-Харт коэффициенттери мен таба ала турган жерде жарыяланбайт. Бактыга жараша, сиз берген 3 температура өлчөөсүнүн коэффициенттерин аныктоочу онлайн калькулятор бар.

Коэффициенттерге келүү үчүн мен колдонгон негизги процедура. Стиль боюнча эч кандай упай топтой албайм, бирок +/- 1 градус так айтууга жетиштүү деңгээлде жакшы (мен тараптан жалпы бармак) …. маалымдама термометринин жана мультиметрдин тактыгына жараша! Менин мультиметрим-көп жылдар мурун акча тар болуп турганда сатып алган арзан аты жок бирдик. Акча дагы эле тар жана ал дагы деле иштейт!

Калибрлөө үчүн бизге 3 температурадан үч каршылык көрсөткүчү керек.

  • Бир стакан сууга муз кошуп, температура турукташканга чейин аралаштырып тоңдурууга жакын. Турукташкандан кийин, зонддун каршылыгын жазуу үчүн мультиметрди жана температураны жазуу үчүн референттик термометрди колдонуңуз.
  • Эми зондду бөлмө температурасында бир стакан сууга салып, зондго суунун температурасы менен теңешүүгө уруксат бериңиз жана температураны маалымдама термометрине жана каршылык көрсөткүчүңүздү көп метрге жазыңыз.
  • Зондду бир стакан ысык сууга салып, каршылыкты жазыңыз.

    Температура Каршылык
    5.6 218K
    21.0 97.1K
    38.6 43.2

Бул процесстин баары тооктун жана жумуртканын жагдайы, анткени сизге температураны жазуу үчүн калибрленген термометр жана каршылыкты жазуу үчүн калибрленген көп метр керек. Бул жердеги каталар сиз жасаган температура өлчөөлөрүнүн так эместигине алып келет, бирок менин максатым үчүн +/- 1 градус мен керектүү нерседен көбүрөөк.

Бул жазылган баалуулуктарды веб -калькуляторго туташтыруу төмөнкүлөрдү берет:

Сүрөт
Сүрөт

Коэффициенттер (A, B жана C) Стенхарт-Харт теңдемесине киргизилип, температуранын үлгүлүү каршылык маанисинен четтетилет. Теңдеме катары аныкталат (булак: wikipedia.com)

Сүрөт
Сүрөт

Кайда T = Kelvin температурасы

A, B жана C-бул Штейнхарт-Харт теңдемелеринин коэффициенттери, биз R аныктоого аракет кылып жатабыз, бул Т температурасындагы каршылык.

Камтылган программа бул эсептөөнү аткарат.

4 -кадам: Камтылган программа

Камтылган программа
Камтылган программа
Камтылган программа
Камтылган программа

Термистордун чыңалуусу үлгү алынат, температурага которулат жана Bluetooth аркылуу смартфондо иштеген EvoThings колдонмосуна жөнөтүлөт.

Чыңалууну Биндин ичиндеги каршылык маанисине айландыруу үчүн жөнөкөй сызыктуу теңдеме колдонулат. Теңдеменин чыгарылышы сүрөт катары берилет. Тандалган маанини чыңалууга айландыруунун ордуна, ADC жана кирүү чыңалуусу бир эле батареянын чыңалуусуна таандык болгондуктан, биз чыңалуунун ордуна ADC маанисин колдоно алабыз. 10bit Bean ADC үчүн, батарейканын толук чыңалуусу 1023 ADC маанисине алып келет, андыктан биз бул маанини Vbat катары колдонобуз. Бөлүүчү резистордун чыныгы наркы маанилүү кароо болуп саналат. 100K бөлүүчү резистордун чыныгы баасын өлчөп, резистордун толеранттуулугунан улам керексиз ката булагына жол бербөө үчүн теңдемедеги өлчөнгөн маанини колдонуңуз.

Каршылыктын мааниси эсептелгенден кийин, каршылыктын мааниси Стейнхарт-Харт теңдемеси аркылуу температурага айландырылат. Бул теңдеме Википедияда кеңири сүрөттөлгөн.

Бизде 2 иликтөөчү болгондуктан, иликтөө функциясын C ++ классына кошуу акылга сыярлык.

Класс Стейнхарт-Харт теңдемелеринин коэффициенттерин, номиналдык бөлүүчү каршылык маанисин жана термистор туташкан аналогдук портту камтыйт. Бир ыкма, температура (), ADC маанисин каршылык маанисине айландырат, андан кийин Кельвиндеги температураны аныктоо үчүн Стейнхарт-Харт теңдемесин колдонот. Кайтаруу мааниси Цельсий боюнча маанини берүү үчүн эсептелген температурадан абсолюттук нөлдү (273.15K) алып салат.

Lightblue Beanдын күчү, Bluetoothдун бардык функциялары, негизинен, 1 эселенген коддун линиясында ишке ашырылгандыгынан көрүнүп турат.

Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) & температура [0], 12);

Ар бир тандалып алынган температуранын мааниси 4 байтты ээлеген калкыма менен көрсөтүлөт. Чийилген маалымат аймагы 20 байтты батыра алат. Биз алардын 12син гана колдонуп жатабыз. 5 тырмоо маалымат зонасы бар, андыктан сиз тырмоо маалыматын колдонуп 100 байтка чейин маалыматтарды өткөрүп бере аласыз.

Окуялардын негизги агымы:

  • Бизде Bluetooth байланышы бар -жогун текшериңиз
  • Эгер ошондой болсо, анда температуранын үлгүсүн алып, аларды чийилген маалымат аймагына жазыңыз
  • 200 мн уктаңыз жана циклди кайталаңыз.

Эгер туташпаса, микробағдарлама ATMEGA328P чипин көпкө чейин уктатат. Уйку цикли бийликти сактоо үчүн маанилүү. ATMEGA328P чипи аз кубат режимине өтөт жана LBM313 Bluetooth модулу үзгүлтүккө учураганга чейин ошол жерде калат. LBM313 ATMEGA328Pти ойготуу үчүн талап кылынган уктоо мезгилинин аягында же Bean менен Bluetooth байланышы болгондо үзгүлтүккө учуратат. WakeOnConnect функциясы орнотуу учурунда Bean.enableWakeOnConnect (чыныгы) деп ачык түрдө чалуу менен иштетилет ().

Белгилей кетчү нерсе, камтылган программа ар кандай BLE кардар тиркемеси менен иштейт. Кардардын кылышы керек болгон нерсе, маалымат банкынан температура байттарын сыйрып алып, аларды дисплей же иштетүү үчүн калкып турган чекиттүү сандарга кайра чогултуу. Мен үчүн эң оңой кардар колдонмосу EvoThingsти колдонуу болду.

5 -кадам: Smartphone колдонмосу

Смартфон колдонмосу
Смартфон колдонмосу

Evo Things үлгүдөгү колдонмо мен 3 каналдуу температураны өлчөөчү аппаратты бүтүрүү үчүн кошумча дисплей элементтерин кошуу үчүн аз гана күч жумшоо менен керектүү нерсеге абдан жакын.

EvoThings платформасынын орнотулушу жана негизги иштеши Evo Things веб -сайтында абдан жакшы документтештирилген, ошондуктан бул жерде кайталоонун эч кандай мааниси жок. Бул жерде мен Bluetooth коддоо маалымат аймагынан алынган температура маалыматынын 3 каналын көрсөтүү үчүн, алардын үлгү кодуна киргизген конкреттүү өзгөртүүлөрдү камтыйм.

EvoThings Workbenchти орноткондон кийин, Lightblue Bean мисалын бул жерден таба аласыз (Windows 64 бит компьютерлеринде):

ThisPC / Documents / EvothingsStudio_Win64_1. XX / Examples / Lightblue-bean-basic / app

Сиз index.html жана app.js файлдарын бул кадамга тиркелген файлдар менен алмаштыра аласыз. Жакаскрипт файлына киргизилген өзгөртүүлөр температуранын 3 өзгөрмөлүү маанисин тырмоо маалыматын түзөт жана HTML файлында түзүлгөн жаңы элементтердин ички HTMLин түзөт.

onDataReadSuccess функциясы (маалыматтар) {

var temperaturData = жаңы Float32Array (маалыматтар);

var байт = жаңы Uint8Array (маалыматтар);

var temperatur = temperatureData [0];

console.log ('Температура окулду:' + температура + 'C');

document.getElementById ('temperatureAmbient'). innerHTML = temperatureData [0].toFixed (2) + "C °";

document.getElementById ('temperature1'). innerHTML = temperatureData [1].toFixed (2) + "C °";

document.getElementById ('temperature2'). innerHTML = temperatureData [2].toFixed (2) + "C °";

}

6 -кадам: Каптоо

Корпус
Корпус
Корпус
Корпус
Корпус
Корпус
Корпус
Корпус

Корпус жөнөкөй 3D басылган кутуча. Дизайнды түзүү үчүн мен Cubify Design колдондум, бирок каалаган 3D моделдөө программасы жетиштүү болот. STL файлы сизге өзүңүздү басып чыгаруу үчүн тиркелет. Эгерде мен муну кайра жасашым керек болсо, мен дубалдарды азыркыга караганда бир аз калыңыраак кылып, тактайды кармап турган клиптин дизайнын өзгөртмөкмүн. Клиптер абдан оңой эле сынып калат, анткени 3D басылган катмарлардын басымы 3D басылган бөлүктөр үчүн эң начар багыт болуп саналат. Дубалдары абдан жука, андыктан снаряддын механизми алсыз тарапта. Мен кутучаны жабыш үчүн тунук лента колдондум, анткени дубалдары өтө начар болчу - жарашыктуу эмес, бирок ал иштейт!

7 -кадам: PC орнотуулары жана Bluetooth конфигурациясы

PC орнотуулары жана Bluetooth конфигурациясы
PC орнотуулары жана Bluetooth конфигурациясы

Bean үчүн камтылган программаны түзүү жана жүктөө цикли баары Bluetooth аркылуу жасалат. Бир убакта бир гана активдүү Bluetooth байланышы болушу мүмкүн. Bean Loader Windows App Storeдо жеткиликтүү

Мен жупташуу жана туташуу үчүн колдонгон негизги цикл (жана нерселер туура эмес болгондо оңдоо жана кайра туташуу) төмөнкүчө: Башкаруу панелинен;/Bluetooth орнотуулары, сиз төмөнкү экранды көрүшүңүз керек:

Сүрөт
Сүрөт

Акыры терезелер "Жупташууга даяр" деп кабарлайт. Бул жерде сиз Bean сөлөкөтүн чыкылдата аласыз жана бир нече секунддан кийин Windows сизден кодду киргизүүнү суранат. Төө буурчактын демейки коду 00000

Сүрөт
Сүрөт

Өткөрүүчү код туура киргизилген болсо, Windows түзмөк туура туташканын көрсөтөт. Буурчакты программалоо үчүн сиз ушул абалда болушуңуз керек.

Сүрөт
Сүрөт

Сиз жупташып, туташкандан кийин, Bean Loader программасын буурчакка жүктөө үчүн колдонуңуз. Мен муну көбүнчө ийгиликсиз деп таптым жана бул менин компьютериме жакындыгына байланыштуу болду. Сизге ылайыктуу жерди тапмайынча, буурчакты жылдырыңыз. Кээде эч нерсе иштебеген учурлар болот жана Bean Loader аппаратты кайра жупташтырууну сунуштайт. Адатта кайра жупташтыруу процессинен өтүү байланышты калыбына келтирет. Кайра жупташуудан мурун "Түзмөктү алып салуу" керек.

Сүрөт
Сүрөт

Bean Loader операциясы оңой жана алардын сайтында жакшы документтештирилген. Bean Loader ачык болгондо, "Программа" менюсунун пунктун тандап, диалогду ачуу үчүн, бул нускоочу программанын кадамында каралган Hex файлына өтүңүз.

Сүрөт
Сүрөт

Камтылган программа жүктөлгөндөн кийин, Bean Loader менен Bean Loader менен Bean жабдыктарынын ортосундагы байланыш үзүлүп калгандай кылып ЖАБЫҢЫЗ. Сиз бир эле учурда бир гана туташууңузга ээ боло аласыз. Эми EvoThings жумушчу тактасын ачыңыз жана смартфондо же планшетте EvoThings кардарын баштаңыз.

Сүрөт
Сүрөт

"Run" баскычын басканыңызда, EvoThings кардары термометр үчүн html баракчасын автоматтык түрдө жүктөйт. Буурчакка туташуу үчүн Туташуу баскычын чыкылдатыңыз жана көрсөтүлгөн температураларды көрүшүңүз керек. Ийгилик!

8 -кадам: Жыйынтык

Жыйынтык
Жыйынтык

Эгерде бардыгы туура курулган жана конфигурацияланган болсо, анда сизде 2 зонд менен температураны көзөмөлдөөгө, ошондой эле буурчактын өнүгүү тактасындагы BMA250 сенсорунун температурасын көзөмөлдөөгө мүмкүндүк бере турган жумушчу системаңыз болушу керек. EvoThings менен дагы көп нерселерди жасаса болот - мен жаңы эле бетти чийип алдым, андыктан бул экспериментти сизге калтырдым! Окуганыңыз үчүн рахмат! Эгерде бир нерсе туура эмес болуп калса, комментарий калтырыңыз, мен колумдан келген жардамымды берем.

Сунушталууда: