Mundarija:
- 1 -qadam: materiallar
- 2 -qadam: Sensorni tanlash
- 3 -qadam: LM35
- 4 -qadam: DS18B20
- 5 -qadam: ESP8266 kodi
- 6 -qadam: ESP8266 kodi: LM35 foydalanuvchisi
- 7 -qadam: ESP8266 kodi: DS18B20 foydalanuvchisi
- 8 -qadam: ESP8266 Kichik hiyla
- 9 -qadam: Birinchi operatsiya
- 10 -qadam: Xulosa
Video: Wi -Fi harorati qayd etuvchisi (ESP8266 bilan): 11 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Salom, sizni bu erda ko'rganimdan xursandman. Umid qilamanki, siz ushbu ko'rsatmalarni foydali ma'lumotlarni topasiz. Menga bemalol takliflar, savollar yuborishingiz mumkin … Bu erda ba'zi asosiy ma'lumotlar va loyihaning tezkor ko'rinishi. Mobil foydalanuvchilar uchun: Video. Loyiha haqida fikringizni sharhlar bo'limida ayting, rahmat. Men yaqinda sinab ko'rish uchun NodeMcu (esp8266 asosidagi) taxtasini sotib oldim, shuning uchun bu juda ilg'or loyiha emas. Lekin u ishlaydi va bu menga kerak bo'lgan narsadir, shuning uchun bu ma'lumotni qayd qilishning asosiy vazifasi haroratni yig'ish va uni serverga saqlashdir. Bu foydalanuvchilarga jurnalni bir joyda bo'lmagan taqdirda ham (masalan, ob -havo stantsiyasi uchun) ma'lumot va grafikni onlayn tekshirish imkonini beradi. Yana bir foydali xususiyat - bu OTA yangilanishi bo'lib, u foydalanuvchiga dasturiy ta'minotni osongina yangilash va sozlash imkonini beradi. Men barcha datchiklar va ularni sotib olish usullarini tahlil qilib, barcha ijobiy va salbiy tomonlarini muvozanatlashtiraman.
Spoyler: bir oz sinovdan so'ng, DS18B20 kabi raqamli sensor eng yaxshi echim ekanligini aniqladim, chunki u barqarorlik va yuqori aniqlikni ta'minlaydi. U allaqachon suv o'tkazmaydigan va kabel bilan.
1 -qadam: materiallar
Bu juda oz tashqi komponentli minimal loyiha, shuning uchun banklar ro'yxati juda qisqa bo'ladi. Ammo, keling, qanday material talab qilinishini ko'rib chiqaylik:
- NodeMcu V3 (yoki mos keladigan har qanday ESP8266 mikroprosessor);
- RGB LED (umumiy anod);
- Chiroqlar uchun rezistorlar (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
- DS18B20 (Maxim o'rnatilgan termometr);
- LM35 (Texas Instrument termometr);
- Tashqi batareya (ixtiyoriy);
- Kabel;
- Ulagich (uni yanada "rivojlangan" qilish uchun);
- Box (ixtiyoriy, yana "ilg'or" qilish uchun);
- Led ushlagichi (ixtiyoriy);
Eslatma: Men aytganimdek, siz ikkita usuldan birini tanlashingiz kerak. Agar siz LM35 termometrini tanlasangiz, sizga boshqa komponentlar kerak bo'ladi:
- Attiny45/85;
- AVR dasturchisi (yoki Arduino provayder sifatida);
- Rezistor (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
- 2,54 mm chiziqli ulagich (ixtiyoriy)
- Diyot (2x1N914)
- Perfboard yoki tenglikni;
2 -qadam: Sensorni tanlash
Sensorni tanlash qiyin bo'lishi mumkin: bugungi kunda har xil harorat diapazoni, aniqligi va korpusiga ega analog va raqamli ham (TI 144 xil elementni taklif qiladigan) tonna o'tkazgichlar mavjud.
- Ma'lumotlarni yozish moslamasini haroratdan boshqasiga osongina o'zgartirish mumkin (kuchlanish, oqim, …);
- Biroz arzonroq bo'lishi mumkin;
- Foydalanish oson, chunki u maxsus kutubxonani talab qilmaydi;
Kamchiliklari:
- ADC (o'lchov aniqligiga ta'sir qilishi mumkin) va boshqa tashqi komponentlarni talab qiling. Esp8266 -da faqat bitta ADC (va aniq emas) bo'lgani uchun men tashqi qurilmadan foydalanishni taklif qilaman.
- Shovqinni o'chirish uchun maxsus kabel kerak, chunki har qanday induktiv kuchlanish natijani o'zgartirishi mumkin.
Biroz o'ylab, men LM35, 0,5 ° C aniqlikdagi +10mV/° C o'lchovli faktorli chiziqli sensorni va 4V dan 30V gacha bo'lgan ish kuchlanishiga ega bo'lgan juda past oqimni (taxminan 60uA) ishlatishga qaror qildim. Batafsil ma'lumot uchun LM35 ma'lumotlar jadvalini ko'rishni taklif qilaman.
Raqamli sensorlar (tavsiya etiladi)
Deyarli har qanday tashqi komponentlar;
Birlashtirilgan ADC
Kamchiliklari:
Raqamli signalni (I2C, SPI, Serial, One Wire,…) dekodlash uchun kutubxona yoki dasturiy ta'minotni so'rash;
Qimmatroq;
Men DS18B20 ni tanladim, chunki men Amazonda 5 ta suv o'tkazmaydigan sensorlar to'plamini topdim va u Internetda keng hujjatlashtirilgan. Asosiy xususiyat-9-12bitli o'lchov, 1-simli avtobus, 3,0 dan 5,5 gacha kuchlanish, 0,5 ° S aniqlik. Yana, batafsil ma'lumot uchun bu erda ma'lumotlar jadvali: DS18B20.
3 -qadam: LM35
Keling, tashqi ADC va LM35 termometrining boshqa xususiyatlarini qanday amalga oshirganimni tahlil qilaylik. Men uchta simli kabelni topdim, bittasi ekranlangan va ikkitasi. Men sensori yaqinidagi besleme zo'riqishini barqarorlashtirish uchun ajratuvchi kondansatör qo'shishga qaror qildim. Analog haroratni raqamli rejimga o'tkazish uchun men dip8 paketda Attiny85 mikroprotsessoridan foydalandim (yana ma'lumot uchun: attiny85 ma'lumotlar jadvaliga qarang). Biz uchun eng muhim narsa bu 10 bitli ADC (aslida eng yaxshisi emas, lekin men uchun etarlicha aniq). Esp8266 bilan aloqa qilish uchun men esp8266 5V da 3.3V va attiny85 bilan ishlashini hisobga olgan holda ketma -ket aloqadan foydalanishga qaror qildim (chunki u sensorni quvvatlantirishi kerak). Bunga erishish uchun oddiy kuchlanish taqsimlagichidan foydalandim (sxemaga qarang). Salbiy haroratni o'qish uchun biz ba'zi tashqi komponentlarni (2x1N914 va 1x18k rezistor) qo'shishimiz kerak, chunki manfiy quvvat manbaidan foydalanishni xohlamayman, mana bu kod: TinyADC ombori. Eslatma: bu kodni kompilyatsiya qilish uchun siz o'rnatishingiz kerak bo'ladi. Agar siz buni qanday qilishni bilmasangiz, Google -dan qidiring yoki.hex faylini to'g'ridan -to'g'ri yuklang.
4 -qadam: DS18B20
Men bu sensorlarni Amazondan sotib oldim (5 narxi taxminan 10 evro). U zanglamaydigan po'latdan yasalgan qopqoq va uzunligi 1 m bo'lgan simi bilan keldi. Ushbu sensor haroratning 9 dan 12 bitli ma'lumotlarini qaytarishi mumkin. Ko'pgina sensorlar bitta pinga ulanishi mumkin, chunki ularning hammasi yagona identifikatorga ega, DS18B20 ni esp8266 ga ulash uchun siz sxemaga amal qilishingiz mumkin (ikkinchi rasm). Men loggerda uchta prob bo'lishi kerak deb qaror qilganim uchun, qaysi biri ekanligini farqlashim kerak edi. Shuning uchun men ularga dasturiy ta'minot orqali bog'langan rangni o'z manziliga berishni o'yladim. Men termo-qisqaradigan naychadan foydalandim (uchinchi rasm).
5 -qadam: ESP8266 kodi
Men bu dunyoga yangi kelganim uchun ko'p kutubxonalardan foydalanishga qaror qildim. Kirish qismida aytilganidek, asosiy xususiyatlar:
- OTA yangilanishi: har safar kodni yuklashda esp8266 -ni kompyuterga ulash shart emas (buni faqat birinchi marta qilish kerak);
- Simsiz menejer, agar simsiz tarmoq o'zgarsa, eskizni qayta yuklash shart emas. Siz shunchaki esp8266 kirish nuqtasiga ulanadigan tarmoq parametrlarini qayta sozlashingiz mumkin;
- Thingspeak ma'lumotlarining uzilishi;
- Ham LM35, ham DS18B20 qo'llab -quvvatlanadi;
- Oddiy foydalanuvchi interfeysi (RGB led ba'zi foydali ma'lumotlarni ko'rsatadi);
Iltimos, kechirim so'rang, chunki mening dasturiy ta'minotim eng yaxshi emas va u yaxshi buyurtma qilinmagan. Qurilmaga yuklamasdan oldin, ba'zi parametrlarni kodni sozlashingizga mos ravishda o'zgartirish kerak. Bu erda siz dasturiy ta'minotni yuklab olishingiz mumkin. Umumiy LM35 va DS18B20 konfiguratsiyasi Siz OTAni yangilash uchun pin ta'rifini, tokenni, kanal raqamini, foydalanuvchi va parolni o'zgartirishingiz kerak. Chiziq 15 dan 23 gacha.
#qizil YOURPINHERE #yashil YOURPINHERE ni belgilang
#define blue YOURPINHERE const char* host = "xost manzilini tanlang"; // kerak emas esp8266-webupdate const char* update_path = "/firmware" ni tark etishingiz mumkin; // masalan, yangilanish manzilini o'zgartirish uchun: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; unsigned long myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";
6 -qadam: ESP8266 kodi: LM35 foydalanuvchisi
Siz att8 taxtasini esp8266 ga ulashingiz kerak, ADC qurilmasini quvvatlantirish uchun VU va G pinlaridan foydalaning. Siz ketma -ket aloqa uchun qaysi pinni ishlatishni tanlashingiz kerak (disk raskadrovka uchun qo'shimcha qurilmalarni bo'sh saqlash uchun). Tx pin tanlangan bo'lishi kerak, lekin aslida ishlatilmaydi. (27 -qator). SoftwareSerial mySerial (RXPIN, TXPIN); Yuqoriga quyidagilarni qo'shishingiz kerak: #define LM35USER
7 -qadam: ESP8266 kodi: DS18B20 foydalanuvchisi
Birinchi operatsiya sifatida har bir sensor uchun qurilmaning manzilini aniqlash kerak. Ushbu kodni esp -ga kompilyatsiya qiling va dasturlang va natijalarni ketma -ket ko'ring. Kodni bu erda topishingiz mumkin (bu sarlavhani sahifada qidiring: "DS18B20 shaxsiy manzillarini o'qing"). Manzilni olish uchun faqat bitta sensorni ulang, natijalar shunday bo'lishi kerak (tasodifiy raqam bu erda! Misol uchun): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12 Keyin bo'limimni kodini o'zgartirish kerak " DS18B20 "konfiguratsiyasi (31-36 qatorlar)":
#Define ONE_WIRE_BUS ONEWIREPINHERE #deFine TEMPERATURE_PRECISION TEMPBITPRECISION // (9 dan 12 gacha) #define delayDallas READINTERVAL // (Millisekundlarda, minimal 15s yoki 15000mS) DeviceAddress blueSSS, 0x1, 0x1, 0x1 va 0x11 0x12}; // Manzilingiz bilan o'zgartirish DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // Manzilingiz bilan o'zgartirish DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // MANZILINGIZ BILAN O'ZGARTIRISH Tepaga qo'shishingiz kerak: #define DSUSER
8 -qadam: ESP8266 Kichik hiyla
Biroz sinovdan so'ng, agar siz esp8266 -ni dasturlashsiz ulasangiz, u bir marta reset tugmasini bosmaguningizcha kodni ishlamasligini aniqladim. Bu muammoni hal qilish uchun, bir oz tadqiqotdan so'ng, 3.3V dan D3 gacha tortish qarshiligini qo'shish kerakligini aniqladim. Bu protsessorga kodni flesh -xotiradan yuklashni aytadi, bu usul yordamida D3 to'g'ridan -to'g'ri DS18B20 datchiklari uchun ma'lumotlarni kiritish uchun ishlatilishi mumkin.
9 -qadam: Birinchi operatsiya
Agar siz kodni to'g'ri yuklagan bo'lsangiz, lekin hech qachon Wifi menejeri kutubxonasidan foydalanmasangiz, Wi -Fi ulanishini sozlash vaqti keldi. RGB chiroq oldingisiga qaraganda tezroq miltillashini ko'rguncha kutib turing, keyin mobil yoki shaxsiy kompyuteringiz bilan "AutoConnectAp" deb nomlangan wifi tarmog'ini qidiring va ulaning. Ulanishdan so'ng, veb -brauzerni oching va 192.168.4.1 -ni kiriting, siz Wi -Fi menejerining GUI interfeysini topasiz (rasmlarga qarang) va "Wi -Fi -ni sozlash" tugmasini bosing. Esp8266 Wi -Fi tarmoqlarini qidirishini kuting va kerakli birini tanlang. Parolni kiriting va "Saqlash" tugmasini bosing. Esp8266 qayta ishga tushadi (bu safar RGB -ni boshqarishi muhim emas, chunki u tasodifiy ma'lumotlarni chiqaradi) va tarmoqqa ulanadi.
10 -qadam: Xulosa
Oxir -oqibat, bu erda muzlatgichning harorati qayd etilayotganda, ma'lumotlar ro'yxatga oluvchidan olingan grafik. To'q rangli DS18B20 va ko'k rangda LM35 va uning sxemasi. Siz aniqlikdagi eng katta farqni ko'rishingiz mumkin, bu raqamlidan analog sensordan (mening "ADC zanjirim" bilan), ba'zi jismoniy bo'lmagan ma'lumotlarni beradi. Xulosa qilib aytganda, agar siz bu loggerni qurmoqchi bo'lsangiz, men DS18B20 raqamli harorat sensori yordamida foydalanishni taklif qilaman. O'qish osonroq va deyarli "ulang va o'ynang", u barqarorroq va aniqroq, u 3,3V da ishlaydi va ko'plab sensorlar uchun faqat bitta pinni talab qiladi. E'tiboringiz uchun rahmat, bu loyiha siz uchun yaxshi bo'ladi deb umid qilaman foydali ma'lumotlarni topdi. Va kim buni amalga oshirishni xohlasa, men kerakli barcha ma'lumotlarni berishni xohlayman. Agar hamma narsani so'rashga hojat bo'lmasa, men hamma savollarga javob berishdan xursand bo'laman. Agar men ingliz tilini bilmasam, agar biror narsa noto'g'ri yoki tushunarsiz bo'lsa, menga xabar bering. Agar sizga bu loyiha yoqqan bo'lsa, iltimos, tanlovlarga ovoz bering va/yoki sharh qoldiring. Bu meni yangi tarkibni yangilash va nashr etishga undaydi. Rahmat.
Tavsiya:
BLYNK ESP8266 va DHT11 bilan Internetdagi xona harorati: 5 qadam (rasmlar bilan)
BLYNK ESP8266 va DHT11 yordamida Internetdagi xona harorati: Salom bolalar, bugun biz xona harorati monitorini yasaymiz, uning yordamida biz dunyoning istalgan nuqtasidan xonamizni kuzatib boramiz va buning uchun biz BLYNK IoT plastinka formasidan foydalanamiz. DHT11 xona haroratini o'qish uchun biz ESP8266 dan foydalanamiz
Ma'lumotlarni qayd qilish bilan ob -havo stantsiyasi: 7 qadam (rasmlar bilan)
Ma'lumotlarni yozib olish bilan ob -havo stantsiyasi: Bu ko'rsatmada men sizga ob -havo stantsiyalari tizimini o'zingiz qanday qilishni ko'rsataman. Sizga kerak bo'lgan yagona narsa - elektronika, dasturlash va ozgina vaqt. Bu loyiha hali boshlanmoqda. Bu faqat birinchi qism. Yangilanishlar
Harorat, PH va erigan kislorod uchun ma'lumotlarni qayd qilish vositasini qanday qilish kerak: 11 qadam (rasmlar bilan)
Harorat, PH va erigan kislorod uchun ma'lumotlarni qayd qilish vositasini qanday qilish kerak: Maqsadlar: ≤ 500 dollarga ma'lumot yozuvchi yasang. U harorat, pH va DO ma'lumotlarini vaqt tamg'asi va I2C aloqasi yordamida saqlaydi. Nima uchun I2C (Inter-Integrated Circuit)? Bir nechta sensorlarni bir qatorga yig'ish mumkin, chunki ularning har birida
Haqiqiy vaqtda MPU-6050/A0 Arduino va Android bilan ma'lumotlarni qayd qilish: 7 qadam (rasmlar bilan)
Arduino va Android bilan MPU-6050/A0 ma'lumotlarini real vaqt rejimida yozish: Men Arduino-ni mashinada o'rganish uchun ishlatishdan manfaatdorman. Birinchi qadam sifatida men Android qurilmasi bilan real vaqtda (yoki unga juda yaqin) ma'lumotlarni ko'rsatish va logger yaratmoqchiman. Men MPU-6050 dan akselerometr ma'lumotlarini olishni xohlayman, shuning uchun men
ESP8266/ESP-12 Arduino bilan ishlaydigan SmartThings DS18B20 harorati. Sensor: 4 qadam (rasmlar bilan)
ESP8266/ESP-12 Arduino bilan ishlaydigan SmartThings DS18B20 harorati. Sensor: Biz hammamiz xona harorati, ba'zida boshqa xonada yoki hatto dunyoning narigi burchagidagi dam olish uyingizda harorat qanday bo'lishini bilishni yaxshi ko'ramiz. Ehtimol, siz uy hayvoningiz Lizard uyidagi haroratni kuzatishni xohlaysiz