Სარჩევი:

წაიკითხეთ ელექტროენერგიისა და გაზის მრიცხველი (ბელგიური/ჰოლანდიური) და ატვირთეთ Thingspeak– ში: 5 ნაბიჯი
წაიკითხეთ ელექტროენერგიისა და გაზის მრიცხველი (ბელგიური/ჰოლანდიური) და ატვირთეთ Thingspeak– ში: 5 ნაბიჯი

ვიდეო: წაიკითხეთ ელექტროენერგიისა და გაზის მრიცხველი (ბელგიური/ჰოლანდიური) და ატვირთეთ Thingspeak– ში: 5 ნაბიჯი

ვიდეო: წაიკითხეთ ელექტროენერგიისა და გაზის მრიცხველი (ბელგიური/ჰოლანდიური) და ატვირთეთ Thingspeak– ში: 5 ნაბიჯი
ვიდეო: ავტოკლავი Fansel Mini 2024, ივლისი
Anonim
წაიკითხეთ ელექტროენერგიისა და გაზის მრიცხველი (ბელგიური/ჰოლანდიური) და ატვირთეთ Thingspeak– ში
წაიკითხეთ ელექტროენერგიისა და გაზის მრიცხველი (ბელგიური/ჰოლანდიური) და ატვირთეთ Thingspeak– ში
წაიკითხეთ ელექტროენერგიისა და გაზის მრიცხველი (ბელგიური/ჰოლანდიური) და ატვირთეთ Thingspeak– ში
წაიკითხეთ ელექტროენერგიისა და გაზის მრიცხველი (ბელგიური/ჰოლანდიური) და ატვირთეთ Thingspeak– ში

თუ თქვენ დაინტერესებული ხართ თქვენი ენერგიის მოხმარებით ან უბრალოდ ნერვიულობით, თქვენ ალბათ გსურთ სმარტფონზე ნახოთ თქვენი ახალი ციფრული მრიცხველის მონაცემები.

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

ის მუშაობს ბელგიური ან ჰოლანდიური ციფრული მრიცხველისთვის, რომელიც მიჰყვება DSMR (ჰოლანდიური ჭკვიანი მრიცხველების მოთხოვნებს) პროტოკოლს, რომელიც უნდა იყოს ყველა ბოლო მეტრი. თუ თქვენ სხვაგან ცხოვრობთ, სამწუხაროდ, თქვენი მრიცხველი სავარაუდოდ გამოიყენებს სხვა პროტოკოლს. მე ვშიშობ, რომ ეს ინსტრუქცია რეგიონალურად შეზღუდულია.

ჩვენ გამოვიყენებთ მრიცხველის P1 პორტს, რომელიც იღებს RJ11/RJ12 კაბელს, სასაუბროდ ცნობილია როგორც ტელეფონის კაბელი. დარწმუნდით, რომ მრიცხველის ინსტალერმა გააქტიურა P1 პორტი. მაგალითად, ბელგიაში ფლავიუსისთვის მიჰყევით ამ ინსტრუქციას.

მონაცემების დასამუშავებლად და ინტერნეტში ატვირთვისთვის ჩვენ ვიყენებთ ESP8266- ს, რომელიც არის იაფი მიკროჩიპი ჩამონტაჟებული wifi– ით. მხოლოდ 2 დოლარი ღირს. უფრო მეტიც, მისი დაპროგრამება შესაძლებელია Arduino IDE გამოყენებით. ჩვენ ვინახავთ მონაცემებს ღრუბელში Thingspeak– ზე, რომელიც უფასოა მაქსიმუმ ოთხი არხისთვის. ამ პროექტისთვის ჩვენ ვიყენებთ მხოლოდ ერთ არხს. ამის შემდეგ მონაცემები შეიძლება გამოჩნდეს თქვენს სმარტფონზე ისეთი პროგრამის გამოყენებით, როგორიცაა IoT ThingSpeak.

ნაწილები:

  • ერთი ESP8266, როგორც nodemcu v2. გაითვალისწინეთ, რომ nodemcu v3 ძალიან ფართოა სტანდარტული პურის დაფისთვის, ამიტომ მე v2 მირჩევნია.
  • მიკრო USB USB კაბელი.
  • USB დამტენი.
  • ერთი BC547b NPN ტრანზისტორი.
  • ორი 10k რეზისტორი და ერთი 1k რეზისტორი.
  • ერთი RJ12 ხრახნიანი ტერმინალური კონექტორი.
  • პურის დაფა.
  • ჯუმბერის მავთულები.
  • სურვილისამებრ: ერთი 1nF კონდენსატორი.

