Када правите ИоТ пројекат који зависи од доба дана, желите да приказује тачно време без потребе за ручним прилагођавањем. Чини се да би ово било лако постићи са ЕСП32 пошто има уграђену бежичну везу и може се повезати на Интернет.

Међутим, иако постоји много онлајн примера који показују како да конфигуришете ЕСП32 да се повеже на Интернет и синхронизује време са временом сервера, већина њих захтева да ручно прилагодите летње рачунање времена два пута годишње, што изгледа прилично смешно за било коју електронику 21. века уређај.

Овде ћемо вам представити решење које ће омогућити ЕСП32 да приказује тачно време, за било које место у свету, током целе године. Али прво, хајде да погледамо пример СимплеТиме у Ардуино ИДЕ-у и видимо шта ради и како га можемо побољшати.

Пример СимплеТиме

Ако користите Ардуино ИДЕ са ЕСП32, видећете да има пример под називом СимплеТиме то изгледа овако:

Овом примеру можете приступити тако што ћете конфигурисати Ардуино ИДЕ да користи ЕСП32 плочу из Алати мени, као што је избор

ЕСП32 Дев модул. Када то учините, можете приступити примеру СимплеТиме из Алати мени испод Примери,ЕСП32,Време, и Симпле Тиме.

Могло би се очекивати да овај званични пример демонстрира најбољи начин да се ствари раде, али постоји један велики проблем у овом примеру. Да бисте конфигурисали временску зону и летње рачунање времена, морате да промените следећа два реда:

цонст лонг гмтОффсет_сец = 3600;
цонст инт даилигхтОффсет_сец = 3600;

Подешавање временске зоне помоћу гмтОффсет_сец је незгодно јер морате да пронађете ГМТ офсет за вашу одређену локацију. То можете учинити тако што ћете консултовати Веб страница средњег времена по Гриничу. На срећу, ово треба да урадите само једном. Тхе даилигхтОффсет_сец представља већи проблем, међутим, јер га морате прилагођавати два пута годишње. Ово може захтевати да скинете свој пројекат и да га повежете са Ардуино ИДЕ два пута годишње, што га чини потпуно неприкладним за ИоТ пројекат који желите да подесите и заборавите.

Тражите бољи приступ

Дакле, који би био бољи начин да конфигуришете временску зону и летње рачунање времена? Да бисте одговорили на ово питање, не тражите даље од тога како ваш Виндовс рачунар решава ситуацију:

Обратите пажњу на то како уместо да му дајемо временске помаке од ГМТ, ми кажемо Виндовс-у која је наша временска зона и локација — у нашем случају Планинско време (САД и Канада)—а затим потврдите избор у пољу за потврду Аутоматски подесите сат за летње рачунање времена. Од тог тренутка, Виндовс то аутоматски ради за нас током целе године. Ово је врста погодности коју желимо од нашег ЕСП32.

Повезан: Како да прилагодите сат системске траке на Виндовс-у

Креирање базе података локација за ЕСП32

Урадити исту ствар на ЕСП32 захтева мало труда. почели смо са а блог пост који описује како да подесите временску зону користећи ТЗ променљиву окружења. За нашу локацију, десило се МСТ7МДТ, М3.2.0, М11.1.0, према овоме табела временских зона. Иако је ово решило проблем потребе за ручно подешавањем летњег рачунања времена, желели смо да процес буде једноставнији, без потребе за тражењем низа бројева и слова за сваки локација.

Конвертовали смо податке са веб странице у базу података коју можете користити директно из ваших Ардуино скица. Пратити овај линк да директно преузмете зип датотеку са Ардуино скицом.

Сама база података се чува у датотеци временска зона.х. Коришћењем базе података, код за СимплеТиме изгледа овако:

Жутом бојом смо истакли модификације примера СимплеТиме. Ова линија ће омогућити скици да користи базу података:

#инцлуде "тиме_зонес.х"

Ова линија конфигурише вашу локацију:

цонст цхар* лоцатион = "Америка/Денвер";

Постоји 461 могућа локација. Доступне локације можете пронаћи ако погледате временска зона.х датотеку или тако што ћете погледати листу временских зона на ову веб страницу.

Коначно, следећи ред говори ЕСП32 да синхронизује време са Интернет сервером користећи Нетворк Тиме Протоцол (НТП):

цонфигТимеВитхТз (гетТзБиЛоцатион (локација), нтпСервер);

Одређени Интернет временски сервер се може конфигурисати коришћењем следећег реда, иако би подразумевани требало добро да ради за вас:

цонст цхар* нтпСервер = "поол.нтп.орг";

Такође желите да будете сигурни да додате информације за своју бежичну приступну тачку у следећа два реда:

цонст цхар* ссид = "ВАШ_ССИД";
цонст цхар* пассворд = "ВАШ_ПАСС";

Заменити ИОУР_ССИД са именом ваше бежичне мреже и ИОУР_ПАСС са лозинком која се користи за повезивање са њим.

Повезан: Начини да безбедно конфигуришете бежични рутер као јавну приступну тачку

Заврсавам

Када завршите кораке конфигурације, отпремите скицу на ЕСП32 и она ће користити тачно време током целе године без икакве интервенције!

Иако вам овај код даје добру почетну тачку, постоје једноставнији начини да се постигне иста ствар. На пример, можда бисте желели да дозволите кориснику да све конфигурише са веб странице уместо да то ради у време компајлирања. То је доста више посла, јер би требало да урадите следеће ствари у вашој Ардуино скици:

  1. Конфигуришите ЕСП32 као бежичну приступну тачку за почетну конфигурацију
  2. Покрените веб сервер да бисте кориснику представили страницу са конфигурацијом
  3. Направите ХТМЛ образац да бисте омогућили кориснику да унесе информације о бежичној мрежи и да одабере своју локацију
  4. Креирајте код за обраду избора корисника и ускладиштите га у непроменљивој меморији
  5. При укључивању плоче:
    • Прочитајте конфигурацију из непроменљиве меморије
    • Повежите се на бежичну мрежу и синхронизујте време

Пројекат који демонстрира ове кораке је ЕСП32 Дали сат. Управо нас је овај пројекат навео да пронађемо бољи начин за синхронизацију времена на ЕСП32.

Кредит за слику: Марцио Теикеира/Флицкр

Погледајте изворни код за ЕСП32 Дали сат да видите како да прикажете страницу са потпуно функционалном конфигурацијом веба. Страница са конфигурацијом приказује падајући мени који омогућава кориснику да одабере своју локацију и временску зону и такође омогућава кориснику да ручно подеси време користећи виџет за време и календар, за неповезану алтернатива!

Синхронизација мрежног времена заснована на локацији на ЕСП32

Сада имате све информације које су вам потребне да бисте могли аутоматски да подесите сат вашег ЕСП32 на тачно време, као и да га подесите за летње рачунање времена. Ово је савршено за ИоТ пројекте које не желите да ручно прилагођавате.

7 занимљивих пројеката који користе ЕСП32 за генерисање композитног видеа

Ако тражите занимљиве пројекте са ЕСП32, на правом сте месту.

Реад Нект

ОбјавиТвеетЕмаил
Повезане теме
  • ДИИ
  • ЕСП32
  • Интернет Ствари
О аутору
Марцио Теикеира (4 објављена чланка)

Ја сам произвођач са посебним интересовањем за софтвер отвореног кода, електронику, 3Д штампање, компјутерску графику и ретро рачунарство.

Више од Марцио Теикеира

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили