Barometru de casă pe un microcontroler. Metroul va marca limitele: când va introduce transportul capitalei plata pe zone?

Îmi amintesc când eram foarte mic, bunicul nu asculta niciodată prognoza meteo la radio, se uita mereu la vechiul lui barometru cu ac, avea cel puțin două ace (nu-mi amintesc exact, pentru că au trecut atât de mulți ani) , și nu a greșit niciodată!

Așa că de mult îmi doream să am un barometru la ferma mea, dar încă nu se poate, este scump, nu l-am întâlnit sau au existat alte obstacole. Dar apoi am început să lucrez la microcontrolere și a devenit posibil să fac eu un barometru.
Am economisit niște bani din depozitul iubitei mele soții și am achiziționat senzori, MPX4115AP (senzor de presiune) și HIH-4000-004 (senzor de umiditate), de ce anume aceștia? Da, pur și simplu, pentru că sunt multe informații despre ele pe internet și erau la vânzare, deși erau scumpe. Partea leului din costul întregului dispozitiv a venit de la ei.
Ambii senzori sunt analogici, ceea ce înseamnă că barometrul ar trebui să fie un voltmetru cu două intrări, cu citirile ADC ajustate în mmHg. (milimetri de mercur) și % (procentul de umiditate a aerului). Conversia reală a citirilor ADC în mmHg. , și % am luat cu conștiință din articolul „Stație meteo mică DIY” - http://www.avispro.com.ua/doc.php?id=1172

Dar designul prezentat în articol mi s-a părut redundant și am vrut să îl fac mai simplu și să folosesc cu siguranță indicatoare LED, deoarece strălucesc și au dimensiuni mari, ceea ce înseamnă că vor fi vizibili clar de departe și în orice iluminare, și consumă mult mai puțin curent decât iluminarea de fundal LCD.
Am folosit indicatorul BA56-12SRWA (LED cu șapte segmente, 3 cifre OA), 2 bucăți. Sunt super luminoase, adică. consumul de curent poate fi redus și mai mult.

Puteți citi despre cum să utilizați valorile presiunii atmosferice și ale umidității aerului în prognoza meteo, de exemplu, aici - http://www.meteopost.com/info/Pressure/

Aceasta este diagrama rezultată:

Dispunerea plăcii este astfel:

Pe placa de circuit imprimat există o magistrală comună - digitale și analogice sunt separate.
Sursa de alimentare este, de asemenea, împărțită în analog și digital și este alimentată prin bobine de 25 µH. la circuitele analogice, iar conductorul dintr-un tub de ferită la cele digitale.

La intrarea ADC există condensatori de 0,33 µF la masă analogică și un rezistor de 750 ohmi la senzori. Acestea sunt filtre pentru a reduce toate tipurile de interferențe la intrări.

Pinii microcontrolerului AVCC și AREF sunt derivați cu condensatori ceramici de 0,1 μF și alți condensatori de tantal de 10,0 μF (cele galbene de la plăcile de bază vechi).

Pentru ca citirile de umiditate a aerului să fie corecte, acesta trebuie scos în afara încăperii (în exterior), și conectat la placă cu un cablu (de preferință ecranat), și bineînțeles protejat de expunerea directă la precipitații, deoarece cristalul senzorului este complet deschis. Nu este necesar să scoateți senzorul de presiune din bord.

Acest program, desigur, nu este un standard, dar este destul de potrivit ca opțiune pentru începători
Desigur, puteți adăuga suprimarea unui zero nesemnificativ în indicatorul de umiditate, nu este dificil, puteți săpați și să corectați altceva, pentru că nu există limită pentru perfecțiune.
Las cititorilor frâu liber pentru a îmbunătăți codul.

Articolul este destinat persoanelor cărora le place să creeze ceva cu propriile mâini, doar pentru satisfacția sufletească și morală.

Notă: Utilizarea comercială a materialelor din acest articol este interzisă!

Codul este scris CodeWizardAVR V2.04.4a
Tabloul este divorțat în Sprint-Layout 5.0
Schema este desenată în Splan7.0.0.8_portable_rus

Acest design a fost dezvoltat la cererea prietenului meu - un iubitor de călătorii cu mașina și offroad. Aceștia (prieteni și tovarăși) din drumeții își doresc foarte mult să știe în ce direcție și cu ce viteză se schimbă presiunea atmosferică pentru a încerca să înțeleagă ce se va întâmpla cu vremea. A ales un indicator ieftin ME-GLCD128x64 prezentat în fotografie:

