Домашен барометър на микроконтролер. Метрото ще маркира границите: кога столичният транспорт ще въведе плащане по зони?

Спомням си, когато бях много малък, дядо ми никога не слушаше прогнозата за времето по радиото, винаги гледаше стария си стрелкови барометър, имаше поне две стрелки (не помня точно, защото минаха толкова много години) , и той никога не е грешал!

Така че отдавна исках да имам барометър във фермата си, но все още не е възможно, скъпо е, не го намерих или имаше други пречки. Но след това започнах да работя върху микроконтролери и стана възможно сам да направя барометър.
Спестих малко пари от скривалището на любимата ми жена и купих сензори MPX4115AP (сензор за налягане) и HIH-4000-004 (сензор за влажност), защо точно тези? Да, просто, защото има много информация за тях в интернет и те бяха в продажба, въпреки че бяха скъпи. Лъвският пай от цената на цялото устройство дойде от тях.
И двата сензора са аналогови, което означава, че барометърът трябва да бъде волтметър с два входа, като показанията на ADC са коригирани в mmHg. (милиметри живачен стълб) и % (процент на влажност на въздуха). Действителното преобразуване на показанията на ADC в mmHg. , а % добросъвестно взех от статията „Малка метеорологична станция Направи си сам“ - http://www.avispro.com.ua/doc.php?id=1172

Но дизайнът, представен в статията, ми се стори излишен и исках да го направя по-опростен и определено да използвам LED индикатори, тъй като те светят и са големи по размер, което означава, че ще бъдат ясно видими отдалеч и при всякакво осветление, и те консумират много по-малко ток от LCD подсветката.
Използвах индикатора BA56-12SRWA (LED седем сегмента, 3 цифри ОА), 2 части. Те са супер ярки, т.е. Можете допълнително да намалите консумацията на ток.

Можете да прочетете за това как да използвате стойностите на атмосферното налягане и влажността на въздуха при прогнозиране на времето, например тук - http://www.meteopost.com/info/Pressure/

Това е получената диаграма:

Оформлението на таблото е така:

На печатната платка има обща шина - цифрова и аналогова са разделени.
Захранването също е разделено на аналогово и цифрово и се подава чрез дросели 25 µH. към аналогови вериги, а проводникът във феритна тръба към цифрови.

На входа на ADC има 0,33 µF кондензатори към аналоговата маса и резистор 750 ома към сензорите. Това са филтри за намаляване на всякакъв вид шум на входовете.

Изводите на микроконтролера AVCC и AREF са шунтирани с 0,1 μF керамични кондензатори и други 10,0 μF танталови кондензатори (жълти от стари дънни платки).

За да бъдат показанията за влажност на въздуха правилни, трябва да се изнесе извън помещението (навън) и да се свърже към платката с кабел (за предпочитане екраниран) и разбира се защитен от пряко излагане на валежи, тъй като сензорният кристал е напълно отворен. Изобщо не е необходимо да премествате датчика за налягане извън платката.

Тази програма, разбира се, не е стандартна, но е доста подходяща като опция за начинаещи
Разбира се, можете да добавите потискане на незначителна нула в индикатора за влажност, не е трудно, можете да копаете и да коригирате нещо друго, защото няма ограничение за съвършенството.
Давам на читателите пълна свобода да подобряват кода.

Статията е предназначена за хора, които обичат да създават нещо със собствените си ръце, само за душата и моралното удовлетворение.

Забележка: Комерсиалното използване на материали от тази статия е забранено!

Кодът е написан в CodeWizardAVR V2.04.4a
Платката е маршрутизирана в Sprint-Layout 5.0
Диаграмата е начертана в Splan7.0.0.8_portable_rus

Този дизайн е разработен по молба на мой приятел - любител на автомобилните пътувания и офроуд. Те (приятели и другари) на походи наистина искат да знаят в каква посока и с каква скорост се променя атмосферното налягане, за да се опитат да разберат какво ще се случи с времето. Той избра евтиния индикатор ME-GLCD128x64, показан на снимката:

Устройството е сглобено на двустранна печатна платка, произведена по метода LUT:


Микроконтролерът беше избран ATMega32 в дълбок пакет поради следните причини: имах го, не можах да намеря друга употреба за толкова голям пакет (DIP40), т.к. Напоследък правя почти всичко на SMD.

Сензор за налягане HopeRF - HP03M, комуникиращ с MK чрез TWI протокол. Температурни сензори DS18S20 от Maxim.

Часовникът за реално време е избран на чипа M41T81 поради следните причини: наличието на корекция на времето и наличието на Timekeeper - което ви позволява да четете текущото време, без да губите часовникови цикли на главния брояч.

Беше решено да се използва USB адаптер за кола като източник на захранване - той произвежда 5V при ток до 0,5A. Поради факта, че когато двигателят стартира, „пропуските“ в бордовата мрежа на автомобила са доста големи, беше необходима схема за аварийно записване на текущите стойности в eeprom. За да направите това, се използва отделяне на захранването на MK и останалата част от веригата. Захранването на MK се поддържа от кондензатор от 1000 uF, което, както показаха тестовете, е достатъчно (повече от два пъти), за да може MK да запише 6 байта текущи стойности на сензора в eeprom. Мониторингът на наличието на захранване и веригата за нулиране на MK се осигуряват от двама енергийни надзорници. Първият следи напрежението на входа на веригата и, ако захранването отпадне, извежда log.0 към int0, като по този начин стартира процедурата за запазване. Вторият осигурява „твърдо“ нулиране на самия MK, когато захранването му намалее - за да се предотврати повреда на eeprom.

В нормален режим данните се записват в eeprom на всеки половин час. Общо се съхраняват стойности за 2 дни. Текущото време, получено от m41t81, се преобразува в брой секунди от 2000 г. и въз основа на тази стойност се изчислява текущият адрес на запис (един от 96). След прости изчисления можете да видите, че ресурсът на eeprom ще бъде изчерпан след приблизително 540 години (всяка клетка се презаписва веднъж на всеки 2 дни) или след 18 години, ако захранването се изключва всяка минута. Данните за половин час са средното налягане, температурата за всеки сензор, времето в секунди (кратно на 96) и CRC16 контролна сума. При стартиране данните се четат от eeprom и контролната сума на всеки блок се проверява, ако сумата не е правилна, данните се игнорират. Също така данните се игнорират, ако датата на записването им надвишава 2 дни (не се нуждаем от толкова стари данни). Контролната сума на основните настройки се изчислява по същия начин и ако не е правилна, приемаме, че това е първото стартиране на програмата и задаваме всички стойности по подразбиране.


В горния ляв ъгъл е текущото налягане в mmHg, а след стрелката е промяната в налягането през последните 3 часа. По-долу са показанията на два температурни сензора и макс/мин стойности за последните 24 часа. По-долу има графика на промените в налягането. (грешка в графиката - устройството беше изключено специално за този половин час - следователно няма данни и нищо за показване)

Меню с настройки:


Възможни са настройки: дата и час, „корекции“ за тактовата честота, корекции на налягането (за привеждане на текущата надморска височина), настройка на максималната и минималната яркост, времето, след което яркостта преминава от максимална към минимална.

Всички настройки се правят с три бутона Enter, +, - За да влезете в менюто с настройки, трябва да задържите + и - за повече от секунда.

В основния режим бутоните + и - не работят и затова са скрити. Бутонът Enter превключва яркостта на екрана от макс. за мин. и обратно. Ако го държите дълго време, подсветката на екрана се изключва напълно.

Действителната схема на устройството:


В архива: фърмуер, електрическа схема, платка, платка в diptrace. Плюс набор от различни числа и символи с C кодове.

PS: Проектът ще се развива, защото... Все още предстоят зимни тестове за устойчивост на замръзване :)


файлове:
Бонус: много числа с масиви "C".
Фърмуер, източници, електрическа схема, платка


Кой спечели търга

Победител в търга е разработчикът на софтуер „Софтуерен продукт“. Цената на договора беше 670 милиона рубли. Срокът за изпълнение е 910 календарни дни от датата на сключване на договора.

„Въпросът за зониране е тарифен въпрос. Тарифите и правилата за трансфери се определят от структурите на Московския департамент по транспорта, нашата задача в рамките на договора е да поддържаме тези правила технологично“, каза за RBC Дмитрий Чурсин, изпълнителен директор на Software Product.

Чурсин не обясни как точно може да се контролира преминаването на определени зони от пътници. „През следващите три години в тази система може да се появят нови видове медии за билети и устройства за автоматизация на пътниците за безконтактни методи за валидиране на билети“, каза той.

Както каза за RBC Татяна Семенова, генерален директор на MSP LLC (съвместно предприятие между производителя на микроелектроника Mikron и Московското метро, ​​отговарящ за развитието на транспортни проекти), една от задачите в рамките на развитието на интелигентната градска инфраструктура е оптимизиране на транспортните разходи за пътници в зависимост от продължителността, редовността и времето на пътуването, както и осигуряване на възможност за използване на билети за пътуване в съседни региони.

От 2013 г. Микрон е производител и доставчик на пластмасови безконтактни смарт карти за тарифите на Тройка. Според Семенова MSP LLC е готова да пусне нов микроконтролер (намиращ се вътре в билета), който може да осигури функциите на новата тикет система. „Първата модификация на новия чип с поддръжка на протоколи за отворен свят ще бъде завършена след една година. Следващата стъпка е разработването на втора модификация, която ще поддържа криптография в съответствие с вътрешния ГОСТ“, отбеляза тя, добавяйки, че в момента няма руски модели на такъв чип.

Как ще се промени билетната система на Москва

През ноември 2018 г. пресслужбата на Московското метро обяви разработването на нова билетна система. В съобщението се отбелязва, че картата на Тройката ще бъде персонализирана и ще бъде извършена интеграция с билетни системи на други региони. Новата тикет система ще може да обработва повече от 6 милиарда транзакции годишно. В съобщението обаче не се споменава въвеждането на зонови тарифи.

Според техническите спецификации на метрото новата билетна система трябва да обедини превозвачи и градски услуги, работещи на територията на Москва и Нова Москва. На негова основа трябва да се организира единно издаване на билети и управление на единния градски транспорт чрез приложението Тройка, чрез интеграция с други транспортни оператори. Тази система ще включва и възможност за плащане на популярни градски услуги (споделяне на коли, велосипеди под наем), билети за кино, театър и изложбени зали. Очаква се динамично многоетапно определяне на тарифата, което ще зависи например от времето на деня, зонирането, броя на прекачванията и използваните видове транспорт.

Освен това системата ще ви позволи да управлявате пътникопотоците, като предлагате нови продукти и програми за лоялност. Той ще включва възможността за възпроизвеждане на предложените решения в други региони. Според оценките, дадени в техническите спецификации на метрото, среднодневният пътникопоток, обработен от новата билетна система, трябва да бъде най-малко 16 милиона пътника на ден. В средносрочен план той може да нарасне до 24 милиона.

Кога се роди идеята за плащане по зони?

Представители на московското метро обявиха необходимостта от въвеждане на зонови тарифи преди няколко години. По-специално през 2009 г. бившият ръководител на столичното метро Дмитрий Гаев каза, че тарифните зони са бъдещето на метрото. Според него въвеждането на подобна система за разплащане ще бъде възможно едва след завършването на третата верига за обмен, когато пътниците ще имат възможност за алтернативни маршрути. Според сегашния план той трябва да бъде завършен през 2020 г.

Зоналните тарифи в метрото се използват в много мегаполиси, например в Париж, Барселона и Лондон. Колкото по-далеч е гарата от центъра, толкова по-скъпа е цената. Например в Шанхай цената зависи от разстоянието на пътуването: за първите 6 км пътникът плаща 3 юана (около 29 рубли), а за всеки следващи 10 км - 1 юан (9,7 рубли). В същото време, на един от клоновете, който отива в развиваща се зона на града, пътуването струва 2 юана (19,46 рубли).

Снимка: Евгений Разумни / Ведомости / ТАСС

Какво ще даде това на метрото?

Според генералния директор на INFOLine Analytics Михаил Бурмистров е назряла необходимостта московското метро да бъде разделено на тарифни зони. „Метрото активно се разширява, отивайки по-далеч в региона и Нова Москва. Плановете включват разширяване на линиите до летищата. В тези условия преразпределението на тарифната тежест върху пътниците е съвсем логично“, каза анализаторът.

Според SPARK през 2017 г. (последният наличен период) загубата на московското метро възлиза на 2,9 милиарда рубли, а приходите от продажби възлизат на 108,27 милиарда рубли. Тарифното зониране ще позволи на метрото да увеличи приходите чрез увеличаване на тарифите за жителите на отдалечените станции, отбеляза Бурмистров. Невъзможно е обаче да се прецени колко могат да се увеличат доходите, докато не се определят тарифната политика и принципите на зониране.

Бурмистров отбеляза, че прилагането на новата тарифна система ще отнеме няколко години. „Най-вероятно ще започнат с тестови зони. Не изключвам в бъдеще същата тази система да бъде използвана и в петербургското метро. В други руски градове метрото не е толкова обширно и просто няма смисъл от тарифни зони“, заключи Бурмистров.

Според Александър Гушчин, заместник-директор на Агенцията за аналитичен кредитен рейтинг (ACRA), системата за зонално плащане може да увеличи приходите на превозвача чрез преразпределяне на тарифната тежест върху пътниците. „Увеличаването на цената на билетите винаги е много чувствителна тема за населението. Но когато превозвачът има механизъм за фина настройка на тарифите, това увеличение няма да бъде толкова забележимо. Следователно, ако системата за зониране все пак бъде внедрена и се утвърди, тогава с правилното определяне на тарифите това може да има положително въздействие върху приходите на метрото. Разбира се, ефектът няма да се види веднага“, заключава анализаторът.

Какво ще се случи със старите методи на плащане?

Пресслужбата на Московското метро заяви, че търгът включва създаването на система, която поддържа плащане и контрол на пътуването в московския обществен транспорт, както и персонализирането на картата Тройка. „Тъй като системата е предназначена за използване в различни видове обществен транспорт, техническите спецификации предвиждат различни видове контрол на билети - както на входа, така и на изхода“, казва пресслужбата в отговор на искането на RBC. От метрото отбелязаха, че в Москва вече се прилагат зонови тарифи. В столицата има две тарифни зони за наземен градски пътнически транспорт: зона А (Москва в рамките на Московския околовръстен път и административен район Новомосковски) и зона Б (административен район Троицки).

„Поетапното внедряване на новата тикет система ще започне през 2020 г. Той ще поддържа всички налични технически решения в системите за плащане и контрол на тарифите, така че внедряването му ще стане почти незабелязано от пътниците. Тази логика на „безпроблемен“ преход към новата система е включена като едно от ключовите изисквания“, съобщиха от московското метро. Преди реализацията на проекта беше анализиран опитът на Токио, Сингапур, Лондон, Ню Йорк и други мегаполиси с развити транспортни системи, отбелязват от пресслужбата на столичното метро.

Още един проект за усъвършенстван дисплей, който включва измерване на температура, атмосферно налягане, влажност на въздуха и отчитане на времето с календар. Като цяло включва всички мои разработки в работата със сензори през цялата ми страст към микроконтролерите, и всички закупени стоки трябва да се използват някъде :) Резултатът трябва да бъде подобрен регистратор на температурата, първата версия, която изоставих. Е, това е по-късно, но сега ще дам описание на тази платка и тестов код, за да проверя нейната функционалност натъпкан със сензори и микросхеми.

Сърцето на веригата е микроконтролерът Atmel ATMega64, захранван от външен 16 MHz кварц. Времето се отчита от чипа за часовник за реално време DS1307, аз вече се занимавах с него и затова следвах доказания път.

За измерване на температурата и влажността е използван сензор DHT11, въпреки че водата е произведена в Китай, той дава доста задоволителни показания. Имам и SHT21 в скривалището си, но тогава повторяемостта на схемата ще падне много, защото е по-трудно да се получи и ще струва същото като цялата сглобена схема.

Всички елементи (с изключение на два резистора) са разположени на горния слой, на дъното има пътища, които не се побират на върха. Там има малко интересно, затова не включвам снимки.

За да можете директно да свържете устройството към компютър (например, за да изтеглите натрупаните данни), платката разполага с USB-UART конвертор на чипа FT232RL. Можете също така да заредите фърмуер в микроконтролера чрез този конвертор, ако първо инсталирате буутлоудър в микроконтролера. Написах по-рано как да направя това.

За свързване на външни сензори, за всеки случай, са осигурени изходи от портове PA0-PA3. Показани са и контактите на SPI интерфейса, в случай че искате да се свържете

Веригата на барометъра за измерване на атмосферното налягане е изградена с помощта на сензор за налягане MPXHG6115. Самият сензор осигурява напрежение на своя изход, пропорционално на налягането на въздуха. Работният диапазон обхваща атмосферно налягане (90 - 110 kPa) на морското равнище. Минималното работно налягане на въздуха на сензора е 15 kPa, което позволява използването му дори в планински райони. За целта обаче трябва да преизчислите резисторите на платката му. За атмосферно налягане в зона близо до морското равнище диапазонът на изходното напрежение на сензора е 3,625 - 4,55 волта. В аналоговата част на схемата (защрихована на диаграмата) на изхода се генерира линейно напрежение в диапазона 0 - 5 V, което е в нормалния диапазон на ADC на микроконтролера. Съвпадението се извършва с помощта на два операционни усилвателя. Левият (на диаграмата) осигурява оптималното съпротивление на натоварване за сензора (51 kOhm) и инвертира референтното напрежение от около 2,5 V. Референтното напрежение се получава с помощта на делител на напрежение, състоящ се от два 11,5 k резистора (1% точност) . Десният операционен усилвател осигурява необходимото мащабиране на напрежението и първоначална настройка на 0. Препоръчваме да използвате двоен OPA2374.

Спецификации

  • Диапазон на измерване: 700 - 800 mm Hg
  • Захранващо напрежение: 5 волта
  • Консумация на ток: 40 mA

Сензорът за мащабиране и аналоговият усилвател са монтирани на малка печатна платка. Свързва се към основната платка с помощта на 3 проводника. Тестовата верига се състои от микроконтролер и LCD модул с интерфейс, монтиран на задната му страна. Интерфейсната карта осъществява всички комуникации с PIC, като използва само два проводника, а нейният софтуер изпълнява опростена версия на стандартния I2C интерфейс. Програмата на контролера PIC16F84 присвоява своя щифтов вход RC3 към входа на ADC. Той просто изчислява налягането въз основа на входното напрежение съгласно формулата, преобразува го в BCD и го показва на екрана.