Агуулгын хүснэгт:
- Алхам 1: Танд хэрэгтэй зүйлс
- Алхам 2: Цахилгаан хэлхээ ба цахилгаан хийц
- Алхам 3: Туршилтын коэффициент
- Алхам 4: Firmware
- Алхам 5: Ухаалаг гар утасны програм
- Алхам 6: Хашаа
- Алхам 7: PC -ийн тохиргоо ба Bluetooth тохиргоо
- Алхам 8: Дүгнэлт
Видео: Bluetooth термометр: 8 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Энэхүү зааварчилгаанд 100K термистор датчик, Bluetooth модуль, ухаалаг гар утас ашиглан энгийн 2 сувагтай термометрийг хэрхэн хийх талаар дэлгэрэнгүй тайлбарласан болно. Bluetooth модуль нь LightBlue Bean бөгөөд модулийг програмчлахдаа танил Arduino орчныг ашиглан Bluetooth багатай эрчим хүчний аппликейшнийг хялбаршуулахад зориулагдсан болно.
Блютүүт модулийн температурын өгөгдлийг iPhone руу хэрхэн яаж дамжуулахыг олж мэдэхийг оролдож байгаад хэсэг хугацааны турш бүдэрч байсны дараа EvoThings нэртэй апп олсон нь төслийн хөгжүүлэлтийн талыг ихээхэн хөнгөвчилсөн юм. Надад iPhone програм хөгжүүлэх чадварыг хязгаарлаж буй Mac байхгүй (би гайхаж байна!), IOS болон Android -д зориулсан платформ хөгжүүлэлтийг дэмждэг Microsoft -ийн шинэ хэрэгслүүдийг тайлах цаг надад байхгүй. Би HTML5 маягийн хэд хэдэн аппликейшн хийсэн боловч Bluetooth өгөгдөл авах цорын ганц арга бол Кордовагийн залгаасуудыг ашиглах явдал юм. EvoThings нь Bluetooth-ээс iPhone хүртэлх сорилтыг боовны тавцан болгон хувиргахад маш хялбар хэрэгслүүдийг өгдөг. Тэгээд би бялуунд дуртай!
Ерөнхийдөө Lightblue Bean ба EvoThings -ийн хослол нь маш бага хөрөнгө оруулалттай маш практик шийдэл гэж би олж харсан.
Алхам 1: Танд хэрэгтэй зүйлс
Би худалдаанд байгаа термистор датчикийг нэг сувагт ашигласан, учир нь би термисторыг шингэн рүү дүрэх зорилгоор битүүмжилсэн. Хоёрдахь сувгийн хувьд би термистор, 26 хэмжигч утас, 3.5 мм чихэвчний залгуураас үндсэн датчик хийсэн. Та хүссэн термистороо чөлөөтэй ашиглах боломжтой бөгөөд жишээ нь дулаан дамжуулагч эпокси, хуванцар сүрэл/кофе хутгуураар датчик хийх боломжтой. Дараахь зүйл бол миний ашигласан зүйл юм - энэ нь жороор олгох жагсаалт биш юм!
Техник хангамж
- 1 x 100K термистор датчик. Загвар Extech TP890. Эдгээр нь ebay болон amazon дээр түгээмэл байдаг.
- Extech датчик дээрх 2.5 мм хэмжээтэй залгууртай таарах 2 x 2.5 мм хэмжээтэй стерео залгуур. Би хуучин компьютерээс 3.5 мм -ийн үүрийг цэвэрлэсэн тул Extech датчикийг салгаад 3.5 мм -ийн залгуураар сольсон. Та үүнээс зайлсхийх хэрэгтэй-2.5 мм-ийн үүрэнд эсвэл 2.5 мм-ээс 3.5 мм-ийн хэмжээтэй стерео адаптер залгуурыг ашиглах хэрэгтэй.
- 100K термисторын ирмэг, 26 хэмжигч утас, 3.5 мм стерео залгуур, хэрэв та өөрөө датчик хийхийг хүсч байвал. Үгүй бол хоёр дахь Extech датчик худалдаж аваарай!
- 1 x Lightblue Bean загвараар дамжуулан цоолж болно. Энэ бол Bluetooth модулийг Arduino хөгжүүлэх самбар болгон програмчилж болно. Модуль нь нэлээд үнэтэй боловч маш нарийн төвөгтэй байдлыг арилгадаг. Тэд дараагийн үеийн төхөөрөмжид зориулж Kickstarter кампанит ажил явуулж байгаа бөгөөд үүнийг анхаарч үзэх нь зүйтэй болов уу.
- Термисторын жишиг хүчдэлийг хуваахад ашигладаг 2 x 1/4W 100K резистор. Би 5% -ийн резистор ашигласан боловч илүү өндөр тэсвэртэй резистор нь ерөнхийдөө бага температурт мэдрэмтгий бөгөөд илүү сайн ажиллах болно. 1% нь үүнийг тэсвэрлэх сайн утга юм.
- Гагнуурын төмөр ба гагнуур
- Утас таслагч, 26 эсвэл 28 калибрын жижиг урттай утас.
Програм хангамж ба програм хангамж
- Bean програмчлахын тулд танд Bean Loader програм хэрэгтэй болно. Би цонх ашигладаг байсан тул бүх холбоосууд Windows -тэй холбоотой байх болно. Bean -ийг эхлүүлэхийн тулд Arduino -ийн онцлогийг багтаасан бүх зүйлийг LightBlueBean сайтаас авах боломжтой.
- Ухаалаг гар утасны аппликэйшний EvoThings ажлын ширээг эндээс авах боломжтой. "Эхлэх" бүх баримт бичгийг тэндээс авах боломжтой. Үүнийг маш сайн баримтжуулсан болно.
Алхам 2: Цахилгаан хэлхээ ба цахилгаан хийц
Термистор бол температураас хамааралтай эсэргүүцэл юм. Extech датчик нь температурын сөрөг коэффициенттэй бөгөөд энэ нь температур нэмэгдэх тусам эсэргүүцэл буурдаг гэсэн үг юм. Эсэргүүцлийн утгыг энгийн хэлхээгээр хэмждэг бөгөөд энэ нь нэг хөлдөө термистор бүхий хүчдэл хуваагч, нөгөө хөл дээр тогтмол 100К эсэргүүцэл үүсгэдэг. Хуваасан хүчдэлийг Bean дээрх аналог оролтын суваг руу оруулж, програм хангамжид дээж авдаг.
Хэлхээг бий болгохын тулд би хуучин эвдэрсэн компьютерээс 3.5 мм аудио залгуурыг цэвэрлэв. ПХБ дээрх датчикийн үзүүр ба эхний зурваст тохирох хоёр цэгийг тодорхойлохын тулд мултиметр ашигласан. Зураг дээр үзүүлсэн шиг утаснуудыг аудио залгуур болон буурцагт гагнасан. Аудио залгууруудыг хоёр талт соронзон хальс ашиглан Bean -ийн эх загвар хэсэгт наасан байна. Миний ашигласан соронзон хальс нь автомашины ангиллын наалдамхай тууз бөгөөд чирэх хэсгүүдийн хооронд маш бат бөх холболт үүсгэдэг.
Алхам 3: Туршилтын коэффициент
Extech датчик шиг нийтлэг байдаг шиг Стейнхарт-Хартын коэффициентүүдийг миний олж мэдсэн хаана ч нийтэлдэггүй. Аз болоход таны өгсөн 3 температурын хэмжилтийн коэффициентийг тодорхойлох онлайн тооны машин байдаг.
Ямар foillows бол коэффициентэд хүрэх миний үндсэн процедур юм. Загварын хувьд ямар ч оноо авахгүй, гэхдээ +/- 1 градусын нарийвчлалтайгаар хэлэх хангалттай сайн (миний хувьд эрхий хуруугаа харуулсан) … Лавлах термометр ба мултиметрийн нарийвчлалаас хамаарна! Миний мултиметр бол олон жилийн өмнө мөнгө хатуу байхад худалдаж авсан нэргүй брэндийн хямд нэгж юм. Мөнгө хатуу хэвээр байгаа бөгөөд энэ нь ажилласаар байна!
Тохируулахын тулд бидэнд 3 температураас гурван эсэргүүцлийн уншилт хэрэгтэй.
- Шилэн усанд мөс нэмж, температур тогтворжих хүртэл хутгана. Тогтворжсоны дараа олон метрийг ашиглан датчикийн эсэргүүцлийг бичиж, температурыг бүртгэх лавлах термометрийг ашиглана уу.
- Одоо датчикийг өрөөний температурт нэг аяга усанд хийж, датчикийг усны температуртай тэнцүүлж температурыг лавлах термометр дээрээ бичиж, эсэргүүцлийн заалтыг олон метр дээрээ бичнэ үү.
-
Сорьцыг нэг аяга халуун усанд хийж эсэргүүцлийг тэмдэглэнэ.
Температур Эсэргүүцэл 5.6 218K 21.0 97.1K 38.6 43.2
Температурыг бүртгэхийн тулд танд тохируулсан термометр, эсэргүүцлийг бүртгэхийн тулд тохируулсан олон метр хэрэгтэй тул энэ бүх үйл явц нь тахиа, өндөгний нөхцөл байдал юм. Энд гарсан алдаанууд нь таны хийсэн температурын хэмжилтийг буруу хийхэд хүргэх болно, гэхдээ миний хувьд +/- 1 градус нь надад хэрэгтэй хэмжээнээс илүү байна.
Вэб тооцоолуурт эдгээр бүртгэгдсэн утгыг залгаснаар дараах үр дүн гарна.
Коэффициентүүдийг (A, B ба C) Стенхарт-Харт тэгшитгэлд холбож температурыг түүвэрлэсэн эсэргүүцлийн утгаас урьдчилан сэргийлэх болно. Тэгшитгэлийг дараах байдлаар тодорхойлно (эх сурвалж: wikipedia.com)
Энд T = Кельвин дэх температур
A, B, C бол бидний тодорхойлох гэж буй Steinhart-Hart тэгшитгэлийн коэффициент бөгөөд R нь T температурын эсэргүүцэл юм.
Програм хангамж энэ тооцоог хийх болно.
Алхам 4: Firmware
Термисторын хүчдэлийг дээж авч, температурт шилжүүлж, Bluetooth -ээр ухаалаг гар утсан дээр ажилладаг EvoThings програм руу илгээдэг.
Хүчдэлийг Bean доторх эсэргүүцлийн утга болгон хувиргахын тулд энгийн шугаман тэгшитгэлийг ашигладаг. Тэгшитгэлийн гарал үүслийг зураг хэлбэрээр өгсөн болно. Түүвэрлэсэн утгыг хүчдэл болгон хувиргахын оронд ADC ба оролтын хүчдэлийг ижил батерейны хүчдэлд хамааруулдаг тул бид хүчдэлийн оронд ADC утгыг ашиглаж болно. 10bit Bean ADC -ийн хувьд батерейны бүрэн хүчдэл нь ADC утгыг 1023 болгох тул бид энэ утгыг Vbat болгон ашигладаг. Хуваагч резисторын бодит үнэ цэнийг анхаарч үзэх нь чухал юм. 100K хуваагч резисторын бодит утгыг хэмжиж, эсэргүүцлийн хүлцлийн улмаас алдааны шаардлагагүй эх үүсвэрээс зайлсхийхийн тулд хэмжсэн утгыг тэгшитгэлд ашиглана уу.
Эсэргүүцлийн утгыг тооцоолсны дараа эсэргүүцлийн утгыг Steinhart-Hart тэгшитгэлийг ашиглан температурт хөрвүүлнэ. Энэ тэгшитгэлийг Википедиа дээр нарийвчлан тайлбарласан болно.
Бидэнд 2 датчик байгаа тул датчикийн ажиллагааг C ++ ангилалд багтаах нь утга учиртай юм.
Ангилал нь Стейнхарт-Харт тэгшитгэлийн коэффициент, тусгаарлагчийн эсэргүүцлийн нэрлэсэн утга, термисторыг холбосон аналог портыг багтаасан болно. Температур () гэсэн ганц арга нь ADC-ийн утгыг эсэргүүцлийн утга болгон хөрвүүлж, дараа нь Кельвин дэх температурыг тодорхойлохын тулд Стейнхарт-Харт тэгшитгэлийг ашиглана. Буцах утга нь тооцоолсон температураас абсолют тэгийг (273.15K) хасч, Цельсийн утгыг өгнө.
Lightblue Bean -ийн хүч чадал нь Bluetooth -ийн бүх функцийг үндсэндээ кодын 1 мөрөнд оруулдаг бөгөөд энэ нь дээжийн температурын утгыг Bluetooth санах ой дээрх өгөгдлийн хэсэгт бичдэг.
Bean.setScratchData (TEMPERATURE_SCRATCH_IDX, (uint8_t*) & температур [0], 12);
Дээж авсан температурын утга бүрийг 4 байт эзэлдэг хөвөгчөөр дүрсэлдэг. Мэдээллийн зурвасын талбар нь 20 байт багтаах боломжтой. Бид ердөө 12 ширхэгийг ашиглаж байна. Мэдээллийн 5 талбар байдаг тул та зургийн өгөгдлийг ашиглан 100 байт хүртэлх өгөгдлийг дамжуулах боломжтой.
Үйл явдлын үндсэн урсгал нь:
- Бид Bluetooth холболттой эсэхийг шалгаарай
- Хэрэв тийм бол температурыг дээж аваад зургийн өгөгдлийн хэсэгт бичнэ үү
- 200 м унтаж, мөчлөгийг давт.
Хэрэв холбогдоогүй бол firmware нь ATMEGA328P чипийг удаан унтуулдаг. Унтах мөчлөг нь хүчийг хэмнэхэд чухал үүрэгтэй. ATMEGA328P чип нь бага чадлын горимд ордог бөгөөд LBM313 Bluetooth модулийг таслах хүртэл тэндээ үлддэг. LBM313 нь ATMEGA328P -ийг унтах хугацаа дуусах үед эсвэл Bean -тай Bluetooth холболт хийх бүрт сэрээх тасалдал үүсгэх болно. WakeOnConnect функцийг тохируулах явцад Bean.enableWakeOnConnect (үнэн) гэж дуудах замаар идэвхжүүлдэг.
Програм хангамж нь ямар ч BLE клиент програмтай ажиллах болно гэдгийг анхаарах нь чухал юм. Үйлчлүүлэгчийн хийх ёстой зүйл бол температурын байтуудыг зургийн мэдээллийн сангаас салгаж, тэдгээрийг дэлгэц дээр харуулах эсвэл боловсруулахад зориулагдсан хөвөгч цэгийн тоонд нэгтгэх явдал юм. Миний хувьд хамгийн хялбар үйлчлүүлэгч програм бол EvoThings ашиглах явдал байв.
Алхам 5: Ухаалаг гар утасны програм
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 тохиргоо
Bean -д зориулсан firmware бүтээх, байршуулах мөчлөг нь бүгд Bluetooth -ээр хийгддэг. Нэг удаад зөвхөн нэг идэвхтэй Bluetooth холболт байж болно. Bean Loader -ийг Windows App Store дээрээс авах боломжтой
Миний хослуулах, холбоход ашигладаг үндсэн мөчлөг дараах байдалтай байна: Хяналтын самбараас;/Bluetooth тохиргооноос та дараах дэлгэцийг харах ёстой.
Эцэст нь цонхнууд "Хослоход бэлэн байна" гэж мэдээлэх болно. Энэ үед та Bean дүрс дээр дарж, хэдэн секундын дараа Windows танд нууц код оруулахыг танаас хүсэх болно. Шошны анхдагч нэвтрэх код нь 00000 юм
Хэрэв нууц кодыг зөв оруулсан бол Windows нь төхөөрөмжийг зөв холбосон болохыг харуулах болно. Bean програмчлахын тулд та ийм байдалд байх ёстой.
Та хосолж, холбогдсоны дараа Bean Loader -ийг ашиглан firmware -ийг шош руу ачаална уу. Энэ нь ихэнхдээ бүтэлгүйтдэг байсан бөгөөд энэ нь миний компьютертай ойр байхтай холбоотой юм шиг санагдсан. Өөрт тохирсон байрлалыг олох хүртэл Bean -ийг хөдөлгөнө үү. Зарим тохиолдолд юу ч ажиллахгүй бөгөөд Bean Loader төхөөрөмжийг дахин холбохыг санал болгодог. Ихэвчлэн хослуулах процессыг дахин давтах нь холболтыг сэргээх болно. Дахин хослуулахын өмнө та "Төхөөрөмжийг устгах" ёстой.
Bean Loader -ийн ажиллагаа нь маш хялбар бөгөөд тэдний сайт дээр сайн бичигдсэн байдаг. Bean Loader нээлттэй байх үед "Програм" цэсийн зүйлийг сонгоод энэ зааварчилгааны програмын алхамд заасан Hex файлыг үзэх цонхыг нээнэ үү.
Програм хангамжийг ачаалж дуусаад Bean Loader -ийг ХААЖ, ингэснээр Bean Loader болон Bean тоног төхөөрөмжийн хоорондох холбоо тасарна. Та нэг удаад зөвхөн нэг холболттой байж болно. Одоо EvoThings ажлын ширээг нээгээд ухаалаг гар утас эсвэл таблет дээр EvoThings үйлчлүүлэгчийг ажиллуулна уу.
"Run" товчийг дарахад EvoThings үйлчлүүлэгч термометрийн html хуудсыг автоматаар ачаална. Bean -тай холбогдохын тулд Connect товчлуур дээр дарахад температурыг харах болно. Амжилт!
Алхам 8: Дүгнэлт
Хэрэв бүх зүйл зөв хийгдсэн, тохируулагдсан бол та температурыг 2 датчикаар хянах, мөн Bean хөгжлийн самбар дээрх BMA250 мэдрэгчийн температурыг хянах боломжийг олгодог ажлын системтэй байх ёстой. EvoThings -ээр хийж болох олон зүйл бий - би дөнгөж гадаргууг зурчихсан тул энэ туршилтыг танд үлдээе! Уншсанд баярлалаа! Хэрэв бүх зүйл буруу болвол сэтгэгдлээ үлдээгээрэй, би чадах чинээгээрээ туслах болно.
Зөвлөмж болгож буй:
Гэрэлтдэг термометр - Витаминжуулсан цэцэрлэгийн гэрэл (eNANO De Jardin): 6 алхам
Гэрэлтдэг термометр - Цэцэрлэгийн витаминжуулсан гэрэл (eNANO De Jardin): arduino NANO болон температур мэдрэгч бүхий витаминжуулсан цэцэрлэгийн гэрэл BMP180. Манай даруухан цэцэрлэгийн гэрэл нууц хүчтэй байх болно: өнгөний код ашиглан гаднах температурыг зааж өгөх боломжтой болно. Түүний үйлдэл дараах байдалтай байна: Энэ нь би
Ухаалаг гар утсыг контактгүй термометр / зөөврийн термометр болгон ашиглах: 8 алхам (зурагтай)
Ухаалаг гар утсыг контактгүй термометр / зөөврийн термометр болгон ашигла: Биеийн температурыг халуун буу шиг контактгүй / холбоо барихгүйгээр хэмжинэ. Thermo Gun одоо маш үнэтэй тул би DIY хийх өөр хувилбар авах ёстой. Мөн зорилго нь төсөв багатай хувилбараар хийгдэх болно. НийлүүлэлтMLX90614Ardu
Arduino дээр суурилсан контактгүй хэт улаан туяаны термометр - Arduino ашиглан IR суурилсан термометр: 4 алхам
Arduino дээр суурилсан контактгүй хэт улаан туяаны термометр | Arduino ашиглан IR суурилсан термометр: Сайн байна уу залуусаа энэ зааварчилгаанд бид arduino ашиглан контактгүй термометр хийх болно. Заримдаа шингэн/хатуу бодисын температур хэт өндөр эсвэл бага байдаг тул түүнтэй холбоо тогтооход хэцүү байдаг. тэр үед температур
RuuviTag болон PiZero W ба Blinkt! Bluetooth гэрэлт цамхаг дээр суурилсан термометр: 3 алхам (зурагтай)
RuuviTag болон PiZero W ба Blinkt! Bluetooth Beacon дээр суурилсан термометр: Энэхүү заавар нь RuuviTag -аас Raspi Pi Zero W ашиглан Bluetooth ашиглан температур, чийгшлийн мэдээллийг уншиж, утгыг хоёртын тоогоор Pimoroni blinkt дээр харуулах аргыг тайлбарласан болно. pHAT.Эсвэл товчхондоо: төрийг хэрхэн байгуулах вэ?
Термометр ашиглан термометр: 5 алхам
Термометр ашиглан термометр: Энэ бол зөвхөн термистор ба резистор ашигладаг термометр юм. Та хүссэн үедээ өрөөнийхөө температурыг хянаж, хадгалах боломжтой. Та мөн урьд нь хадгалагдсан өгөгдлийг thingsio дээр хянах боломжтой