Dispozitivul este asamblat pe un PCB cu două fețe realizat prin metoda LUT:


Microcontrolerul a fost ales ATMega32 într-un pachet profund din următoarele motive: l-am avut, nu am putut găsi altă utilizare pentru un pachet atât de mare (DIP40), deoarece În ultimul timp am făcut aproape orice pe SMD.

Senzor de presiune HopeRF - HP03M, care comunică cu MK prin protocolul TWI. Senzori de temperatura DS18S20 de la Maxim.

Ceasul în timp real a fost ales pe cipul M41T81 din următoarele motive: prezența corecției timpului și prezența unui Timekeeper - care vă permite să citiți ora curentă fără a pierde ciclurile de ceas ale contorului principal.

S-a decis să se folosească un adaptor USB pentru mașină ca sursă de alimentare - acesta produce 5V la un curent de până la 0,5A. Datorită faptului că atunci când motorul pornește, „golurile” din rețeaua de bord a mașinii sunt destul de mari, a fost necesar un circuit pentru înregistrarea de urgență a valorilor curente în eeprom. Pentru a face acest lucru, se utilizează decuplarea sursei de alimentare a MK și a restului circuitului. Sursa de alimentare a lui MK este susținută de un condensator de 1000 uF, care, după cum au arătat testele, este suficient (de mai mult de două ori) pentru ca MK să scrie 6 octeți de valori ale senzorului curent pe eeprom. Monitorizarea prezenței puterii și a circuitului de resetare MK sunt asigurate de doi supraveghetori de putere. Primul monitorizează tensiunea de la intrarea circuitului și, în cazul unei căderi de curent, emite log.0 la int0, pornind astfel procedura de salvare. Al doilea oferă o resetare „hard” a MK-ului însuși atunci când sursa de alimentare scade - pentru a preveni deteriorarea eeprom-ului.

În modul normal, datele sunt scrise în eeprom la fiecare jumătate de oră. În total, sunt stocate valori pentru 2 zile. Ora curentă obținută de la m41t81 este convertită în numărul de secunde din 2000, iar pe baza acestei valori se calculează adresa de înregistrare curentă (una din 96). După calcule simple, puteți vedea că resursa eeprom se va epuiza în aproximativ 540 de ani (fiecare celulă este suprascrisă o dată la 2 zile) sau în 18 ani dacă alimentarea este oprită în fiecare minut. Datele pentru o jumătate de oră sunt presiunea medie, temperatura pentru fiecare senzor, timpul în secunde (multiplu de 96) și suma de control CRC16. La pornire, datele sunt citite din eeprom și este verificată suma de control a fiecărui bloc; dacă suma nu este corectă, datele sunt ignorate. De asemenea, datele sunt ignorate dacă data înregistrării lor depășește 2 zile (nu avem nevoie de astfel de date vechi). Suma de control a setărilor principale este calculată în același mod, iar dacă nu este corectă, presupunem că aceasta este prima lansare a programului și setăm toate valorile la implicit.


În colțul din stânga sus este presiunea curentă în mmHg și după săgeată este modificarea presiunii din ultimele 3 ore. Mai jos sunt citirile a doi senzori de temperatură și valorile max/min pentru ultimele 24 de ore. Mai jos este un grafic al schimbărilor de presiune. (o eroare în grafic - dispozitivul a fost oprit special pentru această jumătate de oră - prin urmare nu există date și nimic de afișat)

Meniul Setări:


Sunt posibile setări: data și ora, „corecții” pentru ritmul ceasului, corecții de presiune (pentru a o aduce la altitudinea actuală), ajustarea luminozității maxime și minime, timpul după care luminozitatea trece de la maxim la minim.

Toate setările se fac folosind trei butoane Enter, +, - Pentru a intra în meniul de setări, trebuie să țineți apăsat + și - mai mult de o secundă.

În modul principal, butoanele + și - nu funcționează și, prin urmare, sunt ascunse. Butonul Enter comută luminozitatea ecranului de la max. pentru min. si invers. Dacă îl țineți apăsat mult timp, iluminarea de fundal a ecranului se stinge complet.

Diagrama propriu-zisă a dispozitivului:


In arhiva: Firmware, schema circuit, placa, placa in diptrace. Plus un set de diverse numere și simboluri cu coduri C.

