Სარჩევი:
- ნაბიჯი 1: მასალა და ინსტრუმენტები
- ნაბიჯი 2: მოამზადეთ ATTINY85
- ნაბიჯი 3: შეიკრიბეთ წრე
- ნაბიჯი 4: ტესტირება
- ნაბიჯი 5: შემდეგი ნაბიჯები
ვიდეო: IOT123 - I2C MQ2 აგური: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
IOT123 აგური არის წვრილმანი მოდულური ერთეული, რომლის შეზავება შესაძლებელია სხვა IOT123 აგურებთან ერთად, რათა დაამატოთ ფუნქციონირება კვანძზე ან ტარებადი. ისინი დაფუძნებულია დუიმიან კვადრატზე, ორმხრივ პროტო დაფაზე, ერთმანეთთან დაკავშირებული ხვრელებით.
მოსალოდნელია, რომ ამ აგურის რიგი იქნება რამდენიმე კვანძზე (Master MCUs - ESP8266 ან ATTINY84) საიტზე. MCU– ს არ სჭირდება წინასწარი ცოდნა სენსორების დანიშნულების ან პროგრამული უზრუნველყოფის საჭიროებების შესახებ. ის იკვლევს I2C კვანძებს, შემდეგ ითხოვს ქონების ნაგავსაყრელს (სენსორის მონაცემებს) თითოეული მონადან. ეს აგური ამარაგებს 5.0V, 3.3V და სხვა AUX ხაზს, რომლის მორგებაც შესაძლებელია.
ეს I2C MQ2 BRICK აგდებს 3 თვისებას:
LPG (ნაწილები მილიონზე), CO (PPM), SMOKE (PPM)
ამ სენსორმა წარმოადგინა საინტერესო სცენარი: მას სჭირდება მინიმუმ 2 წუთი (5 წუთამდე) გასათბობად, შემდეგ გამოყენებამდე უნდა დაკალიბრდეს 20 წამის განმავლობაში. მასპინძელი MCU მხოლოდ სახელის/მნიშვნელობის წყვილების (და შეტყობინების გაგრძელების) მიღებით არის დაინტერესებული, ჩვენ შემოვიღეთ "PREPARE" თვისება. მას შემდეგ, რაც მისი შეტყობინება არის "1" (უფრო მეტიც), მასპინძელი MCU გააგრძელებს აგურის გამოკითხვას, სანამ ის მზად არ იქნება. ასევე მიზანშეწონილია MQ2- ის "დამწვრობა" გამოყენებამდე, ანუ დატოვეთ თქვენი 5V მიკროსქემთან დაკავშირებული 24 საათის განმავლობაში.
კეისის ტიპის სენსორული აგური პირველად იქნება ამოღებული, რადგან მათ აქვთ ვიტამინები (დამატებითი კომპონენტებია საჭირო) და შედარებით იაფია (37 ვიყიდე 10 AUD– ში). სხვა დაფები/სქემები გაეცნობა I2C აგურს.
ATTINY85– ის მიმდებარე ხვრელები გამოუყენებელი დარჩა, რათა ჩართოს pogo pin პროგრამისტი, ხოლო DIP8 მიერთებულია PCB– ზე.
შემდგომი აბსტრაქცია, აგურის შეფუთვა პატარა ცილინდრებში, რომელიც ჩართულია D1M WIFI BLOCK კვანძში, ამუშავებს მნიშვნელობებს MQTT სერვერზე.
ნაბიჯი 1: მასალა და ინსტრუმენტები
არსებობს მასალებისა და წყაროების სრული სია.
- MQ2 სენსორის აგური (1)
- ATTINY85 20PU (1)
- 1 "ორმხრივი პროტო დაფა (1)
- მამაკაცის სათაური 90º (3P, 3P)
- მამაკაცის სათაური (2P, 2P)
- მხტუნავები (1)
- დასაკავშირებელი მავთული (7 ფუნტი)
- შედუღება და რკინა (1)
ნაბიჯი 2: მოამზადეთ ATTINY85
საჭიროა დაფების მენეჯერის AttinyCore. ჩაწერეთ ჩამტვირთავი "EEPROM შენარჩუნებულია", "8mHZ შიდა" (ყველა კონფიგურაცია ნაჩვენებია ზემოთ).
გამოიყენეთ ჩართული წყარო; შეადგინეთ და დაპროგრამეთ ATtiny85.
GIST აქ არის:
gist.github.com/IOT-123/4c501046d365d01a60…
თქვენ შეგიძლიათ იპოვოთ მეტი დეტალი ამ ინსტრუქციებში:
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/How-to-Program-AT…
www.instructables.com/id/How-to-program-th…
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/Programming-an-At…
გაგრძელებამდე უმჯობესია შეამოწმოთ პურის დაფის საშუალებით.
თუ თქვენ გაქვთ ASIMIMATE SENSORS, დარწმუნდით, რომ მონა მისამართი განსხვავებულია SENSOR/MCU მასპინძლის კომბინაციაში, ანუ ტემპერატურის ყველა სენსორს შეიძლება ჰქონდეს იგივე მისამართი, თუ თქვენ გაქვთ მხოლოდ ერთი ტემპერატურის სენსორი MCU/კვანძზე.
ნაბიჯი 3: შეიკრიბეთ წრე
- წინა მხარეს ჩადეთ კომპონენტები ATTINY85 (1), 3P 90deg მამრობითი სათაურები (2) (3), 2P მამრობითი სათაურები (4) (5) და შედგით უკანა მხარეს.
- უკანა მხარეს მიაკვლიეთ ფორთოხლის მავთულს ORANGE1– დან ORANGE2– მდე და შეაერთეთ.
- უკანა მხარეს, მიჰყევით ლურჯ მავთულს BLUE1– დან BLUE2– მდე და შეაერთეთ.
- უკანა მხარეს მიაკვლიეთ მწვანე მავთულს GREEN1– დან GREEN2– მდე და შეაერთეთ.
- უკანა მხარეს მიაკვლიეთ შიშველ მავთულს SILVER1– დან SILVER2– მდე და შეაერთეთ.
- უკანა მხარეს, მიჰყევით შიშველ მავთულს SILVER3– დან SILVER4– მდე და შეაერთეთ.
- უკანა მხარეს, მიჰყევით შავ მავთულს BLACK1– დან BLACK2– მდე და შედუღეთ.
- უკანა მხარეს, მიჰყევით შავ მავთულს BLACK3- დან BLACK4- მდე და შედუღეთ.
- უკანა მხარეს მიაკვლიეთ წითელ მავთულს RED1– დან RED2– მდე და შეაერთეთ.
- უკანა მხარეს მიაკვლიეთ წითელ მავთულს RED3- დან RED4- მდე და შეაერთეთ.
- უკანა მხარეს, მიჰყევით ყვითელ მავთულს YELLOW1– დან YELLOW2– მდე და შედუღეთ.
ახლა სენსორი შეიძლება უშუალოდ დაუკავშირდეს PCB– ს პინების საშუალებით ან მავთულის საშუალებით, პინ კონტრაქტში ნაჩვენებ წერტილებს.
ნაბიჯი 4: ტესტირება
ამ აგურის რიგი მოსალოდნელია იყოს მრავალ კვანძზე (MCUs - ESP8266 ან ATTINY84) გარემოში. ეს არის ერთეულის ტესტი: ამოწმებს გაეროს მოთხოვნებს/პასუხებს, სანამ ყველა მონაცემი არ იქნება გადაყრილი, შემდეგ იგნორირებას უკეთებს I2C მონას.
- ატვირთეთ გაეროს კოდი თქვენს გაეროს საცდელ აღკაზმულობაში. დარწმუნდით, რომ ADDRESS_SLAVE ემთხვევა BRICK- ის I2C მისამართს.
- შეაერთეთ 5.0V UNO– სთან VCC– ზე BRICK– ზე.
- დარწმუნდით, რომ jumper რომ pin არის ჩართული.
- შეაერთეთ GND UNO– ს GND– თან აგურზე.
- შეაერთეთ A5 UNO– ზე SCL– ზე აგურზე.
- შეაერთეთ A4 UNO– ს SDA– ს BRICK– ზე.
- შეაერთეთ 4K7 გამყვანი რეზისტორი SDA– დან VCC– სთან.
- შეაერთეთ 4K7 გამყვანი რეზისტორი SCL– დან VCC– ზე.
- შეაერთეთ თქვენი UNO თქვენს Dev კომპიუტერთან USB- ით.
- გახსენით Arduino კონსოლი. შეარჩიეთ 9600 baud (გადატვირთეთ UNO და გახსენით კონსოლი, თუ მოგიწევთ).
- თვისებების სახელები და მნიშვნელობები უნდა დაიბეჭდოს კონსოლზე ერთხელ და შემდეგ სიტყვა ძილი მეორდება.
თუ ხედავთ "კონფიგურაციას", ნაგვის 3 ხაზი მეორდება, თქვენ შეიძლება გქონდეთ SDA და SCL ხაზები წინა მხარეს.
I2C სამაგისტრო შესვლა I2C მონადიდან პლოტერის/მეტამონაცემების მხარდაჭერით
#ჩართეთ |
#defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _confippedMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"სახელი", "მნიშვნელობა"}; |
voidsetup () { |
Wire.begin (); // შეუერთდით i2c ავტობუსს (მისამართი არჩევითია სამაგისტროდ) |
სერიული.დაწყება (9600); // გამოშვებისთვის სერიალის დაწყება |
დაგვიანება (1000); |
თუ (! _outputPlotterOnly) { |
Serial.println ("კონფიგურაცია"); |
Serial.println (); |
} |
} |
voidloop () { |
თუ (_i2cNodeProcessed) { |
თუ (! _confippedMetadata) {// აცნობეთ მონას სენსორის მონაცემების გაგზავნის დასაწყებად |
დაგვიანება (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
დაგვიანება (100); |
_confippedMetadata = ჭეშმარიტი; |
} |
_i2cNodeProcessed = ყალბი; |
თუ (! _outputPlotterOnly) { |
Serial.println (); |
} |
დაბრუნების; |
} |
მავთული. მოთხოვნა (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
char პაკეტი [16]; |
ინდექსი = 0; |
bool isContinueSegment = false; // continueSegment (მე -3) 1 = მეტი, 0 = ბოლო |
ხოლო (Wire.available ()) {// მონას შეუძლია გამოაგზავნოს მოთხოვნაზე ნაკლები |
char c = Wire.read (); |
პაკეტი [ინდექსი] = int (გ)> -1? გ: ''; // შეცვალეთ არასწორი სიმბოლოები სივრცეებით |
თუ (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = ჭეშმარიტი; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
if (int (c) == 48 || int (c) == 86) {// 0 ბოლო თვისებაზე |
_i2cNodeProcessed = ჭეშმარიტი; |
// ღირებულებების გაგზავნა MQTT– ში |
შესვენება; |
} |
} |
ინდექსი ++; |
} |
თუ (! isContinueSegment) { |
თუ (! _outputPlotterOnly) { |
Serial.println (პაკეტი); |
} |
strcpy (_property [_packetSegment - 1], პაკეტი); // დააყენეთ ადგილობრივი var სახელით/მნიშვნელობით |
} სხვა { |
if (_outputPlotterOnly && _confippedMetadata) { |
თუ (_i2cNodeProcessed) { |
Serial.println (_ ქონება [1]); |
} სხვა { |
Serial.print (_ ქონება [1]); |
Serial.print (""); |
} |
} |
} |
} |
rawuno_i2c_generic_sensor_test_w_plotter_v2.ino ნახვა hosted with GitHub
ნაბიჯი 5: შემდეგი ნაბიჯები
მიკროსქემის ძირითადი განლაგება და პროგრამული უზრუნველყოფის I2C ფენა დაკავშირებულია მრავალ სხვადასხვა სენსორთან. მთავარია, რომ დავიწყოთ თავიდან, არის პაკეტის კონტრაქტი ბატონსა და მონას შორის.
მე შევადგინე/დავიწყე სენსორების (3D ბეჭდვით) შეფუთული ქსელი, რომელიც იყენებს ამ ჩარჩოს და უკავშირდება მას ნაწილების გამოქვეყნებისთანავე.
ეს ბლოკი გამოიყენება MQ2 ASSIMILATE SENSOR– ის მიერ.
გირჩევთ:
მობილური ტელეფონის ბატარეის აგური: 6 ნაბიჯი
მობილური ტელეფონის ბატარეის აგური: ეს არის მარტივი შაბათ -კვირის პროექტი, რომელიც გაძლევთ შესაძლებლობას გააგრძელოთ სწავლა პატარა დაფებზე. ის იყენებს იაფად და მარტივად ნაწილების ხელში ჩაგდებას, რომ გახადოს ეს შესანიშნავი დამწყები პროექტი ყველასთვის, ვინც წვრილმან პროექტებში ჩაება
500 LED-Pixel RGB- აგური: 9 ნაბიჯი (სურათებით)
500 LED-Pixel RGB-Brick: რამდენიმე ხნის წინ მე ვაშენებ 10x10 LED- კოფეტს ზოგიერთ ამ WS2812 LED- ით, მაგრამ მაშინაც კი, თუ შესაძლებელია ძველი სკოლის თამაშის გველის თამაში მასთან დაკავშირებული სმარტფონით, მე მინდა კიდევ რაღაც განსაკუთრებული ასე რომ, მე გადავწყვიტე კიდევ რამდენიმე წამყვანი გამეკეთებინა, არა
IOT123 - LIR2032 ბატარეის აგური: 4 ნაბიჯი
IOT123 - LIR2032 ბატარეის აგური: IOT123 აგური არის წვრილმანი მოდულური ერთეულები, რომელთა შეზავება შესაძლებელია სხვა IOT123 აგურებთან ერთად, რათა დაამატოთ ფუნქციონირება კვანძზე ან ტარებაზე. ისინი დაფუძნებულია დუიმიან კვადრატზე, ორმხრივ პროტო დაფებზე, ერთმანეთთან დაკავშირებული ხვრელებით. მიუხედავად იმისა, რომ ინსტრუქცია
IOT123 - 3.3V დენის აგური: 4 ნაბიჯი
IOT123 - 3.3V POWER BRICK: IOT123 აგური არის წვრილმანი მოდულური ერთეულები, რომელთა შეზავება შესაძლებელია სხვა IOT123 აგურებთან ერთად, რათა დაამატოთ ფუნქციონირება კვანძზე ან ტარებაზე. ისინი დაფუძნებულია დუიმიან კვადრატზე, ორმხრივ პროტო დაფებზე, ერთმანეთთან დაკავშირებული ხვრელებით. მიუხედავად იმისა, რომ ინსტრუქცია
IOT123 - 5PIN ATTINY85 NRF24L01 აგური: 4 ნაბიჯი
IOT123 - 5PIN ATTINY85 NRF24L01 აგური: განახლება: ეს კონფიგურაცია მეტწილად აკადემიურია ან პროგრამული უზრუნველყოფის/დენის წყაროს ტესტირების საფუძველი. მაშინაც კი, როდესაც PB5 გამორთულია როგორც RESET, ის არ კითხულობს მნიშვნელობებს ზუსტად analogRead– ის გამოყენებით: სენსორის კითხვის მთავარი გამოყენების შემთხვევა. გადავხედავ ATTINY84 დაყენებას