Სარჩევი:

WiFi ტემპერატურის ჟურნალი (ESP8266– ით): 11 ნაბიჯი (სურათებით)
WiFi ტემპერატურის ჟურნალი (ESP8266– ით): 11 ნაბიჯი (სურათებით)

ვიდეო: WiFi ტემპერატურის ჟურნალი (ESP8266– ით): 11 ნაბიჯი (სურათებით)

ვიდეო: WiFi ტემპერატურის ჟურნალი (ESP8266– ით): 11 ნაბიჯი (სურათებით)
ვიდეო: Using Micro SD Card and Data logging with Arduino | Arduino Step by Step Course Lesson 106 2024, ნოემბერი
Anonim
Image
Image
მასალები
მასალები

გამარჯობა, მიხარია აქ რომ გხედავ. ვიმედოვნებ, რომ ამ ინსტრუქციებში ნახავთ სასარგებლო ინფორმაციას. მოგერიდებათ გამომიგზავნეთ წინადადებები, კითხვები,… აქ არის ძირითადი მონაცემები და პროექტის სწრაფი მიმოხილვა. მობილური მომხმარებლებისთვის: ვიდეო. გამაგებინეთ რას ფიქრობთ პროექტის შესახებ კომენტარების განყოფილებაში, მადლობა. მე ახლახანს შევიძინე NodeMcu (esp8266 დაფუძნებული) დაფა მხოლოდ იმისთვის, რომ ვცადო, ასე რომ ეს არ არის ნამდვილად მოწინავე პროექტი. მაგრამ ის მუშაობს და ეს არის ის, რაც მე მჭირდება, ასე რომ ნორმალურია. ამ მონაცემების ჩამწერი ძირითადი ფუნქციაა შეაგროვოს ტემპერატურა და შეინახოს იგი სერვერზე. ეს საშუალებას აძლევს მომხმარებლებს შეამოწმონ მონაცემები და გრაფიკები ინტერნეტში, მაშინაც კი, როდესაც ისინი არ არიან ლოგერის იმავე ადგილას (მაგალითად, მეტეოროლოგიური სადგურისთვის). კიდევ ერთი სასარგებლო თვისება არის OTA განახლება, რომელიც შედის კოდში და საშუალებას აძლევს მომხმარებელს მარტივად განაახლოს და დააკონფიგურიროს პროგრამული უზრუნველყოფა. მე გავაანალიზებ ორ სენსორს და მათთან დაკავშირებულ შეძენის მეთოდს, რათა შევაფასო ყველა დადებითი და უარყოფითი მხარე.

სპოილერი: ცოტაოდენი ტესტირების შემდეგ აღმოვაჩინე, რომ ციფრული სენსორი, როგორიცაა DS18B20, არის საუკეთესო გამოსავალი, რადგან ის გვთავაზობს სტაბილურობას და უფრო მაღალ სიზუსტეს. ის უკვე წყალგაუმტარია და კაბელთან ერთად.

ნაბიჯი 1: მასალები

მასალები
მასალები
მასალები
მასალები
მასალები
მასალები

ეს არის მინიმალური პროექტი მხოლოდ რამდენიმე გარე კომპონენტით, ამისათვის BOM სია მართლაც მოკლე იქნება. თუმცა, ვნახოთ რა მასალაა მოთხოვნილი:

  • NodeMcu V3 (ან ნებისმიერი თავსებადი ESP8266 μ პროცესორი);
  • RGB led (საერთო ანოდი);
  • რეზისტორები led (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
  • DS18B20 (მაქსიმალური ინტეგრირებული თერმომეტრი);
  • LM35 (ტეხასის ინსტრუმენტის თერმომეტრი);
  • გარე ბატარეა (სურვილისამებრ);
  • საკაბელო;
  • კონექტორი (უფრო "მოწინავე" გახადოს);
  • ყუთი (სურვილისამებრ, ისევ რომ გახადოს ის უფრო "მოწინავე");
  • Led მფლობელი (სურვილისამებრ);

შენიშვნა: როგორც ვთქვი, თქვენ უნდა აირჩიოთ ორი მეთოდიდან ერთი. თუ აირჩევთ LM35 თერმომეტრს, დაგჭირდებათ რამდენიმე სხვა კომპონენტი:

  • Attiny45/85;
  • AVR პროგრამისტი (ან Arduino როგორც ISP);
  • რეზისტორი (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
  • 2.54 მმ ზოლიანი კონექტორი (სურვილისამებრ)
  • დიოდი (2x1N914)
  • პერფორბორდი ან PCB;

ნაბიჯი 2: სენსორის არჩევა

სენსორის არჩევა
სენსორის არჩევა

სენსორის არჩევა შეიძლება იყოს რთული ნაბიჯი: დღეს არის მრავალი გადამცემი (TI გთავაზობთ 144 სხვადასხვა ელემენტს) როგორც ანალოგურ, ასევე ციფრულ სხვადასხვა ტემპერატურის დიაპაზონში, სიზუსტესა და საქმეში. ანალოგური სენსორები (46 ნაწილი ხელმისაწვდომია TI– დან): დადებითი:

  • მონაცემთა ჩამწერი ადვილად შეიძლება შეიცვალოს ტემპერატურიდან სხვა რაოდენობაზე (ძაბვა, დენი,…);
  • შეიძლება ცოტა იაფი იყოს;
  • მარტივი გამოსაყენებლად, რადგან არ საჭიროებს რაიმე განსაკუთრებულ ბიბლიოთეკას;

მინუსები:

  • მოითხოვეთ ADC (რომელსაც შეუძლია გავლენა იქონიოს გაზომვის სიზუსტეზე) და სხვა გარე კომპონენტები. ვინაიდან esp8266– ს აქვს მხოლოდ ერთი ADC (და არა ნამდვილად ზუსტი) მე გირჩევთ გამოიყენოთ გარე.
  • საჭიროა გამოყოფილი კაბელი ხმაურის უარყოფით, რადგან ნებისმიერ გამომწვევ ძაბვას შეუძლია შეცვალოს შედეგი.

ცოტაოდენი ფიქრის შემდეგ გადავწყვიტე გამოვიყენო LM35, ხაზოვანი სენსორი +10mV/° C მასშტაბის ფაქტორით 0.5 ° C სიზუსტით და ძალიან დაბალი დენი (დაახლოებით 60uA) საოპერაციო ძაბვით 4V– დან 30V– მდე. უფრო დეტალური ინფორმაციისთვის გირჩევთ ნახოთ მონაცემთა ფურცელი: 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

მოდით გავაანალიზოთ როგორ განვახორციელე გარე ADC და სხვა ფუნქცია LM35 თერმომეტრისთვის. ვიპოვე კაბელი სამი მავთულით, ერთი დამცავი და ორი გარეშე. მე გადავწყვიტე დავამატო გამშლელი კონდენსატორი სენსორის მახლობლად ძაბვის სტაბილიზაციისათვის. ანალოგური ტემპერატურის ციფრულზე გადასაყვანად, მე გამოვიყენე Attiny85 მიკროპროცესორი dip8 პაკეტში (კიდევ უფრო მეტი ინფორმაციისთვის იხილეთ მონაცემთა ცხრილი: attiny85). ჩვენთვის ყველაზე მნიშვნელოვანი არის 10 ბიტიანი ADC (ნამდვილად არ არის საუკეთესო, მაგრამ საკმაოდ ზუსტი ჩემთვის). Esp8266– თან დასაკავშირებლად გადავწყვიტე გამოვიყენო სერიული კომუნიკაცია იმის გათვალისწინებით, რომ esp8266 მუშაობს 3.3 ვ და attiny85 5V– ზე (რადგან მას სჭირდება სენსორის ჩართვა). ამის მისაღწევად, მე გამოვიყენე მარტივი ძაბვის გამყოფი (იხ. სქემა). უარყოფითი ტემპერატურის წასაკითხად ჩვენ უნდა დავამატოთ გარე კომპონენტები (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

მე შევიძინე ეს სენსორები ამაზონიდან (5 ღირს დაახლოებით 10 €). ჩამოვიდა უჟანგავი ფოლადის საფარით და კაბელი 1 მ სიგრძით. ამ სენსორს შეუძლია დააბრუნოს 9-12 ბიტიანი ტემპერატურის მონაცემები. ბევრი სენსორი შეიძლება ჩართული იყოს ერთსა და იმავე პინში, ვინაიდან ყველა მათგანს აქვს უნიკალური ID. DS18B20- ის esp8266- ზე დასაერთებლად შეგიძლიათ უბრალოდ მიჰყევით სქემატურს (მეორე ფოტო). მას შემდეგ, რაც მე გადავწყვიტე, რომ ჩემს ხე -ტყეს ექნებოდა სამი ზონდი, მე უნდა განვასხვავო რომელია რომელი. ამიტომ ვიფიქრე, რომ მათ მივცე ფერი, რომელიც დაკავშირებულია პროგრამული უზრუნველყოფის საშუალებით მათ მისამართზე. მე გამოვიყენე თერმომცირებადი მილი (მესამე ფოტო).

ნაბიჯი 5: ESP8266 კოდი

ESP8266 კოდი
ESP8266 კოდი
ESP8266 კოდი
ESP8266 კოდი

რადგან მე ახალი ვარ ამ სამყაროში, გადავწყვიტე ბევრი ბიბლიოთეკა გამოვიყენო. როგორც შესავალში ვთქვით, ძირითადი მახასიათებლებია:

  • OTA განახლება: თქვენ არ გჭირდებათ esp8266 თქვენს კომპიუტერში ჩართვა ყოველ ჯერზე, როდესაც გჭირდებათ კოდის ატვირთვა (ეს უნდა გააკეთოთ მხოლოდ პირველად);
  • უკაბელო მენეჯერი, თუ უკაბელო ქსელი იცვლება, თქვენ არ გჭირდებათ ესკიზის ხელახლა ჩატვირთვა. თქვენ უბრალოდ შეგიძლიათ კვლავ დააკონფიგურიროთ esp8266 წვდომის წერტილთან დამაკავშირებელი ქსელის პარამეტრები;
  • Thingspeak მონაცემთა გადაცემა;
  • ორივე LM35 და DS18B20 მხარდაჭერილია;
  • მარტივი მომხმარებლის ინტერფეისი (RGB led მიუთითებს სასარგებლო ინფორმაციას);

გთხოვთ, ბოდიში მომიხადოთ, რადგან ჩემი პროგრამული უზრუნველყოფა არ არის საუკეთესო და ნამდვილად არ არის კარგად მოწესრიგებული. მოწყობილობაზე ატვირთვამდე, თქვენ უნდა შეცვალოთ ზოგიერთი პარამეტრი, რათა მოერგოს კოდს თქვენს პარამეტრს. აქ შეგიძლიათ ჩამოტვირთოთ პროგრამული უზრუნველყოფა. საერთო LM35 და DS18B20 კონფიგურაცია თქვენ უნდა შეცვალოთ პინის განსაზღვრა, ნიშანი, არხის ნომერი, მომხმარებელი და პაროლი OTA განახლებისთვის. ხაზი 15 -დან 23 -მდე.

#განსაზღვრეთ წითელი YOURPINHERE #განსაზღვრეთ მწვანე YOURPINHERE

#განსაზღვრეთ ლურჯი 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 pin და G pin. თქვენ უნდა აირჩიოთ რომელი პინის გამოყენება გსურთ სერიული კომუნიკაციისთვის (რომ ტექნიკური სერიალი იყოს თავისუფალი გამართვის მიზნით). Tx pin უნდა იყოს არჩეული, მაგრამ ნამდვილად არ გამოიყენება. (ხაზი 27). პროგრამული უზრუნველყოფა სერიული 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 -მდე) #განსაზღვრეთ დაგვიანება Dallas READINTERVAL // (მილიწამებში, მინიმალურია 15 წთ ან 15000 მსს) 0x9, xx, 0x1x, xx 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 მენეჯერის ბიბლიოთეკას, დროა დააკონფიგურიროთ თქვენი wifi კავშირი. დაელოდეთ სანამ დაინახავთ RGB led ციმციმს უფრო სწრაფად ვიდრე ადრე, შემდეგ მოძებნეთ თქვენი მობილურით ან კომპიუტერით wifi ქსელი სახელწოდებით "AutoConnectAp" და დაუკავშირდით. კავშირის შემდეგ, გახსენით ვებ ბრაუზერი და შეიყვანეთ 192.168.4.1, თქვენ ნახავთ wifi მენეჯერის GUI ინტერფეისს (იხილეთ ფოტოები) და დააჭირეთ ღილაკს "Wifi კონფიგურაცია". დაელოდეთ esp8266 Wi -Fi ქსელების მოსაძებნად და შეარჩიეთ სასურველი. შეიყვანეთ პაროლი და დააჭირეთ "შენახვა". Esp8266 გადატვირთულია (არ მაინტერესებს RGB ამჯერად, რადგან გამოუშვებს შემთხვევით ინფორმაციას) და დაუკავშირდება ქსელს.

ნაბიჯი 10: დასკვნა

დასკვნა
დასკვნა
დასკვნა
დასკვნა
დასკვნა
დასკვნა
დასკვნა
დასკვნა

საბოლოო ჯამში, აქ არის გრაფიკი, რომელიც აღებულია მონაცემთა დამგროვებლისგან, ჩემი საყინულე ტემპერატურის შესვლისას. ნარინჯისფერში არის DS18B20 და ლურჯში LM35 და მისი წრე. თქვენ ხედავთ ყველაზე დიდ განსხვავებას სიზუსტეში ციფრულიდან ანალოგურ სენსორზე (ჩემი ცუდი "ADC ჩართვით"), რომელიც იძლევა არაფიზიკურ მონაცემებს. შეჯამებით, თუ გსურთ შექმნათ ეს ლოგერი მე გირჩევთ გამოიყენოთ DS18B20 ციფრული ტემპერატურის სენსორი რადგან უფრო ადვილი წასაკითხი და თითქმის "ჩართვა და თამაში", ის უფრო სტაბილური და ზუსტია, ის მუშაობს 3.3 ვ -ზე და მოითხოვს მხოლოდ ერთ პინს ბევრ სენსორზე. მადლობა ყურადღებისთვის, ვიმედოვნებ, რომ ეს პროექტი კარგია თქვენთვის და თქვენ ვიპოვე სასარგებლო ინფორმაცია. და ვისაც სურს გააცნობიეროს ის, ვისურვებდი რომ მივაწოდო ყველა საჭირო ინფორმაცია. თუ არ შემიძლია ყველაფრის კითხვა, სიამოვნებით ვპასუხობ ყველა კითხვას. ვინაიდან მე არ ვარ ინგლისურენოვანი, თუ რამე არასწორია ან გასაგები, გთხოვთ შემატყობინოთ. თუ მოგეწონათ ეს პროექტი, გთხოვთ მიეცით ხმა კონკურსებს და/ან დატოვეთ კომენტარი. ეს გამამხნევებს, რომ გავაგრძელო ახალი შინაარსის განახლება და გამოქვეყნება. Გმადლობთ.

გირჩევთ: