Контики - Симулатори на мрежата Вики WSN
Кориснички алатки
Алатки за страницата
Содржина
Главните "корисници" на оперативниот систем Контики се сензорските јазли во безжична сензорска мрежа (WSN). Карактеристиките на овие јазли (ниска цена, мала обработка и мемориски способности и ограничени резерви на енергија) го оневозможуваат водењето напреден оперативен систем. Поради ова, користењето на систем на „ниско ниво“ како што е „Контики“ е повеќе од соодветно.
Архитектурата на мрежата за безжичен сензор е дадена на сликата подолу:

Како што можете да видите, најголемиот дел од мрежата се состои од десетици, можеби дури и стотици сензорни јазли кои сите работат повеќе или помалку иста програма. Поголемиот дел од времето програмата вклучува процес што собира податоци од околината и ги испраќа до јазол на мијалник и друг процес што ги извршува сите команди што доаѓаат од мрежниот координатор (портал јазол).
Честопати е потребно да се развие дистрибуиран алгоритам кој работи низ целата мрежа за да се овозможи размена на пораки помеѓу јазлите на мулти-хоп начин. Реалната имплементација на ваков алгоритам е незгодна, особено поради големиот број на јазли кои треба често да се репрограмираат во фазата на развој.
Поради ова, во раните фази на развој се претпочита да се користи мрежен симулатор. Контики користи два симулатори за оваа намена: Mspsim на ниво на сензорни јазли и Cooja за симулација на цела мрежа на јазли.
МСП е емулатор за серијата MSP430 серија на ултра-мала моќност на процесори од Texas Instruments. Тие се користат на сензорните јазли на Tmote Sky. Симулаторот поддржува формат за внесување на податоци IntelHEX и ELF и има комунални услуги за следење на оџакот, поставување на точка на прекин и профилирање.

КОЈА е мрежен симулатор напишан на Java и има за цел да симулира безжични сензорски мрежи кои работат на Contiki. COOJA може да симулира хетерогени мрежи на сензори, каде што секој јазол може да биде различен од останатите, не само од перспектива на софтверот што го работи, туку и од хардверска гледна точка. Симулиран јазол COOJA има три основни својства: меморија на податоци, тип на јазол и хардверски периферни уреди. Симулаторот може да изврши код на два начина: или природен код составен за процесорот домаќин, или со употреба на емулаторот MSPsim. COOJA исто така може да симулира не-контички јазли, имплементирани во Јава, со предност што времето на симулација е многу подобрено во споредба со претходните варијанти.

Во оваа лабораторија ќе научите да ги користите двата симулатори.
МСП
MSPsim може да се извршува многу лесно при составување код. Следната команда треба да започне инстанца на MSPsim и да го симулира вашиот пример за здраво-свет:
На еден од отворените прозорци (USART1 Port Output) ќе ги видите линиите на текстот отпечатен од низата за подигање Contiki. MSPsim исто така вклучува LED диоди што можат да бидат осветлени и копчиња што можат да се притиснат, исто како и во случај на вистинска платформа. Обидете се да го притиснете копчето за ресетирање и да видите што ќе се случи.
Вежби
Вежба 1: Проширете ја програмата hello-world.c за да LED-светлата трепкаат (внесете тајмер) и отпечатете текст на серискиот интерфејс кога ќе го притиснете копчето „Корисник“ (внесете настан).
СОВЕТ: Погледнете „core/dev/leds.h“ и „core/dev/button-sensor.h“ и не заборавајте да направите printf
Многу корисна апликација е школка. Ова ви овозможува да имате минимална обвивка преку сериската врска или дури преку радио-врската.
Вежба 2: Извршете ја апликацијата за школка за Tmote Sky во MSPsim:
Командата за помош ги наведува сите достапни команди. Пробајте ги и играјте со нив.
Вежба 3: Користејќи го постојниот код, имплементирајте нова команда за школка што наредува LED да се вклучува или исклучува.
СОВЕТ: Користете „апликации/сериски-школки/сериски-школки.х“ и „апликации/школки/школки.х“
Составувач
КОЈА
За да користите COOJA, мора да ги следите овие чекори:
3. Создадете нова симулација: Датотека → Нова симулација. Внесете име за Име на симулација и притиснете создаден
4. Создадете нов тип на јазол: Типови на мотори → Создадете тип на мотори → Тип на мотори на Sky. Внесете a Опис (Тогаш „Гогу“ или „џиги“ звучи трендовски) тогаш Прелистајте додека не стигнете до примери/рими/пример-аб.в.в.. притиснете Состави и кога сè ќе заврши, притиснете создаден.
5. Додадете јазли во симулацијата: Мотиви → Додајте мотиви од типот → [„гогу“ сау „џиги“]. додаде 5 јазлите потоа даваат Креирај и додаде.
5-те јазли се создаваат по случаен избор координати во рамнината. Можете исто така да изберете друг распоред на јазли користејќи го Случајна позиција, линеарна, елипса, или Рачно позиционирање.
6. Бидете сигурни дека имате Приклучоци → Слушач на најавувачи и приклучоци visual Визуелизатор на симулација активиран.
7. Притиснете започнете во контролната табла за да се започне симулацијата.
Првото нешто што треба да направите е да проверите дали јазлите комуницираат едни со други. COOJA користи стандарден модел за пропагирање на радио сигнали наречен Model Graph Model (UDGM). Изберете од менито за прегледување на UDGM и ќе можете да го видите во симулацијата.
Зелениот круг претставува радиус на пренос на централниот јазол, односно јазолот може да комуницира со кој било друг јазол во рамките на соодветниот круг.
Сивиот круг ја претставува областа на мешање. Ако јазол е во оваа област, тој не може да прима пакети од други јазли ако избраниот јазол испраќа податоци во тоа време. Со други зборови, таа област е област на пречки во која примопредавателот на јазолот ја прави невозможна правилната комуникација на другите јазли. Ако сакате да направите два јазли да комуницираат, имате две опции: или повлечете еден јазол додека не достигне радиус на комуникација на другиот јазол, или зголемете го радиусот на комуникација од менито на прозорецот или од менито што се појавува со десен клик на тој јазол.
Вежби
Вежба 1: Оваа вежба ќе ви покаже како да користите структури за емитување рима за да испратите порака до базната станица. Отворете го примерот што го составивте погоре (rime/example-abc.c) и пронајдете ја линијата со:
Заменете го Hello со вашата порака и променете го вториот параметар во неговата нова должина. Обидете се да не користите зборови со четири букви. Состави го кодот и симулира во COOJA. Забележете што се случува.