Სარჩევი:

Wifi ჩართულია OLED ESP32 მანქანის საზომი: 3 ნაბიჯი (სურათებით)
Wifi ჩართულია OLED ESP32 მანქანის საზომი: 3 ნაბიჯი (სურათებით)

ვიდეო: Wifi ჩართულია OLED ESP32 მანქანის საზომი: 3 ნაბიჯი (სურათებით)

ვიდეო: Wifi ჩართულია OLED ESP32 მანქანის საზომი: 3 ნაბიჯი (სურათებით)
ვიდეო: АНОНС! ESP32 LoRa 868 МГц 915 МГц 0,96 дюйма синий OLED дисплей Bluetooth 15 марта 2023 г. 2024, ნოემბერი
Anonim
Image
Image
Wifi ჩართულია OLED ESP32 მანქანის საზომი
Wifi ჩართულია OLED ESP32 მანქანის საზომი

შესავალი ჯერ…

მე ვაკეთებ მანქანის მრიცხველებს, როგორც ერთგვარი ისევ და ისევ ჰობი. იხილეთ https://www.instructables.com/id/Remote-Car-Monit… და https://www.instructables.com/id/Remote-Car-Monit… კიდევ ორი უახლესი მაგალითისთვის. განსაკუთრებით მომწონს ის, რაც მანქანის ორიგინალურ ნაწილებს ერწყმის. მაშ, რატომ არის ეს განსხვავებული და რით იყო შთაგონებული მისი აშენება. პასუხი არის ორი რამ:

1) ESP32 - მინდოდა ახალი ბავშვი გამომეცადა ბლოკის ჩიპზე, მით უმეტეს, რომ არდუინოზე დაფუძნებული ინსტრუმენტთა ქსელი საკმაოდ მომწიფებულია. ESP32– ის ერთ – ერთი საინტერესო რამ არის IOT თავისი ჩაშენებული wifi და bluetooth შესაძლებლობებით. საზოგადოებამ დაწერა მრავალი ბიბლიოთეკა ამის გასაადვილებლად (ვებ სერვერები, AP– ები, wifi კლიენტები, mDNS და ა.შ. და ა.

2) იაფი OLED ეკრანები - ჯერ კიდევ 2007 წელს გავაკეთე საზომი TFT გამოყენებით, რომელიც იჯდა საათის ადგილას GD (2004-2007) WRX– ზე. TFT მოდის სხვადასხვა არომატით. ზოგი უკეთ მუშაობს ღამით, ზოგი უკეთ მუშაობს დღის განმავლობაში და ა.შ. მაგრამ არცერთი მათგანი არ მუშაობს ყველა პირობებში. მე ვერ მივხვდი ჩემი შეცდომის შესახებ, სანამ ერთ -ერთი საზომი, რომელიც მე გამოვიყენე, უსარგებლო იყო ფორუმის წევრის მზიანი ტრეკის დროს. შეიყვანეთ OLED, რომლებიც გასაოცარია საავტომობილო პროგრამებისთვის. ისინი არ არიან ძალიან კაშკაშა ღამით და (რაც მთავარია) ჩანს მზის უმეტეს პირობებში.

ეს არის ორი ინსტრუქციისთვის, რადგან მე დავწერე ყველაფერი ორი საერთო მანქანის გაზომვისთვის, ზეთის წნევა და ტურბო წნევა. ორივე არსებითად ერთი და იგივეა: მცირე ზომის ფაქტორების მრიცხველი ანიმაციური ანალოგური OLED დისპლეით, დისკრეტული რიცხვებითა და მაქსიმალურით. ორივე ასევე ფუნქციონირებს როგორც wifi AP და ვებ სერვერები. როდესაც მათ კომპიუტერთან ან მობილურ ტელეფონთან აკავშირებთ, ეკგ -ს მოძრავი ჩარტის ნახვა შესაძლებელია (ეს გარკვეულწილად ინოვაციური ნაწილია).

მარაგები

HELTEC ESP32 მოდული-მიიღეთ wifi ვარიანტი

ზეთის წნევის სპეციფიკური ნაწილები:

ზეთის წნევის სენსორი - მე გამოვიყენე ავტომატი 5222 ზეთის წნევის სენსორის შესაერთებელი ნაწილები - ეს განსხვავდება მანქანისა და დაყენების ადგილის მიხედვით. გთხოვთ გაეცნოთ მომსახურების სახელმძღვანელოებს, ფორუმებს, ტექნიკას და ა.შ. და გააკეთეთ ეს სწორად ისე, რომ არ მოხდეს ზეთის გაჟონვა

გაზომვის კონკრეტული ნაწილები:

  • ჰაერის წნევის სენსორი (მხოლოდ იმ შემთხვევაში, თუ გსურთ გაზარდოთ ლიანდაგი) -
  • საჰაერო შლანგი
  • T ფიტინგები

ბიბლიოთეკები, რომლებიც მე გამოვიყენე, აუცილებელი იყო:

Smoothiecharts - https://smoothiecharts.org/ შესანიშნავი და მსუბუქი ცოცხალი განახლების სქემები. ძალიან კონფიგურირებადია და არ ემყარება js ბიბლიოთეკის მითითებას ინტერნეტში სხვაგან. ეს იძლევა "ლოკალური- IOT" ტიპის კონფიგურაციის საშუალებას და მთელი ბიბლიოთეკა ჯდება ერთ სტრიქონში ვებ სერვერის განცხადებაში კოდში!

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- აკეთებს რასაც ყუთში ამბობს და კარგად აკეთებს

ThingPulse OLED გრაფიკული ბიბლიოთეკა (ზოგჯერ დარეკეთ squix ბიბლიოთეკაში) - https://github.com/ThingPulse/esp8266-oled-ssd130… - ძალიან ეფექტური და პირდაპირი გრაფიკა ESP ჩიპებისთვის. ნება მომეცი, გავაკეთო ზარმაცი პროგრამირება და მაინც მივიღო დამაჯერებელი ანიმაციები.

ინსტრუმენტები/სხვა:

გამაგრილებელი რკინა - გამოიყენება გრძელი საკაბელო სენსორების გასაკეთებლად, ბორტზე სათაურების დასამონტაჟებლად, შეკუმშვის შესამცირებლად და ა.

screwdriver/სოკეტების/სხვა მანქანის ინსტრუმენტები - აუცილებელია სენსორების დაყენება მანქანაზე

ორმაგი ცალმხრივი ლენტი - გაზომვების დაყენება საცხოვრებელში და მანქანაში საცხოვრებლის დაყენება (ცხელი წებო და სხვა ნივთები შეიძლება მუშაობდეს, მაგრამ მე მირჩევნია 3M ორმაგი ცალმხრივი გარე მორთვა ლენტი. ის კარგად იტევს და მისი ამოღება შესაძლებელია საგნების დაზიანების გარეშე.)

მაკრატელი - ფირზე და მილების დასაჭრელად და საცობებზე

სამაგრები - ნივთების ერთმანეთთან დასაჭერად, მავთულხლართების გასაშლელად და ძრავის ნაწილში, სენსორების დასაჭერად და ა.

ნაბიჯი 1: კოდი პირველი/აპარატურა მეორე

კოდი პირველი/აპარატურა მეორე
კოდი პირველი/აპარატურა მეორე
კოდი პირველი/აპარატურა მეორე
კოდი პირველი/აპარატურა მეორე

კოდის ჩამოტვირთვა შესაძლებელია აქ:

ზეთის წნევა -

გაზრდის წნევას -

გაზარდეთ ზეწოლა სახეებით ანალოგური სანახავი საშუალებების ნაცვლად -

გრაფიკული კოდი: ThingPulse ბიბლიოთეკა იმდენად ეფექტურია, რომ თქვენ შეგიძლიათ დახაზოთ xbms ერთმანეთზე და მიიღოთ დამაჯერებელი შედეგები!

გაზომვის სურათები რეალურად მოვიდა ღია კოდის გრაფიკული საცავიდან (https://thenounproject.com/). მხატვარი Iconic, CY (https://thenounproject.com/icon/490005/).

მე gimp გამოვიყენე 20 სხვადასხვა ჩარჩოს ნემსით, რომელიც თითოეულ ტკიპის ნიშანზე მიუთითებდა. ღიმილიანი სახის ხატები არის NOVITA ASTRI, ID და აქ არის:

შემდეგ ეს ყველაფერი გადავიყვანე const uint8_t მასივებად ამ ტექნიკის გამოყენებით (მინიშნება: თუ ფერები გადატრიალებულია მათი ჩვენებისას, უბრალოდ გადაატრიალეთ ფერები ორიგინალზე): https://blog.squix.org/2015/05/esp8266- ნოდემკუ-ჰო…

ცოცხალი ანიმაციის კოდი საკმაოდ მარტივია:

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

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

გამაძლიერებელი კოდი (სენსორი იძლევა ანალოგურ მნიშვნელობას 0-5 ვოლტიდან, რომელსაც ADC გადააქცევს ნაბიჯებად 0-1024-დან):

int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // float შედეგი PSI = (rboost*(. 00488)/(. 022) +20) /6.89 - ატმოსფერო; // დატოვება /6.89 kpa float– ის შედეგი PSI = (((rboost /4095) + 0.04) /0.004) * 0.145 - ატმოსფერო; // 0.145 -ით calc psi // 4096 მნიშვნელობებზე esp32 /*rBoost = rBoost + 1; თუ (rBoost> = 20) {rBoost = 0; }*/ დაბრუნება (შედეგი PSI); }

ზეთის წნევის კოდი (სენსორი ცვლის მის წინააღმდეგობას ზეწოლის საფუძველზე, რომელსაც ის გრძნობს, ამიტომ ძაბვის გამყოფია საჭირო იმისათვის, რომ ის იქცეს ძაბვად 0-5 ვ-დან იხილეთ: https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… (ბოლოში) დამატებითი ინფორმაციისთვის):

int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); პსივალი = -0.0601*პსივალი + 177.04 - 14.5; დაბრუნება psival; }

ვებ სერვერი და AP ფუნქციონირება: AP ფუნქციონირება საკმაოდ მარტივია - მყისიერი და AP ობიექტი ESSID– ით, რომლის გადაცემა გსურთ და პაროლი და თქვენ კარგად ხართ წასული.

const char *ssid = "boost_gauge_ap"; const char *პაროლი = "პაროლი";

WiFi.softAP (ssid, პაროლი);

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

ვებ სერვერის დეკლარაციები: #მოიცავს AsyncTCP.h #მოიცავს ESPAsyncWebServer.h… AsyncWebServer სერვერს (80); // დააინსტალირეთ და შეარჩიეთ პორტი (80 სტანდარტულია http) … server.on ("/", HTTP_GET, (AsyncWebServerRequest *request) {request-> send (200, "text/html", "… // ვებგვერდი + smoothiecharts ბიბლიოთეკა უზარმაზარ სიმბოლოში)); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *მოთხოვნა) {// პირველი გვერდი რეალურად ეძახის ამ ძალიან პატარა გვერდს, რომელიც უბრალოდ აბრუნებს ღირებულების მოთხოვნას -> გაგზავნა (200, "text/html", Sboost);}); server.begin ();

ნაბიჯი 2: აპარატურა და გაყვანილობა

აპარატურა და გაყვანილობა
აპარატურა და გაყვანილობა
აპარატურა და გაყვანილობა
აპარატურა და გაყვანილობა
აპარატურა და გაყვანილობა
აპარატურა და გაყვანილობა

გალერეაში გამოსახულია ორი სენსორი, რომელსაც მე ვიყენებ. დიდი ოქროსფერი არის ზეთის წნევის სენსორი Autometer 2242. ამ სენსორის სხეული და ძაფი დაფქულია და ტერმინალი არის წინააღმდეგობის მაჩვენებელი.

Autometer მოგაწვდით ზეწოლის ან ტემპერატურისადმი წინააღმდეგობის მრუდს მათი ნებისმიერი სენსორისთვის. მე ეს გადავაქციე ძაბვად ძაბვის გამყოფის გამოყენებით (იხ. გაყვანილობის დიაგრამა).

