Креирање једноставног дата логгер-а са РИОТ-ом (Реалтиме Интернет оф Тхингс)

Week 10 (Јули 2019).

$config[ads_text] not found
Anonim

Креирање једноставног дата логгер-а са РИОТ-ом (Реалтиме Интернет оф Тхингс)


РИОТ, Реалтиме Интернет оф Тхингс, је оквир намењен једноставном коришћењу ЕСП8266 са микроконтролерима. У овом пројекту ћемо демонстрирати једноставност РИОТ-а тако што ћемо направити регистратор података који ће плотирати ниво светлости на графикон на ПЦ сервер апликацији.

Увод

У последњем РИОТ пројекту научили смо како направити једноставан РИОТ сервер на Виндовс ПЦ-у и једноставан РИОТ клијент чији ЛЕД може да укључи и искључи сервер. Из тог пројекта видјели смо да РИОТ потенцијално дозвољава било који систем са УАРТ портом да се претвори у уређај који подржава интернет.

У овом пројекту ћемо погледати комуникацију између клијента и сервера гдје ће клијент примити читање напона из ЛДР / резисторног разделника, а затим их уписати на графикон који се може наћи на серверу (написан у ВБ.нет-у). Препоручује се да прођете кроз претходни пројекат пре него што покушате овај пројекат, јер ће се дијелови кода и шематски сетови рециклирати, али са мало објашњења.

Напомена: РИОТ се сада зове РИОТОУС и може се наћи на //ввв.риотоусфрамеворк.цом

Предуслови и софтвер за компајлирање

Да би РИОТ исправно функционисао на страни клијента, мора се користити специфична АТ и СДК верзија. АТ верзија мора бити 1.1.0.0 и верзија СДК мора бити 1.5.4. Раније верзије имају бугове када затварају везе, а касније верзије имају или недостајући или бугги код. Да бисте сазнали захтеве РИОТ клијентског оквира, кликните овдје.

За састављање пројекта потребно је:

  • Мицроцхип ИДЕ 8.92
  • Мицроцхип Ц18 компајлер
  • Висуал Студио Екпресс 2012

Такође, обавезно прочитајте претходни пројекат у овој серији за потпуно објашњење онога што је РИОТ.

Шематски

У овом пројекту морамо користити АДЦ модул који се налази на ПИЦ18Ф25К20 (ПДФ), 3.3В микроконтролеру. Уређај 3.3В се користи јер је сам ЕСП8266 уређај 3.3В, и стога нам не треба укључити преводилац на нивоу логике.

Додатни кондензатор је укључен на 3.3В линију (Ц5) у близини регулатора како би се помогло у уклањању високофреквентне буке на далеководу.

Схема за пројекат. Кликните за увећање

Клијент-Сиде Цоде

Први задатак нашег клијентског кода је исправно подешавање периферног АДЦ на возилу. Наше аналогно очитавање се налази на РА0, тако да користимо следећи код да би тај пин функционисао као аналогни улаз, укључи АДЦ и конфигурише АДЦ. Доњи код за подешавање такође конфигурише унутрашњи осцилатор за максималну брзину (16МХз) и к4 ПЛЛ. Овај код се налази у сетуп.х.

Следећи комад кода који је потребан у нашем клијентском контролеру је конфигурација РИОТ-а која подразумева стварање ИСР-а, конфигурирање УАРТ модула и приопћавање РИОТ-у како слати податке преко УАРТ-а. Овај код (који говори РИОТ како да користи УАРТ модул) је кодиран од стране вас и уметнут је у ИоТ_ЦлиентФрамеворк.ц.

Овај ИСР шифра говори РИОТ-у да је примљен нови бајт и да ажурира државну машину у оквиру РИОТ-а.

Када је клијент конфигурисан, време је да подеси излаз уређаја, иницијализује РИОТ, повеже се на Ви-Фи мрежу, а затим се повеже са сервером РИОТ.

Сада је време да започињемо снимање података! Наш клијент ће често читати РА0 (неколико читања у секунди, мада то можете променити ако желите), а затим просљеђите читање РИОТ серверу. Тајминг би било боље урадити користећи један од периферних модула тајмера, али за једноставност, овај примјер ће користити једноставну петљу за одлагање. Кашњење кашњења се може користити овде јер се РИОТ ажурира користећи прекид УАРТ пријема који има приоритет над главним покретним кодом.

Када је кашњење завршено, иницирање аналогног на дигитално се покреће постављањем ГО бита у регистар АДЦОН0. Модул АДЦ ће очистити ГО бит када се узме читање, тако да док се (АДЦОН0битс.ГО) затвара на неодређено време док АДЦ резултат није спреман. Са резултатом АДЦ-а смо пребацили горње 8 бита резултата у низ података (величина 1) и послали тај појединачни бајт на наш сервер. Низ величине 1 се користи зато што се подаци шаљу у оквир РИОТ-а користећи показивач на низ (то је тако могуће је слати ток бајтова у низу).

Испод су конфигурацијске вредности за ПИЦ18Ф25К20 (неправилна конфигурација хардвера је уобичајени извор проблема у пројектима микроконтролера).

Сервер-Сиде Цоде

Као код код клијентске стране, рециклићемо већину кода из претходног пројекта (конкретно, распоред апликације, конфигурацију сервера и тикер који се користи за проверу нових података од клијената и одређује који су клијенти још увек повезан). Разлика између ове апликације и претходне апликације пројекта је уклањање ЛЕД командних дугмади и објекат графикона.

Али, прво, брза порука на ВБ: ВБ.нет (заједно са Висуал Студио 2012 ИДЕ) мора бити један од најефикаснијих језика које сам икада користио. Пре него што сам направио овај пројекат, а не био природни програмер, био сам забринут како ћу креирати ГУИ апликацију са графичким могућностима. Као што се испоставило, ВБ.нет укључује и графички објекат који је апсолутно савршен за посао. Једноставно превлачење / испустање у главну форму са две или три линије кода за подешавање добија вам способности графиковања које би биле изазовне на језику као што су Ц или Ц ++ (међутим, сматрам да ова погодност може бити само .нет оквир за разлику од на језик као визуелни Ц # је такође одличан језик када се користи у Висуал Студио-у).

Дакле, прва ствар коју ћемо урадити је да додамо графикон нашем облику који се обавља отишао на тоолбок> Дата> Цхарт. Одатле можете променити величину подручја карте, променити шему боја и још много тога.

Једна цоол ствар о објектима у ВБ.нет-у је да се аутоматски иницијализују и конфигуришу у конфигурационој датотеци за коју не морамо да се бринемо. Уместо тога, треба само да бринемо о чишћењу подручја, стварању нове серије података, а затим прикупљању сирових података у тренутку доласка! Пре него што се испред себе и почнемо манипулисати објектом графикона, морамо конфигурирати клијент РИОТ сервера. Будуће верзије РИОТ-а ће омогућити да се сва конфигурација РИОТ-а врши помоћу функција, али за сада се конфигурација врши уређивањем ВБ датотека. Само једна линија мора бити уређена у Сервер.вб, тј. Линији 114, која захтева од корисника да уђе на локалну ИП адресу уређаја. Из неког разлога, нисам могао то да урадим помоћу локалног хоста.

Враћање у објект графикона, чишћење графикона и стварање нове серије података је прилично тривијално. Ово ће се урадити када притиснемо дугме за покретање сервера.

Сада када је графикон спреман за плотирање података и сервер је иницијализован, време је да добије долазне податке од клијената, обришу заставе доступне податке и планирају податке на графикону.

Брза напомена: Апликација визуелног студија и видео записи испод приказују графикон као ознаку "логгедЛигхт", гдје заправо подаци представљају "логгедДаркенесс". Ово је због конфигурације потенциометра и може се лако поправити тако што се одштампано очитавање одузима са 256 (мак). Ово би дало пријављену светлост уместо пријављене таме.

БОМ

Дио

Шематски референт

Количина

ПИЦ18Ф25К20

ИЦ1

1

АМС1117 3.3В регулатор

ИЦ2

1

ЕСП8266 ЕСП-01

ЕСП8266

1

1 кΩ Резистор

Р3, Р4

2

5.6 кΩ Резистор

Р2

1

10 кΩ Резистор

Р5

1

ЛДР

Р1

1

ЛЕД

Д1, Д2

2

100 нФ Кондензатор

Ц1, Ц2, Ц4, Ц5

4

22 μФ Кондензатор

Ц3

1

Добијање пројекта

Као иу претходном пројекту, конструкт ћемо конструисати на масини. Можда ћете приметити да је АМС1117 у ИЦ пакету који је веома непријатељски са плочама. Ово се лако решава исецањем великог језичка, а затим спајањем уређаја на комад таблице. Одатле се може повезати 3-пински равно заглавље за креирање пакета попут ТО-220.

РИОТ Дата Логгер Цоде

Видео пројеката у акцији

Резиме

Овај пројекат показује колико је потребно мало напора да се креира логер података из неколико једноставних делова и бесплатан софтвер који је доступан већини кућних рачунара. Овај пројекат се лако може проширити за употребу са различитим типовима сензора (температура, влажност, итд.). Такође, нисте ограничени на само цртање података; Такође можете да га спремите у датотеку за накнадну анализу.

У следећем пројекту РИОТ-а, погледаћемо комуникацију између уређаја, гдје клијент шаље поруке другом клијенту преко РИОТ сервера.

Дајте овом пројекту покушај за себе! Узми БОМ.