Mündəricat:

WiFi İstilik Qeydiyyatı (ESP8266 ilə): 11 Addım (Şəkillərlə)
WiFi İstilik Qeydiyyatı (ESP8266 ilə): 11 Addım (Şəkillərlə)

Video: WiFi İstilik Qeydiyyatı (ESP8266 ilə): 11 Addım (Şəkillərlə)

Video: WiFi İstilik Qeydiyyatı (ESP8266 ilə): 11 Addım (Şəkillərlə)
Video: 4х канальное Zigbee реле ZG-003-RF с сухими контактами - способы подключения, режимы работы 2024, Noyabr
Anonim
Image
Image
Materiallar
Materiallar

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

Materiallar
Materiallar
Materiallar
Materiallar
Materiallar
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

Sensor seçimi
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
LM35
LM35
LM35
LM35
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

DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
DS18B20
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

ESP8266 kodu
ESP8266 kodu
ESP8266 kodu
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ə

ESP8266 Kiçik Hiylə
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

İlk dəfə Əməliyyat
İlk dəfə Əməliyyat
İlk dəfə Əməliyyat
İ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ə

Nəticə
Nəticə
Nəticə
Nəticə
Nəticə
Nəticə
Nəticə
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ə: