Съдържание:
- Стъпка 1: Историята зад …
- Стъпка 2: Как работи
- Стъпка 3: Материали и инструменти
- Стъпка 4: Поправете нещата заедно
- Стъпка 5: Свържете нещата заедно
- Стъпка 6: Свързване на сензорите
- Стъпка 7: Софтуер за контролер
- Стъпка 8: Заключение
Видео: Мрежов контролер за температурен сензор с непоносимост: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Тази инструкция ви показва как да конвертирате платка Arduino Uno в едноцелеви контролер за набор от температурни сензори DS18B20, способни за автоматична изолация на дефектни сензори.
Контролерът може да управлява до 8 сензора с Arduino Uno. (И много повече с Arduino Mega или с лека софтуерна модификация.)
Стъпка 1: Историята зад …
Преди няколко години създадох мрежа от температурни сензори DS18B20 в оранжерията на баща ми за моя отоплителен контролер на базата на pi. За съжаление, надеждността на контролера беше лоша главно поради честите прекъсвания на сензорите. Опитах множество настройки - захранване с паразити, директно захранване, свързване на мрежата към pi, както и свързване към персонализирана платка на базата на Atmega (чиято основна цел беше да задвижва клапанни двигатели).
Още по -лошо, надеждността на сензорната мрежа спадна главно през зимните нощи, докато през лятото почти нямаше проблеми! Какво по дяволите става тук?
За да се проучи кой сензор причинява проблема, възникна необходимост от включване/изключване един по един или активиране на всяка комбинация от тях.
Стъпка 2: Как работи
DS18B20 (температурният сензор) използва патентован 1-жичен протокол, който позволява на множество сензори да споделят обща връзка за данни (този един проводник). Тази обща връзка за данни е свързана към един от GPIO щифтовете на Arduino и към + 5 V чрез издърпващ се резистор-нищо необичайно, много инструкции покриват тази настройка.
Номерът е, че захранващите проводници на всеки сензор са свързани към собствени (специални) GPIO щифтове, така че да могат да се включват и изключват отделно. Например, ако сензор има Vcc проводник, свързан към щифт #3 и GND към пин #2, настройката на щифт #3 на HIGH осигурява захранване на сензора (няма изненада), докато настройването на щифт #2 на LOW осигурява заземяване (малка изненада за аз). Задаването на двата пина в режим на вход ще (почти) напълно изолира сензора и неговото окабеляване - без значение каква повреда (напр. Пряк път) се случва вътре в него, това няма да пречи на останалите.
(Честно да кажа, че свързването на кабела за данни към нещо друго, свързано по някакъв начин с Arduino, наистина ще причини смущения, но това е почти невъзможно в моята настройка).
Забележете, че DS18B20 консумира до 1, 5 mA, докато един щифт Arduino може да генерира / поглъща до 40 mA, така че е напълно безопасно да захранвате сензори директно чрез GPIO щифтове.
Стъпка 3: Материали и инструменти
Материал
- 1 дъска Arduino UNO
- 3 женски заглавки: 1 × 4, 1 × 6 и 1 × 6 (или по -дълги - изрязах ги от една 1 × 40 заглавка)
- лепило
- парче гола медна тел (най -малко 10 см)
- изолационна лента
- консумативи за запояване (тел, поток …)
Инструменти
- запояващо оборудване (желязо, държачи, …)
- малки клещи за рязане
Стъпка 4: Поправете нещата заедно
Залепете женските щифтове към заглавките на дъската на Arduino:
- 1 × 4 хедър до „аналогов“щифт, отстрани отстрани с щифтове A0 – A4
- 1 × 6 заглавка до първата цифрова заглавка на щифта, странично с пинове 2–7
- 1 × 6 заглавка до втората цифрова заглавка на щифта, странично с щифтове 8–13
Забележете, че заглавките ми са малко по -дълги … няма минуси и плюсове, предполагам.
Стъпка 5: Свържете нещата заедно
Окабеляване на 1-жична шинна линия:
- Свържете всички проводници на залепени заглавки от „цифровата“страна (в съседство с щифтове 2–13), като запоите към тях парче гола жица
- Запояйте края на този проводник към SCL извода (вътрешно свързан към A5)
- Свържете всички проводници на залепения хедър от "аналогова" страна (щифтове A0 -A3), като запоите към тях парче гола жица
- Запояйте края на този проводник към проводници A4 и A5 (използвах A5 и A6, защото имам платка с A6 и A7)
- Запоявайте резистор 4k7 между другия край на този проводник и +5 V щифт
Бележки:
- Пиновете A0 -A5, въпреки че са маркирани като "аналогови", могат да се използват и като цифрови пинове GPIO.
- SCL изводът от "цифровата" страна е вътрешно свързан към A5 от "аналоговата" страна; свързан към заглавките, това образува 1-жична шинна линия
- A4 (използван като аналогов вход) измерва напрежението на шината за диагностични цели. Това е причината тя да е директно свързана с автобуса.
- Използвах A6 вместо A4, защото имам дъска, която има A6 & A7; първоначално исках да използвам A7 като 1-проводник на шината, но тези два пина не могат да бъдат конфигурирани като цифрови GPIO.
- За да предотвратите неправилно свързване на конекторите на сензора, можете да пропуснете / изрежете неизползвания контакт (който не е свързан с нито един проводник) от всеки мъжки конектор и да го поставите в съответния отвор в залепения щифт.
Стъпка 6: Свързване на сензорите
Току -що създадохте масив от осем гнезда 2 × 2. Можете да запоявате и сглобявате 2 × 2 съединителя Dupont към сензорните кабели и да ги свързвате към тези гнезда. Софтуерът конфигурира щифтовете така, че четните щифтове са GND щифтове, а нечетните пинове са Vcc щифтове. За всеки сензор Vcc щифтът е само GND щифт + 1. Един от другите два пина на гнездото 2 × 2 (един от тези два в залепената и споената заглавка) е за проводника за данни на сензора. Няма значение кое използвате.
Стъпка 7: Софтуер за контролер
Скицата на SerialThermometer изпълнява контролера. Можете да го намерите в github. Отваряне и качване с помощта на Arduino IDE.
Стъпка по стъпка:
- Отворете вашата Arduino IDE и инсталирайте библиотеката DallasTemperature и всички нейни зависимости чрез Sketch | Включване на библиотека | Управление на библиотеки.
- Клонирайте git хранилище. Ако не сте запознати с git, изтеглете и разопаковайте този цип навсякъде на вашия компютър.
- Отворете скицата на SerialThermometer във вашата Arduino IDE.
- Свържете модифицираната платка Arduino към компютъра чрез USB кабел (стандартен начин)
- Качете скицата, като използвате вашата Arduino IDE
- Отворете сериен монитор чрез инструменти | Сериен монитор
- Трябва да видите диагностичен изход, съдържащ няколко физически измервания, последвани от температурни показания - всяко гнездо на сензора на един ред. Ако броят на сензорите се различава, когато е включен отделно и когато всички са включени заедно), диагностичните контури се отстраняват. Но не се притеснявайте, също така диагностиката осигурява измерване на температурата!
Вижте анотирана картина за повече подробности относно диагностичния изход.
Стъпка 8: Заключение
Имам силно чувство, че повредите в мрежата на сензора ми са причинени от високия капацитет на дългото ми окабеляване - около 10 м кабел LIYY 314 (3 × 0, 14 мм²) за всеки сензор. Моите експерименти показаха, че комуникацията се прекъсва, ако има капацитет около или по-висок от 0,01 μF между 1-жична шина и земя, мисля, че 4k7 издърпващ резистор не е в състояние да издърпа шината до + 5 V достатъчно бързо, за да спази ограниченията на протокола.
В моята настройка това се случва, когато повече от 3 сензора са свързани заедно. След това контролерът се включва в диагностичния цикъл, измервайки температурата сензор по сензор (какво е готино също …)
Но също така петият сензор (28: ff: f2: 41: 51: 17: 04: 31) изглежда доста зле (може би грешно запояване), така че мога да разследвам по -нататък!
Препоръчано:
Свързване на Arduino с ултразвуков сензор и безконтактен температурен сензор: 8 стъпки
Arduino взаимодействие с ултразвуков сензор и безконтактен температурен сензор: В днешно време производителите, разработчиците предпочитат Arduino за бързо развитие на прототипирането на проекти. Arduino е електронна платформа с отворен код, базирана на лесен за използване хардуер и софтуер. Arduino има много добра потребителска общност. В този проект
Температурен контролер и часовник с Arduino: 7 стъпки
Терморегулатор и часовник с Arduino: На снимката Термостатът е проектиран да управлява рециркулационна помпа на централно отопление. Ако имате къща, разположена в покрайнините на града, изборът на котела не трябва да бъде пречка за вас. Въпреки това, мисълта, която го плаши, е
Първи стъпки с AWS IoT с безжичен температурен сензор, използващ MQTT: 8 стъпки
Първи стъпки с AWS IoT с безжичен температурен сензор, използващ MQTT: В по -ранните Instructables сме минавали през различни облачни платформи като Azure, Ubidots, ThingSpeak, Losant и др. Използвахме протокола MQTT за изпращане на сензорни данни в облака в почти цялата облачна платформа. За повече информация
Мрежов контролер на IoT. Част 9: IoT, Домашна автоматизация: 10 стъпки (със снимки)
Мрежов контролер на IoT. Част 9: IoT, Домашна автоматизация: Отказ от отговорност ПРОЧЕТЕТЕ ТОЗИ ПЪРВО Тази инструкция описва проект, който използва мрежово захранване (в този случай UK 240VAC RMS), въпреки че са положени всички грижи за използване на безопасни практики и принципи на добър дизайн, винаги съществува риск от потенциално смъртоносен избирам
СЕНЗОР SUHU DENGAN LCD DAN LED (Осъществяване на температурен сензор с LCD и LED): 6 стъпки (със снимки)
СЕНЗОР SUHU DENGAN LCD DAN LED (Осъществяване на температурен сензор с LCD и LED): хай, да речем Devi Rivaldi mahasiswa UNIVERSITAS NUSA PUTRA дари Индонезия, да кажем, че има и сензори за мембрана, за да изведете Arduino за изход на LCD и LED. Ini adalah pembaca suhu dengan desain saya sendiri, dengan sensor ini anda