PS: proiectul se va dezvolta, pentru ca... Mai sunt teste de iarnă pentru rezistența la îngheț :)


Fișiere:
Bonus: o mulțime de numere cu matrice „C”.
Firmware, surse, schema de circuit, placa


Cine a câștigat licitația

Câștigătorul licitației a fost dezvoltatorul de software „Produs software”. Prețul contractului a fost de 670 de milioane de ruble. Perioada de execuție este de 910 zile calendaristice de la data încheierii contractului.

„Problema de zonare este o problemă de tarif. Tarifele și regulile pentru transferuri sunt determinate de structurile Departamentului de Transport din Moscova, sarcina noastră în cadrul contractului este să sprijinim aceste reguli din punct de vedere tehnologic”, a declarat Dmitry Chursin, director executiv al Produselor software, pentru RBC.

Chursin nu a explicat cum poate fi controlată exact traversarea anumitor zone de către pasageri. „În următorii trei ani, în acest sistem pot apărea noi tipuri de suporturi pentru bilete și dispozitive de automatizare a pasagerilor pentru metode de validare a biletelor fără contact”, a spus el.

După cum Tatyana Semenova, director general al MSP LLC (o societate în comun a producătorului de microelectronice Mikron și a metroului din Moscova, este responsabilă pentru dezvoltarea proiectelor de transport), a declarat pentru RBC, una dintre sarcinile în cadrul dezvoltării infrastructurii orașului inteligent. este optimizarea costurilor de transport de pasageri în funcție de durata, regularitatea și calendarul călătoriei, precum și asigurarea posibilității de utilizare a biletelor de călătorie în regiunile învecinate.

Din 2013, Mikron este producător și furnizor de carduri inteligente din plastic fără contact pentru tarifele Troika. Potrivit Semenova, MSP LLC este gata să lanseze un nou microcontroler (situat în interiorul biletului), care poate asigura funcțiile noului sistem de bilete. „Prima modificare a noului cip cu suport pentru protocoale open world va fi finalizată într-un an. Următorul pas este dezvoltarea unei a doua modificări care va sprijini criptografia conform GOST intern”, a menționat ea, adăugând că în prezent nu există modele rusești ale unui astfel de cip.

Cum se va schimba sistemul de bilete de la Moscova

În noiembrie 2018, serviciul de presă al metroului din Moscova a anunțat dezvoltarea unui nou sistem de bilete. Mesajul menționa că cardul Troika va fi personalizat, iar integrarea cu sistemele de bilete din alte regiuni va fi realizată. Noul sistem de ticketing va putea procesa peste 6 miliarde de tranzacții pe an. Cu toate acestea, anunțul nu a menționat introducerea tarifelor de zonă.

Conform specificațiilor tehnice ale metroului, noul sistem de bilete ar trebui să unească transportatorii și serviciile orașului care operează pe teritoriul Moscovei și Noii Moscove. Pe baza acesteia, o emisiune unificată a biletelor și managementul transportului urban unificat ar trebui organizată prin intermediul aplicației Troika, prin integrarea cu alți operatori de transport. Acest sistem va include, de asemenea, posibilitatea de a plăti pentru servicii populare ale orașului (partajare auto, închiriere de biciclete), bilete de cinema, bilete de teatru și săli de expoziție. Este de așteptat o determinare dinamică în mai multe etape a tarifului, care va depinde, de exemplu, de ora din zi, zonarea, numărul de transferuri și modurile de transport utilizate.

În plus, sistemul vă va permite să gestionați fluxurile de pasageri oferind noi produse și programe de fidelizare. Acesta va include posibilitatea de a replica soluțiile propuse în alte regiuni. Potrivit estimărilor date în specificațiile tehnice ale metroului, fluxul mediu zilnic de pasageri procesat de noul sistem de bilete ar trebui să fie de cel puțin 16 milioane de pasageri pe zi. Pe termen mediu, acesta poate crește la 24 de milioane

Când a apărut ideea plății pe zone?

Reprezentanții Metroului din Moscova au anunțat necesitatea introducerii tarifelor zonale în urmă cu câțiva ani. În special, în 2009, fostul șef al metroului capitalei, Dmitri Gaev, a spus că zonele tarifare sunt viitorul metroului. Potrivit acestuia, introducerea unui astfel de sistem de plată va fi posibilă numai după finalizarea celui de-al treilea circuit de schimb, când pasagerii vor avea opțiuni pentru rute alternative. Conform planului actual, acesta ar trebui să fie finalizat în 2020.

Tarifele zonale în metrou sunt folosite în multe mega-orase, de exemplu în Paris, Barcelona și Londra. Cu cât stația este mai departe de centru, cu atât tariful este mai scump. De exemplu, în Shanghai, costul depinde de distanța călătoriei: pentru primii 6 km pasagerul plătește 3 yuani (aproximativ 29 de ruble), iar pentru fiecare următor 10 km - 1 yuan (9,7 ruble). În același timp, pe una dintre ramurile care merge într-o zonă în curs de dezvoltare a orașului, călătoria costă 2 yuani (19,46 ruble).

Foto: Evgeny Razumny / Vedomosti / TASS

Ce va da asta metroului

Potrivit directorului general al INFOLine Analytics, Mikhail Burmistrov, necesitatea de a împărți metroul Moscovei în zone tarifare este copleșită. „Metroul se extinde activ, mergând din ce în ce mai departe în regiune și Noua Moscova. Există planuri de extindere a liniilor către aeroporturi. În aceste condiții, redistribuirea sarcinii tarifare asupra pasagerilor este destul de logică”, a spus analistul.

Potrivit SPARK, în 2017 (cea mai recentă perioadă disponibilă), pierderea metroului din Moscova s-a ridicat la 2,9 miliarde de ruble, iar veniturile din vânzări s-au ridicat la 108,27 miliarde de ruble. Zonarea tarifară va permite metroului să crească veniturile prin creșterea tarifelor pentru locuitorii stațiilor îndepărtate, a menționat Burmistrov. Cu toate acestea, este imposibil de estimat cât de mult poate crește veniturile până când nu se stabilesc politicile tarifare și principiile de zonare.

Burmistrov a menționat că implementarea noului sistem tarifar va dura câțiva ani. „Cel mai probabil, vor începe cu zone de testare. Nu exclud ca pe viitor să fie folosit același sistem și în metroul din Sankt Petersburg. În alte orașe rusești, metroul nu este atât de extins și pur și simplu nu are rost în zonele tarifare”, a conchis Burmistrov.

Potrivit lui Alexander Gushchin, director adjunct al Agenției de Evaluare a Creditelor Analitice (ACRA), sistemul de plăți zonale poate crește veniturile transportatorului prin redistribuirea sarcinii tarifare asupra pasagerilor. „Creșterea costului biletelor de călătorie este întotdeauna un subiect foarte sensibil pentru populație. Dar atunci când transportatorul are un mecanism de reglare fină a tarifelor, această creștere nu va fi atât de vizibilă. Prin urmare, dacă sistemul de zonare este totuși implementat și prinde rădăcini, atunci cu stabilirea corectă a tarifelor acest lucru poate avea un impact pozitiv asupra veniturilor metroului. Desigur, efectul nu va fi vizibil imediat”, a conchis analistul.

Ce se va întâmpla cu vechile metode de plată

Serviciul de presă al Metroului din Moscova a declarat că licitația presupune crearea unui sistem care sprijină plata și controlul călătoriilor în transportul public din Moscova, precum și personalizarea cardului Troika. „Deoarece sistemul este conceput pentru a fi utilizat pe diferite tipuri de transport public, specificațiile tehnice prevăd diferite tipuri de control al biletelor – atât la intrare, cât și la ieșire”, spune serviciul de presă ca răspuns la solicitarea RBC. Metroul a remarcat că tarifele zonale sunt deja aplicate la Moscova. Există două zone tarifare pentru transportul urban terestre de pasageri în capitală: zona A (Moscova în cadrul șoselei de centură a Moscovei și districtul administrativ Novomoskovsky) și zona B (districtul administrativ Troitsky).

„Implementarea etapizată a noului sistem de bilete va începe în 2020. Acesta va susține toate soluțiile tehnice disponibile în prezent în sistemele de plată și control al tarifelor, astfel că implementarea sa va avea loc aproape neobservată de către pasageri. Această logică a unei tranziții „fără întreruperi” la noul sistem este inclusă ca una dintre cerințele cheie”, a raportat Metroul din Moscova. Înainte de implementarea proiectului, a fost analizată experiența din Tokyo, Singapore, Londra, New York și alte mega-orase cu sisteme de transport dezvoltate, a menționat serviciul de presă al metroului capitalei.