საერთო ჯამში, ეს დაახლოებით 15 ევრო ღირს AliExpress– ზე ან მსგავსი. შეფასებით გათვალისწინებულია, რომ ზოგიერთი კომპონენტი, როგორიცაა რეზისტორები, ტრანზისტორები და მავთულები, მოდის ბევრად უფრო დიდი რაოდენობით, ვიდრე გჭირდებათ ამ პროექტისათვის. ასე რომ, თუ თქვენ უკვე გაქვთ კომპონენტის ნაკრები, ეს უფრო იაფი იქნება.

ნაბიჯი 1: გაეცანით ESP8266

მე ავირჩიე NodeMCU v2, ვინაიდან შედუღება არ არის საჭირო და მას აქვს მიკრო USB კავშირი, რომელიც იძლევა მარტივ პროგრამირების საშუალებას. NodeMCU v2– ის უპირატესობა NodeMCU v3– სთან შედარებით არის ის, რომ ის საკმარისად პატარაა იმისათვის, რომ მოთავსდეს პურის დაფაზე და დატოვოს თავისუფალი ხვრელები გვერდით, რათა დაამყაროს კავშირები. ამიტომ უმჯობესია თავი აარიდოთ NodeMCU v3. თუმცა, თუ თქვენ გირჩევნიათ სხვა ESP8266 დაფა, ეს ასევე კარგია.

ESP8266 ადვილად დაპროგრამებულია Arduino IDE გამოყენებით. არსებობს სხვა ინსტრუქციები, რომლებიც ამას დეტალურად ხსნიან, ამიტომ მე აქ ძალიან მოკლედ ვიქნები.

  • ჯერ გადმოწერეთ Arduino IDE.
  • მეორე დააინსტალირეთ მხარდაჭერა ESP8266 დაფისთვის. მენიუში ფაილი - პარამეტრები - პარამეტრები დაამატეთ URL https://arduino.esp8266.com/stable/package_esp8266com_index.json დამატებით დაფის მენეჯერის მისამართებს. შემდეგი მენიუში ინსტრუმენტები - დაფა - დაფების მენეჯერი დააინსტალირეთ esp8266 esp8266 საზოგადოების მიერ.
  • მესამე შეარჩიეთ დაფა, რომელიც ყველაზე ახლოს არის თქვენს ESP8266- თან. ჩემს შემთხვევაში მე ავირჩიე NodeMCU v1.0 (ESP 12-E მოდული).
  • საბოლოოდ აირჩიეთ ინსტრუმენტები - Flash ზომა, ზომა, რომელიც შეიცავს SPIFFS- ს, მაგალითად 4M (1M SPIFFS). ამ პროექტში ჩვენ ვიყენებთ SPIFFS- ს (SPI Flash ფაილური სისტემა) ყოველდღიური ენერგიის ღირებულებების შესანახად, ისე რომ ისინი არ დაიკარგოს, თუ ESP8266 დაკარგავს ენერგიას და მაშინაც კი, როდესაც ის გადაპროგრამდება.

ახლა ჩვენ გვაქვს ყველაფერი ადგილზე ESP8266- ის დასაპროგრამებლად! ჩვენ განვიხილავთ რეალურ კოდს შემდგომ ეტაპზე. პირველი ჩვენ გავაკეთებთ Thingspeak ანგარიშს.

ნაბიჯი 2: შექმენით Thingspeak ანგარიში და არხი

გადადით https://thingspeak.com/ და შექმენით ანგარიში. სისტემაში შესვლისთანავე დააჭირეთ ღილაკს ახალი არხი არხის შესაქმნელად. არხის პარამეტრებში შეავსეთ სახელი და აღწერა, როგორც გსურთ. შემდეგ ჩვენ ვასახელებთ არხის ველებს და ვააქტიურებთ მათ მარჯვენა ღილაკით მონიშნულ ყუთებზე დაჭერით. თუ თქვენ იყენებთ ჩემს კოდს უცვლელად, ველები შემდეგია:

  • ველი 1: პიკური მოხმარება დღეს (კვტსთ)
  • ველი 2: მოხმარების პიკი დღეს (კვტსთ)
  • ველი 3: პიკური ინექცია დღეს (კვტსთ)
  • ველი 4: ინექცია პიკის გარეშე დღეს (კვტსთ)
  • ველი 5: მიმდინარე მოხმარება (W)
  • ველი 6: მიმდინარე ინექცია (W)
  • ველი 7: გაზის მოხმარება დღეს (მ 3)

აქ, პიკი და პიკი ეხება ელექტროენერგიის ტარიფს. 1 და 2 სფეროებში მოხმარება ეხება დღევანდელ ელექტროენერგიის წმინდა მოხმარებას: დღეს ელექტროენერგიის მოხმარება სატარიფო პერიოდში შუაღამისას მინუს ელექტროენერგიის ინექცია (გამომუშავებული მზის პანელებით) დღეს შუაღამისას სატარიფო პერიოდში მინიმალური ნულის გარეშე. ეს უკანასკნელი ნიშნავს, რომ თუ დღეს მეტი ინექცია იყო ვიდრე მოხმარება, ღირებულება ნულის ტოლია. ანალოგიურად, ინექცია 3 და 4 სფეროებში ეხება ელექტროენერგიის წმინდა ინექციას. ველი 5 და 6 მიუთითებს წმინდა მოხმარებას და ინექციას მიმდინარე მომენტში. დაბოლოს, ველი 7 არის გაზის მოხმარება შუაღამისას.

მომავალი მითითებისთვის ჩაწერეთ არხის ID, Read API გასაღები და ჩაწერეთ API გასაღები, რომლებიც შეგიძლიათ იხილოთ მენიუს API კლავიშებში.

ნაბიჯი 3: ელექტრონული სქემის შექმნა

ელექტრონული სქემის მშენებლობა
ელექტრონული სქემის მშენებლობა
ელექტრონული სქემის მშენებლობა
ელექტრონული სქემის მშენებლობა

ჩვენ ვკითხულობთ ელექტროენერგიის მრიცხველს P1 პორტის გამოყენებით, რომელიც იღებს RJ11 ან RJ12 კაბელს. განსხვავება ისაა, რომ RJ12 კაბელს აქვს 6 მავთული, ხოლო RJ11– ს აქვს მხოლოდ 4. ამ პროექტში ჩვენ არ ვამუშავებთ ESP8266– ს P1 პორტიდან, ასე რომ ჩვენ რეალურად გვჭირდება მხოლოდ 4 მავთული, ასე რომ RJ11 გააკეთებს.

მე გამოვიყენე სურათზე ნაჩვენები RJ12 გარღვევა. ის ოდნავ ფართოა და ჩემს მრიცხველში P1 პორტის გარშემო დიდი ადგილი არ არის. ჯდება, მაგრამ მჭიდროა. გარდა ამისა, თქვენ შეგიძლიათ უბრალოდ გამოიყენოთ RJ11 ან RJ12 კაბელი და ამოიღოთ სათაური ერთ ბოლოში.

თუ თქვენ ატარებთ გარღვევას, როგორც სურათზეა, ქინძისთავები დანომრილია მარჯვნიდან მარცხნივ და აქვს შემდეგი მნიშვნელობა:

  • პინი 1: 5V კვების ბლოკი
  • პინი 2: მონაცემთა მოთხოვნა
  • პინი 3: მონაცემთა საფუძველი
  • პინი 4: არ არის დაკავშირებული
  • პინი 5: მონაცემთა ხაზი
  • პინ 6: დენის მიწა

PIN 1 და Pin 6 შეიძლება გამოყენებულ იქნას ESP8266– ის გასაძლიერებლად, მაგრამ მე ეს არ გამომიცდია. თქვენ უნდა დაუკავშიროთ PIN 1 ESP8266– ის Vin– ს, ასე რომ დაფის შიდა ძაბვის რეგულატორი გამოიყენება ძაბვის შესამცირებლად 5V– დან 3.3V– მდე, რასაც ESP8266 იღებს. ასე რომ არ დაუკავშიროთ იგი 3.3V პინს, რადგან ამან შეიძლება დააზიანოს ESP8266. ასევე P1 პორტიდან ელექტროენერგია დროთა განმავლობაში ამოწურავს ციფრული მრიცხველის ბატარეას.

პინ 2 -ის დაყენება სიგნალს აძლევს მეტრს მონაცემთა ტელეგრამების გაგზავნა ყოველ წამს. ფაქტობრივი მონაცემები გაგზავნილია პინ 5 – ზე baud განაკვეთი 115200 თანამედროვე ციფრული მრიცხველისთვის (DSMR 4 და 5). სიგნალი უკუქცეულია (დაბალი არის 1 და მაღალი არის 0). ძველი ტიპისთვის (DSMR 3 და ქვემოთ) განაკვეთი არის 9600 ბაუდი. ასეთი მრიცხველისთვის თქვენ უნდა შეცვალოთ ბაუდის მაჩვენებელი შემდეგი ნაბიჯის firmware კოდში: შეცვალეთ ხაზი Serial.begin (115200); კონფიგურაციაში ().

NPN ტრანზისტორის როლი ორჯერ არის:

  • შეცვალოს სიგნალი ისე, რომ ESP8266 შეძლოს მისი გაგება.
  • P1 პორტის 5V– დან 5V– დან 3.3V– მდე ლოგიკის დონის შეცვლა ESP8266– ის RX პორტით.

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

გააჩერეთ RX პინის დაკავშირება სანამ არ დააპროგრამებთ ESP8266 მომდევნო ეტაპზე. მართლაც, RX პინი ასევე საჭიროა USB საშუალებით ESP8266 და თქვენს კომპიუტერს შორის.

ნაბიჯი 4: ატვირთეთ კოდი

მე გავხადე კოდი GitHub– ზე, ეს მხოლოდ ერთი ფაილია: P1-Meter-Reader.ino. უბრალოდ გადმოწერეთ და გახსენით Arduino IDE– ში. ან შეგიძლიათ აირჩიოთ ფაილი - ახალი და უბრალოდ დააკოპირეთ/ჩასვით კოდი.

არსებობს გარკვეული ინფორმაცია, რომელიც უნდა შეავსოთ ფაილის დასაწყისში: გამოსაყენებლად WLAN– ის სახელი და პაროლი და ThingSpeak არხის არხის ID და ჩაწერის API გასაღები.

კოდი აკეთებს შემდეგს:

  • კითხულობს მონაცემთა ტელეგრამას მეტრიდან ყოველ UPDATE_INTERVAL (მილიწამში). ნაგულისხმევი მნიშვნელობა არის ყოველ 10 წამში. ჩვეულებრივ, მეტრიდან არის მონაცემთა ტელეგრამა ყოველ წამს, მაგრამ სიხშირის მაღალზე დაყენება გადატვირთავს ESP8266- ს, ასე რომ მას აღარ შეუძლია ვებ სერვერის გაშვება.
  • ატვირთავს ელექტროენერგიის მონაცემებს Thingspeak არხზე ყოველ SEND_INTERVAL (მილიწამებში). ნაგულისხმევი მნიშვნელობა არის ყოველ წუთში. ამ სიხშირის შესახებ გადაწყვეტილების მისაღებად გაითვალისწინეთ, რომ მონაცემების გაგზავნას გარკვეული დრო სჭირდება (ჩვეულებრივ რამდენიმე წამი) და რომ Thingspeak– ზე განახლების სიხშირის შეზღუდვა უფასოა. ეს არის დაახლოებით 8200 შეტყობინება დღეში, ასე რომ მაქსიმალური სიხშირე იქნება ყოველ 10 წამში ერთხელ, თუ თქვენ არ გამოიყენებთ Thingspeak სხვა რამეს.
  • ატვირთავს გაზის მონაცემებს, როდესაც ის იცვლება. როგორც წესი, მრიცხველი განაახლებს გაზის მოხმარების მონაცემებს მხოლოდ ყოველ 4 წუთში.
  • მრიცხველი თავიდანვე აკონტროლებს მთლიანი მოხმარებისა და ინექციის მნიშვნელობებს. ასე რომ ყოველდღიური მოხმარებისა და ინექციის მისაღებად, კოდი ზოგავს საერთო მნიშვნელობებს ყოველდღე შუაღამისას. შემდეგ ეს მნიშვნელობები გამოაკლდება მიმდინარე საერთო მნიშვნელობებს. ღირებულებები შუაღამისას ინახება SPIFFS- ში (SPI Flash ფაილური სისტემა), რომელიც შენარჩუნებულია, თუ ESP8266 დაკარგავს ენერგიას ან თუნდაც მისი გადაპროგრამების დროს.
  • ESP8266 მუშაობს მინი ვებ სერვერზე. თუ თქვენ გახსნით მის IP მისამართს თქვენს ბრაუზერში, თქვენ მიიღებთ მიმოხილვას ელექტროენერგიისა და გაზის ყველა მიმდინარე ღირებულების შესახებ. ეს არის უახლესი დეპეშადან და შეიცავს ინფორმაციას, რომელიც არ არის ატვირთული Thingspeak– ში, ისევე როგორც ძაბვები და დენები ფაზაზე. ნაგულისხმევი პარამეტრი არის ის, რომ IP მისამართი დინამიურად არის განსაზღვრული თქვენი როუტერის მიერ. მაგრამ უფრო მოსახერხებელია სტატიკური IP მისამართის გამოყენება, რომელიც ყოველთვის ერთი და იგივეა. ამ შემთხვევაში თქვენ უნდა შეავსოთ staticIP, gateway, dns და subnet კოდში და გაუშვათ ხაზი WiFi.config (staticIP, dns, gateway, subnet); connectWifi () ფუნქციაში.

ამ ცვლილებების განხორციელების შემდეგ, თქვენ მზად ხართ ატვირთოთ firmware ESP8266– ში. შეაერთეთ ESP8266 USB კაბელის საშუალებით თქვენს კომპიუტერს და დააჭირეთ ხატულას Arduino IDE– ის ისრით. თუ თქვენ ვერ მოახერხეთ ESP8266– თან დაკავშირება, სცადეთ შეცვალოთ COM პორტი მენიუში Tools - Port. თუ ის კვლავ არ მუშაობს, შესაძლებელია ხელით დააინსტალიროთ დრაივერი USB ვირტუალური COM პორტისთვის.

ნაბიჯი 5: ტესტირება

Firmware– ის ატვირთვის შემდეგ, გამორთეთ USB და შეაერთეთ ESP8266– ის RX მავთული. დაიმახსოვრეთ, ჩვენ გვჭირდებოდა ESP8266– ის RX არხი firmware– ის ასატვირთად, ასე რომ ჩვენ ადრე არ დავუკავშირდით მას. ახლა შეაერთეთ RJ12 გარღვევა ციფრულ მრიცხველში და შეაერთეთ ESP8266 თქვენს კომპიუტერს.

Arduino IDE– ში გახსენით სერიული მონიტორი Tools მენიუდან და დარწმუნდით, რომ ის დაყენებულია 115200 baud– ზე. თუ თქვენ უნდა შეცვალოთ ბაუდის მაჩვენებელი, ალბათ უნდა დაიხუროთ და ხელახლა გახსნათ სერიული მონიტორი სანამ ის იმუშავებს.

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

/FLU5 / xxxxxxxxx

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // სერიული რიცხვის მეტრი თექვსმეტობითი 0-0: 1.0.0 (200831181442S) // დროის ნიშნული S: დღის დაზოგვა (ზაფხული), W: არა დღის ანაზღაურება (ზამთარი) 1-0: 1.8.1 (000016.308*კვტსთ) // მთლიანი პიკური წმინდა მოხმარება 1-0: 1.8.2 (000029.666*კვტსთ) // მთლიანი არაპიკური წმინდა მოხმარება 1-0: 2.8.1 (000138.634*კვტ / სთ) // მთლიანი პიკური წმინდა ინექცია 1-0: 2.8.2 (000042.415*კვტ / სთ) // მთლიანი უპიქსო წმინდა ინექცია 0-0: 96.14.0 (0001) // ტარიფი 1: პიკი, 2: პიკის გარეშე 1-0: 1.7.0 (00.000*კვტ) // მიმდინარე მოხმარება 1-0: 2.7.0 (00.553*კვტ) // მიმდინარე ინექცია 1-0: 32.7.0 (235.8*V) // ფაზა 1 ძაბვა 1-0: 52.7.0 (237.0*V) // ფაზა 2 ძაბვა 1-0: 72.7.0 (237.8*V) // ფაზა 3 ძაბვა 1-0: 31.7.0 (001*A) // ფაზა 1 მიმდინარე 1-0: 51.7.0 (000*A) // ფაზა 2 მიმდინარე 1-0: 71.7.0 (004*A) // ფაზა 3 მიმდინარე 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9*კვტ) // მაქსიმალური სიმძლავრე 1-0: 31.4.0 (999*A) // მაქსიმალური მიმდინარე 0-0: 96.13.0 () // შეტყობინება 0-1: 24.1.0 (003) // სხვა მოწყობილობები M- ავტობუსზე 0-1: 96.1.1 (37464C4F32313230313037393338) // სერიული ნომერი გაზის მეტე r თექვსმეტობითი 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615*მ 3) // გაზის დროის ნიშნული მთლიანი მოხმარება! E461 // CRC16 საკონტროლო ჯამი

თუ რამე არასწორია, შეგიძლიათ შეამოწმოთ გაქვთ თუ არა ერთი და იგივე ტეგები და შესაძლოა თქვენ უნდა შეცვალოთ კოდი, რომელიც აგზავნის დეპეშაებს readTelegram ფუნქციაში.

თუ ყველაფერი მუშაობს, ახლა შეგიძლიათ ჩართოთ esp8266 USB დამტენიდან.

დააინსტალირეთ IoT ThingSpeak მონიტორის აპლიკაცია თქვენს სმარტფონზე, შეავსეთ არხის ID და წაიკითხეთ API გასაღები და დასრულებულია!

გირჩევთ: