Mündəricat:
- Addım 1: Materiallar
- Addım 2: Sensor seçimi
- Addım 3: LM35
- Addım 4: DS18B20
- Addım 5: ESP8266 Kodu
- Addım 6: ESP8266 Kod: LM35 İstifadəçisi
- Addım 7: ESP8266 Kod: DS18B20 İstifadəçisi
- Addım 8: ESP8266 Kiçik Hiylə
- Addım 9: İlk dəfə əməliyyat
- Addım 10: Nəticə
Video: WiFi İstilik Qeydiyyatı (ESP8266 ilə): 11 Addım (Şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Salam, sizi burada görməkdən məmnunam. Ümid edirəm ki, bu dərslikdə faydalı məlumatlar tapa bilərsiniz. Mənə təkliflər, suallar göndərməkdən çekinmeyin… Burada bəzi əsas məlumatlar və layihəyə qısa bir baxış var. Mobil istifadəçilər üçün: Video. Layihə haqqında fikirlərinizi şərh bölməsində bildirin, təşəkkürlər. Bu yaxınlarda bir cəhd etmək üçün NodeMcu (esp8266 əsaslı) lövhə aldım, buna görə bu həqiqətən inkişaf etmiş bir layihə deyil. Ancaq işləyir və ehtiyacım olan şeydir, buna görə də bu məlumatları qeyd etmək üçün əsas funksiya temperaturu toplamaq və bir serverdə saxlamaqdır. Bu, istifadəçilərə qeydiyyatçının eyni yerində olmadıqda belə məlumatları və qrafikləri onlayn olaraq yoxlamağa imkan verir (məsələn, hava stansiyası üçün). Başqa bir faydalı xüsusiyyət, istifadəçinin proqram təminatını asanlıqla yeniləməsinə və fərdiləşdirməsinə imkan verən OTA yeniləməsidir. Bütün müsbət və mənfi cəhətləri tarazlaşdırmaq üçün iki sensoru və bununla əlaqədar əldə etmə üsulunu təhlil edəcəyəm.
Spoyler: Bir az sınaqdan sonra gördüm ki, DS18B20 kimi rəqəmsal sensor ən yaxşı həlldir, çünki sabitlik və daha yüksək dəqiqlik təqdim edir. Artıq suya davamlıdır və kabel ilə.
Addım 1: Materiallar
Bu, az sayda xarici komponenti olan minimal bir layihədir, bunun üçün MB -nin siyahısı həqiqətən qısa olacaq. Bununla birlikdə, hansı materialın tələb olunduğunu görək:
- NodeMcu V3 (və ya hər hansı uyğun ESP8266 μprosessor);
- RGB led (ümumi anod);
- Led üçün rezistorlar (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
- DS18B20 (Maksim inteqrasiya edilmiş termometr);
- LM35 (Texas Instrument termometri);
- Xarici batareya (isteğe bağlı);
- Kabel;
- Bağlayıcı (daha "inkişaf etmiş" etmək üçün);
- Qutu (isteğe bağlı, daha da "inkişaf etmiş" etmək üçün);
- Led tutucu (isteğe bağlı);
Qeyd: Dediyim kimi iki üsuldan birini seçməlisiniz. LM35 termometrini seçsəniz, bir neçə digər komponentə ehtiyacınız olacaq:
- Attiny45/85;
- AVR proqramçısı (və ya ISP olaraq Arduino);
- Rezistor (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
- 2.54 mm şerit konnektoru (isteğe bağlı)
- Diod (2x1N914)
- Perfboard və ya PCB;
Addım 2: Sensor seçimi
Sensorun seçilməsi çətin bir addım ola bilər: bu gün fərqli temperatur aralığına, dəqiqliyə və korpusa malik həm analoq, həm də rəqəmsal çeviricilər (TI 144 fərqli element təklif edir) var.
- Məlumat qeyd cihazı asanlıqla temperaturdan başqa bir kəmiyyətə dəyişdirilə bilər (gərginlik, cərəyan,…);
- Bir az daha ucuz ola bilər;
- Xüsusi kitabxana tələb etmədiyi üçün istifadəsi asandır;
Eksiler:
- ADC (ölçmənin düzgünlüyünə təsir edə bilən) və digər xarici komponentlər tələb olunur. Esp8266 -da yalnız bir ADC (və həqiqətən dəqiq deyil) olduğu üçün xarici bir istifadə etməyi təklif edərdim.
- Hər hansı bir induksiyalı gərginlik nəticəni dəyişə biləcəyi üçün səs -küydən imtina edən xüsusi bir kabel lazımdır.
Bir az düşündükdən sonra +10mV/° C miqyaslı faktorlu, 0,5 ° C dəqiqliyə malik olan və 4V -dan 30V -a qədər işləmə gərginliyinə malik çox aşağı cərəyanı (təxminən 60uA) olan LM35 -dən istifadə etmək qərarına gəldim. Daha ətraflı məlumat üçün məlumat cədvəlinə baxmağı təklif edirəm: LM35.
Rəqəmsal Sensorlar (çox tövsiyə olunur) Üstünlükləri:
Demək olar ki, hər hansı bir xarici komponentə ehtiyac var;
İnteqrasiya edilmiş ADC
Eksiler:
Rəqəmsal siqnalın deşifr edilməsi üçün kitabxana və ya proqram təminatı tələb edin (I2C, SPI, Serial, One Wire,…);
Daha baha;
Amazonda 5 suya davamlı sensorlar dəsti tapdığım və internetdə geniş şəkildə sənədləşdirildiyi üçün DS18B20 seçdim. Əsas xüsusiyyət 9-12bit ölçmə, 1-telli avtobus, 3.0 ilə 5.5 arasında təchizat gərginliyi, 0.5 ° C dəqiqlikdir. Yenə daha ətraflı məlumat üçün məlumat cədvəlini təqdim edirik: DS18B20.
Addım 3: LM35
LM35 termometrinin xarici ADC və digər xüsusiyyətlərini necə tətbiq etdiyimi təhlil edək. Üç telli bir kabel tapdım, biri ekranlaşdırıcı, ikisi isə yox. Sensorun yaxınlığındakı gərginliyi sabitləşdirmək üçün bir ayırma kondansatörü əlavə etmək qərarına gəldim. Analog temperaturu rəqəmsal hala çevirmək üçün bir dip8 paketində Attiny85 mikroprosessorundan istifadə etdim (daha çox məlumat üçün məlumat cədvəlinə baxın: attiny85). Bizim üçün ən vacib şey 10 bit ADC -dir (əslində ən yaxşısı deyil, mənim üçün kifayət qədər dəqiqdir). Esp8266 ilə ünsiyyət qurmaq üçün esp8266 -nın 5V -də 3.3V və attiny85 ilə işlədiyini nəzərə alaraq Serial ünsiyyətdən istifadə etmək qərarına gəldim (sensoru işə salmaq lazım olduğu üçün). Buna nail olmaq üçün sadə bir gərginlik bölücü istifadə etdim (sxematik bax). Mənfi temperaturu oxumaq üçün mənfi enerji təchizatı istifadə etmək istəmədiyim üçün bəzi xarici komponentləri (2x1N914 və 1x18k rezistor) əlavə etməliyik. Burada kod var: TinyADC anbarı. Qeyd: bu kodu tərtib etmək üçün qurmalısınız. (bunu seçimə daxil edin: https://drazzy.com/package_drazzy.com_index.json), bunu necə edəcəyinizi bilmirsinizsə, Google -da axtarın və ya.hex faylını birbaşa yükləyin.
Addım 4: DS18B20
Bu sensorları Amazon -dan aldım (5 -in qiyməti təxminən 10 avrodur). Paslanmayan polad qapaq və 1m uzunluğunda bir kabel ilə gəldi. Bu sensor, 9-12 bit temperatur məlumatlarını geri qaytara bilir. Hamısının bənzərsiz bir identifikatoru olduğu üçün bir çox sensoru eyni pinə bağlamaq olar. DS18B20 -ni esp8266 -ya bağlamaq üçün sxematik olaraq (ikinci fotoşəkil) əməl edə bilərsiniz. Qeydiyyatçımın üç probu olacağına qərar verdiyim üçün hansının olduğunu ayırd etməliyəm. Buna görə də onlara proqram vasitəsi ilə ünvanlarına bağlı bir rəng verməyi düşündüm. Termo büzülən bir boru istifadə etdim (üçüncü şəkil).
Addım 5: ESP8266 Kodu
Bu dünyada yeni olduğum üçün bir çox kitabxanadan istifadə etmək qərarına gəldim. Girişdə deyildiyi kimi, əsas xüsusiyyətlər bunlardır:
- OTA yeniləməsi: kodu yükləməyiniz lazım olduqda hər dəfə esp8266 -nı kompüterinizə bağlamanıza ehtiyac yoxdur (bunu yalnız ilk dəfə etməlisiniz);
- Simsiz menecer, simsiz şəbəkə dəyişərsə, eskizi yenidən yükləməyinizə ehtiyac yoxdur. Esp8266 giriş nöqtəsinə qoşulan şəbəkə parametrlərini yenidən konfiqurasiya edə bilərsiniz;
- Thingspeak məlumat trasmission;
- Həm LM35, həm də DS18B20 dəstəklənir;
- Sadə İstifadəçi Arayüzü (RGB led bəzi faydalı məlumatları göstərir);
Zəhmət olmasa məndən üzr istəyin, çünki proqramım ən yaxşı deyil və həqiqətən də yaxşı sifariş edilməmişdir. Cihaza yükləməzdən əvvəl, kodu parametrlərinizə uyğunlaşdırmaq üçün bəzi parametrləri dəyişdirməlisiniz. Burada proqramı yükləyə bilərsiniz. Ümumi LM35 və DS18B20 konfiqurasiyası OTA yeniləməsi üçün pin tərifini, mö'cüzəni, kanal nömrəsini, istifadəçi və şifrəni dəyişdirməlisiniz. 15 -dən 23 -ə qədər xətt.
#qırmızı YOURPINHERE #yaşıl YOURPINHERE -i təyin edin
#define blue YOURPINHERE const char* host = "ana ünvanı seçin"; // həqiqətən lazım deyil esp8266-webupdate const char* update_path = "/firmware" tərk edə bilərsiniz; // məsələn, yeniləmə ünvanını dəyişdirmək üçün: 192.168.1.5/firmware const char* update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; imzasız uzun myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";
Addım 6: ESP8266 Kod: LM35 İstifadəçisi
Çarpayı lövhəsini esp8266 -ya bağlamalısınız, ADC qurğusunu gücləndirmək üçün VU pin və G pin istifadə edin. Serial ünsiyyət üçün hansı pimi istifadə etmək istədiyinizi seçməlisiniz (hardware ayıklama məqsədi ilə serialı pulsuz saxlamaq üçün). Tx pin seçilməlidir, amma əslində istifadə edilmir. (Satır 27). SoftwareSerial mySerial (RXPIN, TXPIN); Üstünə əlavə etməlisiniz: #define LM35USER
Addım 7: ESP8266 Kod: DS18B20 İstifadəçisi
İlk əməliyyat olaraq hər bir sensor üçün cihazın ünvanını təyin etməlisiniz. Bu kodu esp -ə yığın və proqramlaşdırın və nəticələr üçün seriala baxın. Kodu burada tapa bilərsiniz (bu başlığı səhifədə axtarın: «Fərdi DS18B20 Daxili Ünvanlarını oxuyun»). Ünvanı əldə etmək üçün yalnız bir sensoru bağlayın, nəticələr belə bir şey olmalıdır (burada təsadüfi ədəd! Nümunə kimi): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12O zaman bölmədə kodumu dəyişdirməlisiniz " DS18B20 "üçün konfiqurasiya (satır 31-36)":
#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION // (9 -dan 12 -ə qədər) #define gecikməDallas READINTERVAL // (Millisekundlarda, minimum 15s və ya 15000mS -dir) DeviceAddress blueSSS, 0x1, 0x1, 0x1, 0x11 0x12}; // ADRESİNİZDƏ DEĞİŞDİR DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ADRESİNİZDƏ DEĞİŞDİR DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ADRESİNİZDƏ DEĞİŞDİR Yuxarıda əlavə etməlisiniz: #define DSUSER
Addım 8: ESP8266 Kiçik Hiylə
Bir az sınaqdan sonra, esp8266 -nı proqramlaşdırmadan bağlasanız, sıfırlama düyməsini bir dəfə basana qədər kodu işləməyəcəyini gördüm. Bu problemi həll etmək üçün, bir az araşdırmadan sonra, 3.3V-dən D3-ə qədər bir çəkmə rezistoru əlavə etməli olduğunuzu kəşf etdim. Bu, prosessorun kodunu flash yaddaşdan yükləməsini söyləyəcək və bu üsulla D3 birbaşa DS18B20 sensorlar üçün məlumat daxil etmək üçün istifadə edilə bilər.
Addım 9: İlk dəfə əməliyyat
Kodu düzgün yükləmisinizsə, amma heç vaxt Wifi menecer kitabxanasından istifadə etməsəniz, wifi bağlantınızı konfiqurasiya etməyin vaxtıdır. RGB ledinin əvvəlkindən daha sürətli yanıb -sönməsini görənə qədər gözləyin, sonra mobil və ya kompüterinizlə "AutoConnectAp" adlı wifi şəbəkəsini axtarın və qoşulun. Bağlandıqdan sonra bir veb brauzeri açın və 192.168.4.1 daxil edin, wifi menecerinin GUI interfeysini tapacaqsınız (şəkillərə baxın) və "Wifi Konfiqurasiya et" düyməsini basın. Esp8266 -nın wifi şəbəkələrini axtarmasını gözləyin və istədiyiniz birini seçin. Şifrəni daxil edin və "Saxla" düyməsini basın. Esp8266 yenidən başlayacaq (RGB -nin bu dəfə idarə etməsinə əhəmiyyət verməyin, çünki bəzi təsadüfi məlumatlar çıxaracaq) və şəbəkəyə qoşulacaq.
Addım 10: Nəticə
Sonda, dondurucu istiliyimi qeyd edərkən məlumat qeydçisindən alınan bir qrafikdir. Narıncı rəngdə DS18B20, mavi rəngdə isə LM35 və dövrə var. Fiziki olmayan bəzi məlumatlar verən rəqəmsaldan analoq sensora qədər (yoxsul "ADC dövrəm" ilə) dəqiqlikdəki ən böyük fərqi görə bilərsiniz. Xülasə edərək bu qeyd cihazını qurmaq istəyirsinizsə DS18B20 rəqəmsal temperatur sensoru istifadə etməyi təklif edirəm. oxumaq daha asandır və demək olar ki, "tak ve çalıştır", daha sabit və dəqiqdir, 3.3V -də işləyir və çoxlu sensorlar üçün yalnız bir pin tələb edir. Diqqətinizə görə təşəkkür edirəm ki, bu layihə sizin üçün yaxşıdır və faydalı məlumatlar tapdı. Və bunu həyata keçirmək istəyənlər üçün, lazım olan bütün məlumatları verməyimi arzulayıram. Hər şeyi soruşmaqda sərbəst olmasaydım, bütün suallara cavab verməkdən məmnun olaram. İngilis dilində danışmadığım üçün bir şey səhvdirsə və ya anlaşılmazdırsa mənə bildirin. Bu layihəni bəyənmisinizsə, yarışmalara səs verin və/və ya şərh yazın. Yeni məzmunu yeniləməyə və nəşr etməyə davam etməyimə təşviq edəcək. Çox sağ ol.
Tövsiyə:
Corona simptomlarının aşkarlanması və məlumatların qeydiyyatı ilə Smart Watchz: 10 addım
Corona Semptomlarının Algılanması və Məlumatların Qeydiyyatı ilə Smart Watchz: Bu, serverdə məlumatların qeyd edilməsi ilə LM35 və Accelerometer istifadə edərək Corona simptomları aşkar edən bir Smartwatch. Rtc, vaxtı göstərmək və telefonla sinxronizasiya etmək və məlumatları qeyd etmək üçün istifadə etmək üçün istifadə olunur. Esp32, mavi ilə korteks nəzarətçisi olan bir beyin olaraq istifadə olunur
Moruq PI İstilik və Nəmlik Qeydiyyatı, Bulud Hava İstasyonu, Wifi və Mobil İstatistikler: 6 Addım
Raspberry PI İstilik və Nəmlik Qeydiyyatı, Bulud Hava İstasyonu, Wifi və Mobil İstatistikler: Raspberry PI cihazı ilə otaqda, istixanada, laboratoriyada, soyutma otağında və ya başqa yerlərdə temperatur və rütubət məlumatlarını çöldə qeyd edə bilərsiniz. İstilik və rütubəti qeyd etmək üçün istifadə edəcəyimiz bu nümunə. Cihaz internetə qoşulacaq
Raspberry Pi İstilik Qeydiyyatı: 8 addım
Raspberry Pi Temperatur Logger: Burada 5,00 dollarlıq I2C temperatur sensoru istifadə edərək sadə bir temperatur qeyd cihazı qurmaq üçün təlimatlar verilmişdir. Məlumatlar SD kartda saxlanılır və asanlıqla Excel -ə idxal edilə bilər. Digər sensorları dəyişdirmək və ya əlavə etməklə digər məlumat növləri də ola bilər
WiFi LED Şeridi + ESP8266 ilə İstilik Sensoru: 6 addım
WiFi LED Şeridi + ESP8266 ilə İstilik Sensoru: Bu təlimat, ESP8266 qurmaq və həm temperatur sensoru, həm də LED şeridi ilə danışmaq, eyni zamanda WiFi üzərindən MQTT ilə çıxışı qəbul etmək və göndərmək üçün addımları təsvir edir. Layihə Cal Poly San -da alınan bir kurs üçün hazırlanmışdır
Bluetooth vasitəsi ilə SD Kart Modulu ilə Arduinodan Android Telefonuna İstilik və Rütubət Məlumatlarını Qeyd edən: 5 addım
Bluetooth vasitəsi ilə SD Kart Modulu ilə Arduinodan Android Telefona qədər İstilik və Rütubət Məlumatlarını Qeyd edən: Hamıya Salam, bu mənim ilk təlimatımdır, inşallah istehsalçı cəmiyyətinə kömək etdiyim kimi kömək edərəm. Çox vaxt layihələrimizdə sensorlar istifadə edirik, ancaq məlumatları toplamaq, saxlamaq və dərhal Telefonlara və ya digər cihazlara ötürmək üçün bir yol tapırıq