Мазмуну:
- 1 -кадам: материалдар
- 2 -кадам: сенсор тандоо
- 3 -кадам: LM35
- 4 -кадам: DS18B20
- 5 -кадам: ESP8266 коду
- 6 -кадам: ESP8266 Code: LM35 Колдонуучу
- 7 -кадам: ESP8266 Коду: DS18B20 Колдонуучу
- 8 -кадам: ESP8266 Кичи айла
- 9 -кадам: Биринчи жолу операция
- 10 -кадам: Жыйынтык
Video: WiFi температурасын каттоочу (ESP8266 менен): 11 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Саламатсызбы, сизди бул жерде көргөнүмө кубанычтамын. Мен бул нускамадан сиз пайдалуу маалыматтарды таба аласыз деп үмүттөнөм. Мага сунуштарды, суроолорду жөнөтүүдөн тартынбаңыз … Бул жерде кээ бир негизги маалыматтар жана долбоорго кыскача сереп. Мобилдик колдонуучулар үчүн: Video. Let, сиз комментарий бөлүмүндө долбоор тууралуу кандай ойдо экениңизди билдириңиз, рахмат. Мен жакында эле сынап көрүү үчүн NodeMcu (esp8266 негизделген) тактасын сатып алдым, андыктан бул чындыгында өнүккөн долбоор эмес. Бирок ал иштейт жана бул мага керектүү нерсе, андыктан бул маалымат жазгычтын негизги функциясы - бул температураны чогултуу жана аны серверге сактоо. Бул колдонуучуларга каттоонун бир жеринде болбогондо дагы, онлайн режиминде маалыматтарды текшерүүгө жана график түзүүгө мүмкүнчүлүк берет (мисалы, аба ырайы бекети үчүн). Дагы бир пайдалуу өзгөчөлүк - бул колдонуучуга программаны оңой оңдоп, ыңгайлаштырууга мүмкүндүк берген OTA жаңыртуусу. Мен бардык сенсорлорду жана аларга байланыштуу сатып алуу ыкмасын анализдеп, бардык жакшы жана жаман жактарын тең салмакта кылам.
Спойлер: бир аз тестирлөөдөн кийин DS18B20 сыяктуу санарип сенсор эң жакшы чечим экенин таптым, анткени ал туруктуулукту жана жогорку тактыкты сунуштайт. Бул суу өткөрбөйт жана кабель менен.
1 -кадам: материалдар
Бул аз гана тышкы компоненти бар минималдуу долбоор, анткени бул үчүн БОМдун тизмеси чынында кыска болот. Бирок, келгиле, кандай материал суралганын карап көрөлү:
- NodeMcu V3 (же кандайдыр бир шайкеш ESP8266 μпроцессор);
- RGB LED (жалпы анод);
- LED үчүн резисторлор (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
- DS18B20 (Максим интегралдык термометр);
- LM35 (Texas Instrument термометр);
- Тышкы батарея (милдеттүү эмес);
- Кабель;
- Коннектор (аны дагы "өнүккөн" кылуу үчүн);
- Кутуча (милдеттүү эмес, дагы "өнүккөн" кылуу үчүн);
- LED кармагыч (милдеттүү эмес);
Эскертүү: Мен айткандай, сиз эки жолдун бирин тандашыңыз керек. Эгерде сиз LM35 термометрин тандасаңыз, сизге дагы бир нече компонент керек болот:
- Attiny45/85;
- AVR программисти (же ISP катары Arduino);
- Резистор (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
- 2.54мм тилке туташтыргычы (милдеттүү эмес)
- Диод (2x1N914)
- Perfboard же PCB;
2 -кадам: сенсор тандоо
Сенсорду тандоо татаал кадам болушу мүмкүн: бүгүнкү күндө аналогдук жана санариптик температурасы ар кандай, тактык жана корпусу бар көптөгөн которгучтар бар (TI 144 түрдүү элементти сунуштайт).
- Маалыматтарды каттоочу температурадан башка санга оңой эле өзгөрүшү мүмкүн (чыңалуу, ток,…);
- Бир аз арзаныраак болушу мүмкүн;
- Колдонууга оңой, анткени ал атайын китепкананы талап кылбайт;
Кемчиликтери:
- ADC (бул өлчөөнүн тактыгына таасир этиши мүмкүн) жана башка тышкы компоненттерди талап кылат. Esp8266да бир гана ADC (жана так эмес) болгондуктан, мен тышкы бирин колдонууну сунуштайт элем.
- Ар кандай индуктивдүү чыңалуу натыйжаны өзгөртө алгандыктан, ызы -чуудан баш тартуучу атайын кабель керек.
Бир аз ойлонгондон кийин, LM35ти колдонууну чечтим, линиялык сенсор +10мВ/° С масштабдуу фактор менен 0,5 ° С тактыкта жана өтө төмөн токто (болжол менен 60уА) 4Втан 30Вга чейин чыңалууда. Көбүрөөк маалымат үчүн мен маалымат барагын көрүүнү сунуштайм: LM35.
Санарип сенсорлор (сунушталат)
Дээрлик бардык тышкы компоненттер керек;
Интегралдык ADC
Кемчиликтери:
Санариптик сигналдын кодун чечүү үчүн китепкананы же программалык камсыздоону сураңыз (I2C, SPI, Serial, One Wire,…);
Кымбатыраак;
Мен DS18B20 тандадым, анткени мен Amazonдан 5 суу өткөргүч сенсордун топтомун таптым жана ал интернетте кеңири документтештирилген. Негизги өзгөчөлүк 9-12bit өлчөө, 1-Wire автобус, 3.0 5.5 камсыздоо чыңалуусу, 0.5 ° C тактык. Дагы, бул жерде маалымат барагы: DS18B20.
3 -кадам: LM35
Келгиле, LM35 термометринин тышкы ADC жана башка өзгөчөлүктөрүн кантип ишке ашырганымды талдап көрөлү. Мен үч зымы бар кабелди таптым, бири экраны бар, экөө жок. Мен аналогдук температураны санарипке айландыруу үчүн сенсордун жанындагы камсыздоо чыңалуусун турукташтыруу үчүн ажыратуучу конденсаторду кошууну чечтим, мен Attiny85 микропроцессорун dip8 пакетинде колдондум (дагы маалымат алуу үчүн дагы маалымат барагын караңыз: attiny85). Биз үчүн эң маанилүү нерсе - бул 10 бит ADC (чындыгында эң жакшы эмес, бирок мен үчүн жетиштүү так). Esp8266 менен байланышуу үчүн, esp8266 3.3V жана 5V менен attiny85 менен иштээрин эске алып, сериялык байланышты колдонууну чечтим (сенсорду иштетүү үчүн). Буга жетүү үчүн мен жөнөкөй чыңалуу бөлүштүргүчүн колдондум (схеманы караңыз). Терс температураны окуу үчүн биз кээ бир тышкы компоненттерди (2x1N914 жана 1x18k каршылыгын) кошушубуз керек, анткени терс энергия менен камсыз кылууну каалабайм. Мына код: TinyADC репозиторийи. attiny to ide (муну вариантка киргизиңиз: https://drazzy.com/package_drazzy.com_index.json), эгер муну кантип жасоону билбесеңиз, Google. Orдон издеңиз.hex файлын түз жүктөңүз.
4 -кадам: DS18B20
Мен ал сенсорлорду Amazonдан сатып алдым (5 баасы болжол менен 10 €). Бул дат баспас болоттон жасалган капкак жана 1м узундуктагы кабель менен келген. Бул сенсор температуранын 9-12 бит маалыматтарын кайтара алат. Көптөгөн сенсорлор бир эле пинге туташтырылышы мүмкүн, анткени алардын бардыгынын уникалдуу идентификатору бар DS18B20ду esp8266га туташтыруу үчүн жөн эле схеманы (экинчи сүрөт) ээрчип алсаңыз болот. Мен логеримде үч иликтөө болот деп чечкенден кийин, кайсынысы экенин айырмалашым керек болчу. Ошентип, мен алардын дарегине программалык камсыздоо аркылуу байланышкан түс берүүнү ойлодум. Мен термо-кысылуучу түтүктү колдондум (үчүнчү сүрөт).
5 -кадам: ESP8266 коду
Мен бул дүйнөгө жаңы келгендиктен, көп китепканаларды колдонууну чечтим. Киришүүдө айтылгандай, негизги өзгөчөлүктөрү төмөнкүлөр:
- OTA жаңыртуусу: кодду жүктөө керек болгондо esp8266ды компьютериңизге туташтыруунун кажети жок (муну биринчи жолу жасашыңыз керек);
- Зымсыз менеджер, эгер зымсыз тармак өзгөрсө, эскизди кайра жүктөөнүн кереги жок. Сиз жөн гана esp8266 кирүү чекитине туташкан тармактын параметрлерин кайра конфигурациялай аласыз;
- Thingspeak маалымат трассмиссиясы;
- LM35 жана DS18B20 экөө тең колдоого алынат;
- Жөнөкөй колдонуучу интерфейси (RGB LED кээ бир пайдалуу маалыматты көрсөтөт);
Сураныч, кечирим сураңыз, анткени менин программам эң жакшы эмес жана ал чындыгында жакшы заказ кылынган эмес. Түзмөккө жүктөөдөн мурун, кодду орнотууңузга ылайыкташтыруу үчүн кээ бир параметрлерди өзгөртүү керек. Бул жерде сиз программалык камсыздоону жүктөп алсаңыз болот. Жалпы LM35 жана DS18B20 конфигурациясы Сиз OTA жаңыртуу үчүн пиндин аныктамасын, энбелгисин, каналдын номерин, колдонуучуну жана сырсөздү өзгөртүшүңүз керек. 15тен 23кө чейин линия.
#кызыл YOURPINHERE #жашыл YOURPINHERE дегенди аныктаңыз
#define blue YOURPINHERE const char* host = "хосттун дарегин тандоо"; // чындап эле кереги жок, esp8266-webupdate const char* update_path = "/firmware" калтырсаңыз болот; // жаңыртуу үчүн даректи өзгөртүү үчүн: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; unsigned long myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";
6 -кадам: ESP8266 Code: LM35 Колдонуучу
Аттин тактасын esp8266 менен туташтырышыңыз керек, ADC бирдигин VU пин менен G пинди колдонуңуз. Сиз сериялык байланыш үчүн колдонууну каалаган пинти тандап алышыңыз керек (мүчүлүштүктөрдү оңдоо үчүн аппараттык серияны бекер кылуу үчүн). Tx пин тандалышы керек, бирок чынында колдонулбайт. (Line 27). SoftwareSerial mySerial (RXPIN, TXPIN); Үстүнө сиз төмөнкүлөрдү кошушуңуз керек: #define LM35USER
7 -кадам: ESP8266 Коду: DS18B20 Колдонуучу
Биринчи операция катары ар бир сенсор үчүн түзмөктүн дарегин аныктоо керек. Бул кодду espке программалап, программалап, жыйынтыгын сериалдан издеңиз. Кодду бул жерден тапса болот (бул аталышты беттен издеңиз: "Жеке DS18B20 ички даректерин окуу"). Даректи алуу үчүн бир гана сенсорду туташтырыңыз, натыйжалар ушундай болушу керек (бул жерде кокустук сан! Мисал катары): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12 Андан кийин бөлүмүмдөгү менин кодумду өзгөртүү керек " DS18B20 "конфигурациясы (31ден 36га чейин)":
#аныктоо ONE_WIRE_BUS ONEWIREPINHERE #аныктоо TEMPERATURE_PRECISION TEMPBITPRECISION // (9дан 12ге чейин) #define delayDallas READINTERVAL // (Милисекунддарда, эң азы 15с же 15000мС) DeviceAddress blueSxx, 0x1, 0x1, 0x11, 0x12}; // ADRESS МЕНЕН ӨЗГӨРҮҮ DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // АДРЕСИҢИЗ МЕНЕН ӨЗГӨРҮҮ DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // АДРЕСИҢИЗДИ ӨЗГӨРТҮҮ Үстүнө сиз төмөнкүлөрдү кошушуңуз керек: #define DSUSER
8 -кадам: ESP8266 Кичи айла
Бир аз тестирлөөдөн кийин, эгер сиз esp8266ны программалабастан туташтырсаңыз, ал кодду бир жолу кайра орнотууну басмайынча иштебей турганын байкадым. Бул маселени чечүү үчүн, бир аз изилдөөлөрдөн кийин, мен 3.3Vдан D3кө чейин тартылуучу каршылыкты кошуу керек экенин билдим. Бул процессорго кодду флеш -жадыдан жүктөөнү айтат. Бул ыкма менен D3 түздөн -түз DS18B20 сенсорлору үчүн маалыматтарды киргизүү үчүн колдонулушу мүмкүн.
9 -кадам: Биринчи жолу операция
Эгерде сиз кодду туура жүктөсөңүз, бирок Wifi менеджер китепканасын эч качан колдонбосоңуз, анда Wi -Fi туташууңузду конфигурациялоого убакыт келди. Мурункуга караганда RGB LED тезирээк жарк эткенин күтө туруңуз, андан кийин мобилдик же компьютериңиз менен "AutoConnectAp" деп аталган Wi -Fi тармагын издеп, туташыңыз. Туташкандан кийин, веб -браузерди ачып, 192.168.4.1 киргизиңиз, сиз wifi менеджеринин GUI интерфейсин таба аласыз (сүрөттөрдү караңыз) жана "Wifi конфигурациялоо" баскычын басыңыз. Esp8266дан wifi тармактарын издөөнү күтө туруңуз жана каалаганын тандаңыз. Сырсөздү киргизиңиз жана "Сактоо" баскычын басыңыз. Esp8266 кайра башталат (бул жолу RGB жетектебейт, анткени ал туш келди маалыматты чыгарат) жана тармакка туташат.
10 -кадам: Жыйынтык
Акыр -аягы, бул жерде тоңдургучумдун температурасын каттоо учурунда маалымат жазгычтан алынган график. Апельсин түстө DS18B20 жана көк түстө LM35 жана анын схемасы. Санариптен аналогдук сенсорго чейинки тактыктын эң чоң айырмасын көрө аласыз (менин начар "ADC чынжырым" менен), бирок кээ бир физикалык эмес маалыматтарды берет. Жыйынтыктап, эгер сиз бул журналды түзгүңүз келсе, DS18B20 санарип температура сенсорун колдонууну сунуштайм. окуу оңой жана дээрлик "плагин жана ойнотуу", ал туруктуу жана так, ал 3.3Вда иштейт жана көптөгөн сенсорлор үчүн бир пинди талап кылат. Көңүл бурганыңыз үчүн рахмат, бул долбоор сиз үчүн жакшы деп үмүттөнөм кээ бир пайдалуу маалыматтарды таптым. Жана ким муну ишке ашыргысы келсе, мен бардык керектүү маалыматты бергим келет. Баарын сурап бекер айтпасам, мен бардык суроолорго жооп берүүгө кубанычтамын. Мен англисче сүйлөбөгөндүктөн, эгер бир нерсе туура эмес же түшүнүксүз болсо, мага кабарлаңыз. Эгер сизге бул долбоор жаккан болсо, анда конкурстарга добуш бериңиз жана/же комментарий калтырыңыз ☺. Бул жаңы мазмунду жаңыртууга жана жарыялоого түрткү берет. Рахмат.
Сунушталууда:
Кийинки Drive/Hiking Trail үчүн DIY GPS маалыматын каттоочу: 11 кадам (Сүрөттөр менен)
Кийинки Drive/Hiking Trail үчүн DIY GPS маалыматын каттоочу: Бул GPS маалыматын каттоочу, сиз бир нече максатта колдоно аласыз, айталы, эгер сиз күздүн түстөрүн текшерүү үчүн дем алыш күндөрү узак жолго чыккыңыз келсе. же сизде жыл сайын күзүндө барчу сүйүктүү изиңиз бар жана сиз
Raspberry Pi температурасын каттоочу: 8 кадам
Raspberry Pi Температура Логгери: Бул жерде $ 5.00 I2C температура сенсорун колдонуу менен жөнөкөй температура жазгычты куруу боюнча көрсөтмөлөр. Маалыматтар SD картада сакталат жана Excelге оңой импорттолот. Башка сенсорлорду өзгөртүү же кошуу менен, маалыматтын башка түрлөрү дагы
PT100 температурасын өлчөө Arduino аркылуу: 6 кадам (сүрөттөр менен)
PT100 температурасын өлчөө Arduino колдонуу: PT100 - бул каршылык температурасынын детектору (RTD), анын айланасындагы температурага жараша каршылыгын өзгөртөт, ал жай динамикасы жана салыштырмалуу кенен температура диапазону менен өнөр жай процесстеринде кеңири колдонулат. Бул жай динамика үчүн колдонулат
Жапайы жаратылыш үчүн зымсыз GPS маалыматтарды каттоочу: 9 кадам (сүрөттөр менен)
Жапайы жаратылыш үчүн зымсыз GPS маалыматын жазуучу: Бул көрсөтмөдө биз кичинекей жана арзан Arduino негизделген GPS маалыматын кантип жазууну көрсөтөбүз, зымсыз жөндөмү бар! Жаныбарлардын кыймылын изилдөө үчүн телеметрияны колдонуу биологдор үчүн абдан маанилүү курал болушу мүмкүн. Кайсы жерде экенин айта алат
Raspberry Pi менен маалыматтарды каттоочу түзүү: 3 кадам (сүрөттөр менен)
Raspberry Pi менен маалыматтарды каттоочу түзүү: Бул жөнөкөй маалымат жазгыч аналогдук LDR (Photoresistor) менен үзгүлтүксүз жарык өлчөөлөрдү алып, аларды Raspberry Piдеги текст файлында сактайт. Бул маалымат каттоочу жарыктын деңгээлин ар бир 60 секундда өлчөйт жана жаздырат, бул сизди көзөмөлдөөгө мүмкүндүк берет