Un alt proiect al unui contor cu afișaj avansat, care include măsurarea temperaturii, presiunii atmosferice, umidității aerului și numărarea timpului cu un calendar. În general, include toate evoluțiile mele în lucrul cu senzori de-a lungul pasiunii mele pentru microcontrolere, și toate bunurile achiziționate trebuie folosite undeva :) Rezultatul ar trebui să fie un înregistrator de temperatură îmbunătățit, a cărei prima versiune am abandonat-o. Ei bine, asta e mai târziu, dar acum voi oferi o descriere a acestei plăci și codul de testare pentru a-i verifica funcționalitatea plin acolo cu senzori și microcircuite.

Inima circuitului este microcontrolerul Atmel ATMega64, alimentat de un quartz extern de 16 MHz. Timpul este numărat de cipul de ceas în timp real DS1307, m-am ocupat deja de el și, prin urmare, am urmat calea dovedită.

Pentru măsurarea temperaturii și umidității s-a folosit un senzor DHT11, deși apa este fabricată în China, dă citiri destul de satisfăcătoare. Am și SHT21 în stoc, dar atunci repetabilitatea circuitului va scădea foarte mult, pentru că este mai greu de obținut și va costa la fel ca întregul circuit asamblat.

Toate elementele (cu excepția a două rezistențe) sunt situate pe stratul superior, în partea de jos sunt drumuri care nu se potrivesc în partea de sus. Există puține lucruri interesante acolo, așa că nu includ fotografii.

Pentru a putea conecta direct dispozitivul la un computer (de exemplu, pentru a descărca datele acumulate), placa are un convertor USB-UART pe cipul FT232RL. De asemenea, puteți încărca firmware-ul în microcontroler prin acest convertor dacă instalați mai întâi un bootloader în microcontroler. Am scris mai devreme cum să fac asta.

Pentru a conecta senzori externi, pentru orice eventualitate, ieșirile sunt furnizate de la porturile PA0-PA3. Sunt afișate și contactele interfeței SPI, în cazul în care doriți să vă conectați

Circuitul barometrului pentru măsurarea presiunii atmosferice este construit folosind un senzor de presiune MPXHG6115. Senzorul însuși furnizează o tensiune la ieșire proporțională cu presiunea aerului. Domeniul de funcționare acoperă presiunea atmosferică (90 - 110 kPa) la nivelul mării. Presiunea minimă a aerului de funcționare a senzorului este de 15 kPa, ceea ce îi permite să fie utilizat chiar și în zonele muntoase. Pentru a face acest lucru, totuși, trebuie să recalculați rezistențele de pe placa sa. Pentru presiunea atmosferică într-o zonă aproape de nivelul mării, intervalul de tensiune de ieșire a senzorului este de 3,625 - 4,55 volți. În partea analogică a circuitului (umbrită în diagramă), la ieșire este generată o tensiune liniară în intervalul 0 - 5 V, care se află în domeniul normal al microcontrolerului ADC. Potrivirea se face folosind două amplificatoare operaționale. Cel din stânga (în diagramă) asigură rezistența optimă de sarcină pentru senzor (51 kOhm) și inversează tensiunea de referință de aproximativ 2,5 V. Tensiunea de referință se obține folosind un divizor de tensiune format din două rezistențe de 11,5 k (precizie 1%) . Op-amp-ul potrivit oferă scalarea tensiunii necesare și setarea inițială la 0. Vă recomandăm să utilizați un OPA2374 dual.

Specificații

  • Domeniu de măsurare: 700 - 800 mm Hg
  • Tensiune de alimentare: 5 volți
  • Consum de curent: 40 mA

Senzorul de zoom și amplificatorul analogic sunt asamblate pe o mică placă de circuit imprimat. Se conectează la placa principală folosind 3 fire. Circuitul de testare constă dintr-un microcontroler și un modul LCD cu o interfață montată pe partea din spate. Placa de interfață realizează toate comunicațiile cu PIC-ul folosind doar două fire, iar software-ul său implementează o versiune simplificată a interfeței standard I2C. Programul controlerului PIC16F84 atribuie intrarea pinului RC3 la intrarea ADC. Pur și simplu calculează presiunea pe baza tensiunii de intrare conform formulei, o convertește în BCD și o afișează pe ecran.