MPX4250AP ჰაერის წნევის სენსორს აქვს სამი ცოცხალი ქინძისთავი და რამდენიმე გამოუყენებელი ქინძისთავი. ისინი არიან V in, ადგილზე და სენსორის გამომავალი. გამოაქვს 0-5 ვ კითხვა, რომლის წაკითხვაც შესაძლებელია მიკროკონტროლის მიერ (ან ამ mcu 0-3 ვოლტის შემთხვევაში. ასე რომ, სენსორის კითხვა მცირდება ძაბვის გამყოფის გამოყენებით.). მისი სპეციფიკაციის ფურცელი შეგიძლიათ იხილოთ აქ:

5V– დან 3V ლოგიკამდე შემცირების რამდენიმე საკითხი არსებობს. ჩემს შემთხვევაში გამოვიყენე ძაბვის გამყოფი სიმარტივისთვის და მქონდა ნაწილები სამუშაო მაგიდის გარშემო. თქვენ მცირე შეცდომას შეიტანთ კითხვებში დამატებითი კომპონენტების (ორი რეზისტორის) შესაძლო შეცდომაზე დაყრდნობით. ამან შეიძლება თქვენს კითხვებს 10% –იანი ფასდაკლება მოუტანოს ზოგიერთ შემთხვევაში. შემიძლია ამით ვიცხოვრო. თუ არ შეგიძლიათ, შეიძლება გისურვოთ გამოიყენოთ opamp და რეზისტორები ან ლოგიკური დონის გადამყვანი (ხელმისაწვდომია ელექტრონიკის სხვადასხვა მწარმოებლებისგან. Sparkfun– ს აქვს ერთი აქ: https://www.sparkfun.com/products/12009 მე შემიძლია გადავიდე მასზე, როგორც მე ზოგჯერ ვიღებ მაღალ მაჩვენებლებს ამ ლიანდაგზე (ფაქტობრივად მე ვაჩვენე ეს პროდუქტი ჩემს გაყვანილობის დიაგრამაზე).

ESP32– ს ვამუშავებ USB– ით. ეს მოიცავდა ამგვარი პირდაპირი დამტენის მიერთებას: https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… მანქანაზე და შემდეგ USB კვანძის გამოყენებით მისი გაყოფისთვის. თქვენ ხედავთ, რომ მე გამოვიყენე მარჯვენა კუთხის USB კაბელები, რათა უზრუნველვყოთ ყველაფერი მცირე ფართობზე (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…).

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

ნაბიჯი 3: 3D დაბეჭდილი საცხოვრებელი

3D დაბეჭდილი საცხოვრებელი
3D დაბეჭდილი საცხოვრებელი

მე გამოვიყენე რამდენიმე 3D დაბეჭდილი საცხოვრებელი ამისათვის.

  • ზოგადი დიდი 2 ეკრანის მრგვალი ლიანდაგი. ამის ნახვა შეგიძლიათ პირველი გვერდის ამ სურათებზე. მე დავდე საათთან ახლოს ჩემს ტირეზე.
  • ერთი გაზომვის სოლი სტილი, რომელიც ჯდება სუბარუ იმპრეზას საათის არეზე (wrx, sti და ა.შ.) დაახლოებით 2008 წლიდან 2014 წლამდე.
  • ორმაგი ლიანდაგი, რომელიც ჯდება საჭის სვეტებზე და სხვა ოდნავ მომრგვალებულ ზედაპირებზე:

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

რამდენიმე შენიშვნა:

  • დავასრულე ჩემი პლასტიდიპით; ეს არის ზარმაცების სასურველი მეთოდი.
  • პლასტმასის მოპარსვა ქმნის წვრილ ნაწილაკებს, რაც არ არის თქვენთვის კარგი, გამოიყენეთ შესაბამისი ნიღაბი.
  • მე გამოვიყენე PETG ჩემი საცხოვრებლისთვის. ABS ასევე კარგია. PLA გახვეული იქნება ცხელ მზეზე დაფაზე.
IoT გამოწვევა
IoT გამოწვევა
IoT გამოწვევა
IoT გამოწვევა

მეორე პრიზი IoT გამოწვევაში

გირჩევთ: