Мазмұны:

WiFi температурасын тіркеуші (ESP8266 бар): 11 қадам (суреттермен)
WiFi температурасын тіркеуші (ESP8266 бар): 11 қадам (суреттермен)

Бейне: WiFi температурасын тіркеуші (ESP8266 бар): 11 қадам (суреттермен)

Бейне: WiFi температурасын тіркеуші (ESP8266 бар): 11 қадам (суреттермен)
Бейне: Lesson 34: Using MCP9808 Temperature Sensor with TM1637 screen | Arduino Step By Step Course 2024, Қараша
Anonim
Image
Image
Материалдар
Материалдар

Сәлеметсіз бе, сізді осында көргеніме қуаныштымын. Бұл нұсқаулықта сіз пайдалы ақпаратты таба аласыз деп үміттенемін. Маған ұсыныстарды, сұрақтарды жіберуге қымсынбаңыз … Міне, кейбір негізгі мәліметтер мен жобаның қысқаша шолуы. Мобильді пайдаланушылар үшін: Бейне. Пікірлер бөлімінде жоба туралы пікіріңізді біліңіз, рахмет. Мен жақында NodeMcu (esp8266 негізделген) тақтасын сынап көру үшін сатып алдым, сондықтан бұл өте жетілдірілген жоба емес. Бірақ бұл жұмыс істейді және бұл маған қажет, сондықтан бұл деректерді тіркеушінің негізгі функциясы - температураны жинау және оны серверге сақтау. Бұл пайдаланушыларға тіркеуші бір жерде болмаса да (мысалы, метеостанция үшін) онлайн режимінде деректерді тексеруге мүмкіндік береді. Тағы бір пайдалы функция - бұл кодқа енгізілген OTA жаңартуы, ол пайдаланушыға бағдарламалық жасақтаманы оңай жаңартуға және баптауға мүмкіндік береді. Мен барлық сенсорларды және оларды сатып алу әдісін талдап, барлық артықшылықтары мен кемшіліктерін теңестіремін.

Спойлер: біраз тестілеуден кейін мен DS18B20 сияқты сандық сенсор ең жақсы шешім екенін білдім, себебі ол тұрақтылық пен жоғары дәлдікті ұсынады. Ол қазірдің өзінде су өткізбейтін және кабельмен.

1 -қадам: материалдар

Материалдар
Материалдар
Материалдар
Материалдар
Материалдар
Материалдар

Бұл аз ғана сыртқы компоненттері бар минималды жоба, себебі бұл үшін БМ тізімі өте қысқа болады. Дегенмен, қандай материал қажет екенін көрейік:

  • NodeMcu V3 (немесе кез келген үйлесімді ESP8266 μпроцессоры);
  • RGB светодиод (жалпы анод);
  • Жарықдиодты резисторлар (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (Maxim интеграцияланған термометр);
  • LM35 (Texas Instrument термометрі);
  • Сыртқы батарея (міндетті емес);
  • Кабель;
  • Қосқыш (оны «жетілдірілген» ету үшін);
  • Қорап (міндетті емес, тағы да «жетілдірілген» болу үшін);
  • Жарықдиодты ұстағыш (міндетті емес);

Ескерту: Мен айтқанымдай, сіз екі әдістің бірін таңдауыңыз керек. Егер сіз LM35 термометрін таңдасаңыз, сізге басқа компоненттер қажет:

  • Attiny45/85;
  • AVR бағдарламашысы (немесе провайдер ретінде Arduino);
  • Резистор (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
  • 2,54 мм жолақ коннекторы (міндетті емес)
  • Диод (2x1N914)
  • Perfboard немесе PCB;

2 -қадам: сенсорды таңдау

Сенсорды таңдау
Сенсорды таңдау

Сенсорды таңдау қиын қадам болуы мүмкін: бүгінде температура диапазоны, дәлдігі мен қаптамасы бар аналогты да, цифрлы да көптеген түрлендіргіштер бар (TI 144 түрлі элементті ұсынады).

  • Деректерді тіркеушіні температурадан басқа мөлшерге оңай өзгертуге болады (кернеу, ток,…);
  • Біршама арзан болуы мүмкін;
  • Қолдану оңай, себебі арнайы кітапхана қажет емес;

Кемшіліктері:

  • ADC (бұл өлшеу дәлдігіне әсер етуі мүмкін) және басқа сыртқы компоненттерді қажет етеді. Esp8266 -де тек бір ADC бар (және дәл емес), мен сыртқы біреуін қолдануды ұсынар едім.
  • Шуды қабылдамайтын арнайы кабель қажет, себебі кез келген индукцияланған кернеу нәтижені өзгерте алады.

Біраз ойлана келе, мен LM35, 0,5 ° C дәлдікпен +10мВ/° С масштабты коэффициенті бар сызықтық сенсорды және 4В -тан 30В -қа дейінгі жұмыс кернеуі бар өте төмен токты (шамамен 60uA) қолдануға шешім қабылдадым. Толығырақ ақпарат кестесін көруді ұсынамын: LM35.

Сандық датчиктер (өте ұсынылады) Артықшылықтары:

Кез келген дерлік сыртқы компоненттер қажет;

Біріктірілген ADC

Кемшіліктері:

Кітапханаға немесе бағдарламалық жасақтамаға цифрлық сигналды декодтауды сұрау (I2C, SPI, Serial, One Wire,…);

Қымбатырақ;

Мен DS18B20 -ді таңдадым, себебі мен Amazon -дан 5 су өткізбейтін датчиктер жиынтығын таптым және ол интернетте кеңінен құжатталған. Негізгі ерекшелігі-9-12 биттік өлшеу, 1-сымды шина, 3,0-5,5 кернеу, 0,5 ° C дәлдік. Тағы да, егжей -тегжейлі мәліметтер кестесі мына жерде: DS18B20.

3 -қадам: LM35

LM35
LM35
LM35
LM35
LM35
LM35

LM35 термометріне сыртқы ADC және басқа мүмкіндіктерді қалай енгізгенімді талдайық. Мен үш сыммен кабель таптым, біреуі экраны бар, екеуі жоқ. Мен сенсордың жанындағы кернеуді тұрақтандыру үшін ажырататын конденсаторды қосуды шештім. Аналогты температураны цифрлыққа ауыстыру үшін мен dip8 пакетінде Attiny85 микропроцессорын қолдандым (толығырақ ақпарат алу үшін: attiny85). Біз үшін ең бастысы - 10 биттік ADC (шын мәнінде ең жақсы емес, бірақ мен үшін жеткілікті дәл). Esp8266 -мен байланысу үшін мен esp8266 5V -де 3.3V және attiny85 -те жұмыс істейтінін ескере отырып, сериялық байланысты қолдануды шештім (сенсорға қуат беру үшін қажет). Бұған жету үшін мен қарапайым кернеу бөлгішті қолдандым (схеманы қараңыз). Теріс температураны оқу үшін бізге кейбір сыртқы компоненттерді қосу керек (2x1N914 және 1x18k резисторы), себебі мен теріс қуат көзін пайдаланғым келмейді. Мына код: TinyADC репозиторийі. Ескерту: бұл кодты құрастыру үшін сізге орнату қажет. attiny to ide (мұны мына опцияға енгізіңіз: https://drazzy.com/package_drazzy.com_index.json), егер сіз мұны қалай жасауды білмесеңіз, Google -ден іздеңіз немесе.hex файлын тікелей жүктеңіз.

4 -қадам: DS18B20

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20

Мен сенсорларды Amazon -дан сатып алдым (5 бағасы шамамен 10 евро). Ол баспайтын болаттан жасалған қақпақпен және ұзындығы 1м кабельмен келді. Бұл сенсор температураның 9 -дан 12 -ге дейінгі деректерін қайтара алады. Бір түйреуішке көптеген сенсорларды қосуға болады, себебі олардың барлығының бірегей идентификаторы бар. DS18B20 -ды esp8266 -ға қосу үшін схеманы орындауға болады (екінші сурет). Мен тіркеушіде үш зонд болады деп шешкендіктен, қайсысы екенін ажыратуға тура келді. Сондықтан мен олардың мекен -жайына бағдарламалық қамтамасыз ету арқылы байланысты түс беруді ойладым. Мен термокөлгіш құбырды қолдандым (үшінші сурет).

5 -қадам: ESP8266 коды

ESP8266 коды
ESP8266 коды
ESP8266 коды
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» қалдыра аласыз; // жаңарту мекенжайын өзгерту үшін ex: 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 коды: LM35 пайдаланушысы

Сіз аттестаттау тақтасын esp8266 -ға қосуыңыз керек, ADC қондырғысын қуаттандыру үшін VU және G істікшесін қолданыңыз. Сіз сериялық байланыс үшін қандай түйреуішті қолданғыңыз келетінін таңдауыңыз керек (жөндеу үшін жабдықты сериялық бос ұстау үшін). Tx пині таңдалуы керек, бірақ іс жүзінде қолданылмайды. (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 #температураны_тексеру температурасын анықтаңыз // (9 -дан 12 -ге дейін) #анықталатын кешіктіруDallas READINTERVAL // (Милисекундтарда, минимум 15с немесе 15000мС) DeviceAddress blueSxx, 0x1, 0x1, 0x11, 0x12}; // АДРЕСІҢДЕН ӨЗГЕРУ 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 Кішкене трюк
ESP8266 Кішкене трюк

Біраз тестілеуден кейін, егер сіз esp8266 бағдарламасын қоспай -ақ қоссаңыз, ол қалпына келтіру түймесін бір рет баспайынша кодты іске қоспайтынын білдім. Бұл мәселені шешу үшін біраз зерттеуден кейін мен 3.3В-тан D3-ке дейін тартылатын резисторды қосу керектігін білдім. Бұл процессорға кодты флэш -жадтан жүктеуді айтады, бұл әдіспен D3 DS18B20 сенсорлары үшін деректерді енгізу үшін тікелей қолданыла алады.

9 -қадам: бірінші рет жұмыс

Бірінші рет операция
Бірінші рет операция
Бірінші рет операция
Бірінші рет операция

Егер сіз кодты дұрыс жүктеген болсаңыз, бірақ Wifi менеджер кітапханасын ешқашан пайдаланбасаңыз, Wi -Fi қосылымын конфигурациялаудың уақыты келді. RGB светодиодының бұрынғыдан жылдамырақ жыпылықтағанын күтіңіз, содан кейін ұялы телефоннан немесе компьютерден «AutoConnectAp» деп аталатын Wi -Fi желісін іздеңіз және қосылыңыз. Қосылғаннан кейін веб -шолғышты ашып, 192.168.4.1 енгізіңіз, сіз wifi менеджерінің GUI интерфейсін табасыз (суреттерді қараңыз) және «Wi -Fi конфигурациясын» басыңыз. Esp8266 wifi желілерін іздегенше күтіңіз және керекті желіні таңдаңыз. Құпия сөзді енгізіп, «Сақтау» түймесін басыңыз. Esp8266 қайта іске қосылады (бұл жолы RGB жетегі маңызды емес, себебі ол кездейсоқ ақпаратты шығарады) және желіге қосылады.

10 -қадам: Қорытынды

Қорытынды
Қорытынды
Қорытынды
Қорытынды
Қорытынды
Қорытынды
Қорытынды
Қорытынды

Ақырында, мұздатқыштың температурасын тіркеу кезінде деректерді тіркеушіден алынған график. Қызғылт сары түсте - DS18B20, көк түсте - LM35 және оның схемасы. Сандықтан аналогтық сенсорға дейінгі дәлдіктің ең үлкен айырмашылығын көре аласыз (менің «ADC схемасы нашар»), кейбір физикалық емес мәліметтерді береді. Қорытындылай келе, егер сіз бұл тіркеушіні құрғыңыз келсе, мен DS18B20 цифрлық температура датчигін қолдануды ұсынамын. оқуға оңай және «қосуға және ойнауға» болады, ол тұрақты және дәл, ол 3,3В кернеуде жұмыс істейді және көптеген сенсорлар үшін тек бір түйреуішті қажет етеді. Назар аударғаныңыз үшін рахмет, бұл жоба сіз үшін жақсы деп үміттенемін пайдалы ақпараттар табылды. Ал кім түсінгісі келсе, мен барлық қажетті ақпаратты бергенімді қалаймын. Егер мен бәрін сұрауға дайын болмасам, мен барлық сұрақтарға жауап беруге қуаныштымын. Мен ағылшын тілін білмейтіндіктен, егер бірдеңе дұрыс болмаса немесе түсініксіз болса, маған хабарлаңыз. Егер сізге бұл жоба ұнаған болса, оны конкурстарға дауыс беріңіз және/немесе пікір қалдырыңыз. Бұл мені жаңа мазмұнды жаңартуға және жариялауға ынталандырады. Рақмет сізге.

Ұсынылған: