Lab / CSE 427 / WSN nedir ve mote anatomy
W1Vize kapsamıW1 lab~55 dk · 12 bölüm

WSN nedir, constraint'ler ve mote anatomy

Dersin temeli: bir wireless sensor network (WSN) nedir, tasarımı hangi altı constraint zorlar, bir application nasıl sınıflanır, bir mote'un içinde hangi bloklar vardır ve Contiki 3.0 ile Cooja'da ilk simülasyon nasıl kurulur. Hepsi W1 slaytlarının sırasıyla.

Not: Hocanın W1 hedefi, slayt 2: "Evaluation in Week 1 should check vocabulary, mental model, and tool readiness." Yani bu haftadan kelimeleri doğru kullanmak, bir ölçümün yolunu anlatabilmek ve Cooja'yı tanımak beklenir. Vizenin formatı henüz açıklanmadı; sorular İngilizce olacak. Bu sayfadaki "slayt N" numaraları PowerPoint'teki sıradır; slaytın alt köşesinde yazan numara 3 fazladır (slayt 26 = sayfa 29).

WSN nedir: fiziksel dünyaya bağlı hesaplama

Bir fabrikada 40 mote titreşim ölçüyor ve verileri radyo ile yerel bir kontrol bilgisayarına taşıyor. Internet bağlantısı hiç yok. Bu sistem bir WSN mi?

Sezgi · WSN mindset

Hocanın ilk cümlesi (slayt 6): "A sensor network is not a normal network made smaller. It is computation attached to a physical environment." Bir WSN, laptop ağının küçültülmüş hali değildir. Her node bir fiziksel büyüklüğe (sıcaklık, nem, titreşim) bağlıdır ve pille çalışır. Ağın amacı bit taşımak değil, o fiziksel büyüklüğü ölçmektir.

Tanım · slayt 7
  • Wireless Sensor Network (WSN): "spatially distributed embedded nodes that sense, process, and communicate wirelessly." Üç fiil: sense, process, communicate.
  • Node'lara sensor node ya da mote denir.
  • Bir sink, gateway ya da border router veriyi toplar ve WSN'i kullanıcılara ya da başka ağlara bağlar.
  • Trafik çoğunlukla küçük, periodic ya da event-driven ve energy ile sıkı biçimde sınırlıdır.
  • WSN'i bir measurement infrastructure olarak düşün, genel amaçlı mobil cihazlar olarak değil.

WSN, IoT ve CPS

TerimOdak (slayt 8)Kısaca
WSNsensing and wireless embedded networkingÖlçümlerin doğduğu yer: field layer.
IoTconnects physical devices to Internet services and applicationsCihazları Internet servislerine bağlar.
Cyber-physical system (CPS)digital computation monitors or controls a physical processHesaplama fiziksel bir süreci izler ya da kontrol eder.

Bir WSN bir IoT ya da CPS mimarisinin parçası olabilir ama yerel olarak da çalışabilir. Üçü iç içe geçer; WSN en alttaki, ölçümün yapıldığı katmandır.

Reference architecture · slayt 9

S1 S2 R1 GW Cloud sensor nodes multi-hop forwarding gateway / sink application / cloud kablolu / IP low-power radio

Kesikli oklar düşük güçlü radyo hop'larıdır. Gateway'den sonrası sıradan bilgisayar altyapısıdır. Hocanın cümlesi: "The gateway is the translation point between constrained wireless networking and ordinary computing infrastructure."

Tuzaklar
  • "WSN = IoT" değil. IoT, Internet servislerine bağlanmayı anlatır. WSN, sahada ölçen ve radyo ile konuşan küçük node'ları anlatır.
  • Gateway sadece "en yakın mote" değildir. İki dünya arasında çeviri yapar: düşük güçlü radyo protokolleri bir tarafta, sıradan IP ağı diğer tarafta.
  • "Mote = sensör" değil. Mote, üstünde sensör olan bir bilgisayardır (Bölüm 7).

Reference architecture'da gateway'in asıl görevi hangisi?

Bir ölçümün yolu ve temel kelimeler

Bir mote'un radyosu her 2 saniyede 20 ms açık kalıyor, geri kalan zamanda kapalı. Radio'nun duty cycle'ı kaç?

Sezgi · mental model, slayt 10

Tek bir sıcaklık değerinin kullanıcıya ulaşana kadar geçtiği beş adım:

  1. Bir sensor fiziksel bir büyüklüğü örnekler (sample).
  2. Microcontroller değeri dönüştürür, filtreler ya da formatlar.
  3. Radio küçük bir frame'i bir neighbor'a ya da gateway'e gönderir.
  4. Aradaki mote'lar değeri forward eder ya da aggregate eder.
  5. Sink sonucu bir database'e, dashboard'a ya da controller'a aktarır.

Hocanın vurgusu: "Every step has an energy, delay, reliability, and security cost." Örneğin 3. adımda radyo enerji harcar, frame kaybolabilir, havadaki frame dinlenebilir. 4. adımda her hop gecikme ekler.

Core vocabulary · slayt 11
TermMeaning
MoteSmall embedded sensor node with computation and radio
Sink / gatewayCollection point or bridge to another network
NeighborNode reachable over a wireless link
TopologyCurrent connectivity and forwarding structure
Duty cycleFraction of time a component is active
EventPhysical condition that triggers reporting

Duty cycle formülü: $D = \dfrac{t_\text{active}}{t_\text{total}}$. Hoca bunu W3'te her component için ayrı kullanacak.

Slaytın uyarısı: "Precise vocabulary prevents 'node, server, sensor, router' soup."

Dersin çalışma biçimi · slayt 5

Theory → simulation → evidence. Theory: mekanizmayı ve varsayımlarını adlandır. Simulation: Cooja'da kontrollü bir durum kur. Measurement: log'lara, paketlere, zamanlamaya ve topology'ye bak. Reflection: neyin neden değiştiğini açıkla.

"A simulation screenshot is not a result; an interpreted measurement is a result." Lab videolarında da notlandırılan şey budur.

Tuzaklar
  • Neighbor "fiziksel olarak en yakın node" değildir, wireless link ile ulaşılabilen node'dur. Duvarın arkasındaki yakın node neighbor olmayabilir.
  • Topology sabit bir çizim değildir: "current" kelimesine dikkat. Link'ler değiştikçe topology de değişir.
  • Event bu tabloda fiziksel bir koşuldur (duman, titreşim). Contiki'de "event" kelimesi bir de yazılım anlamında geçer (bir process'e gönderilen mesaj, Bölüm 10). İkisini karıştırma.

Bir ara mote, iki çocuğundan gelen sıcaklıkların ortalamasını alıp tek bir frame olarak gönderiyor. Ölçümün yolundaki hangi adım bu?

Constraint 1–3: energy, memory/CPU, lossy links

Hiç paket gelmeyen bir gecede, radyosu sürekli dinlemede kalan bir mote'ta enerjiyi en çok ne tüketir?

Sezgi · constraint landscape, slayt 12

Altı baskı aynı anda çalışır: Energy, Radio loss, Memory, Scale, Deployment, Security. "WSN design is multi-objective: improving one dimension often hurts another." Radyoyu daha az açarsan pil uzar ama gecikme artar. Güvenlik eklersen byte, RAM ve enerji harcarsın. Her kararı bu altı eksende tartacaksın.

Constraint 1: energy · slayt 13
  • Radio tüketimi domine edebilir, özellikle idle listening yüzünden.
  • Pil değiştirmek imkânsız, tehlikeli ya da node'dan pahalı olabilir.
  • Sleeping enerji kazandırır ama latency'yi ve rendezvous complexity'yi artırır: uyuyan iki node, birbirinin ne zaman uyanık olduğunu bilmeden konuşamaz.
  • Energy optimization yararlı sensing'i korumalı, node'u susturmak hedef değil.

"A mote that never wakes has excellent lifetime and zero usefulness."

Constraint 2: small memory and CPU · slayt 14
  • RAM'i packet buffer'lar, routing table'lar, stack'ler, queue'lar ve application state paylaşır.
  • Code size önemlidir: firmware sınırlı program memory'ye sığmalı.
  • Cryptography, routing ve logging bedava değildir.
  • Tasarımcılar ağır abstraction yerine kompakt state machine'leri tercih eder.

Her yeni özellikte sorulacak soru: "Where does this state live?"

Constraint 3: lossy wireless links · slayt 15
  • Received power mesafeye, engellere, antenna yönüne ve interference'a göre değişir.
  • Link'ler asymmetric olabilir: A, B'yi duyar ama B, A'yı güvenilir biçimde duymayabilir.
  • Transitional region'da packet delivery olasılıksaldır: bazı paketler gelir, bazıları gelmez.
  • Routing kararları geometriye değil, ölçülmüş link quality'ye dayanmalı.

"Distance is a clue, not a routing metric." Bu fikirler W2'de (radio-propagation ve link-metrics dersleri) sayılarla gelecek.

Tuzaklar
  • "Daha çok uyut, daha iyi" yanlış. Uyku latency'yi artırır ve gönderici ile alıcının buluşmasını (rendezvous) zorlaştırır. Hiç uyanmayan mote işe yaramaz.
  • Asymmetric link "A↔B çalışıyor" demek değildir. Bir yön iyi, diğer yön kötü olabilir; ACK dönmez, iletişim yarım kalır.
  • "En yakın node en iyi parent'tır" yanlış. Mesafe sadece bir ipucu; link quality ölçülmeli.

Bir öğrenci routing protokolüne "son 50 paketin tamamını sakla" özelliği eklemek istiyor. Hocanın hangi sorusu bu fikri hemen sınar?

Constraint 4–6: dynamic topology, scale, reliability/timing/security

Her node'un her paketi tüm ağa yeniden yayınladığı (flooding) bir protokol 5 node'da sorunsuz çalışıyor. 500 node'da en olası sorun ne?

Constraint 4: dynamic topology · slayt 16
  • Node'lar fail edebilir, reboot olabilir, gücünü kaybedebilir ya da deployment'tan sonra eklenebilir.
  • Bir link insanlar, araçlar, kapılar, hava ya da interference yüzünden bozulabilir. Node'lar hareket etmese bile.
  • Protokoller neighbor'larını keşfetmeli ve elle yeniden ayar yapılmadan toparlanmalı.
  • Sık topology repair enerji harcar ve routing'i kararsız hale getirebilir.

"Self-organization is not luxury; it is survival."

Constraint 5: scale and density · slayt 17
  • 5 node'da çalışan bir protokol 500 node'da çökebilir.
  • Flooding, broadcast ve global state hızla pahalılaşır.
  • Yoğun deployment'lar overhearing, collision ve duplicate bilgiyi artırır.
  • Büyük ağlar hierarchy, aggregation, suppression ya da localized control ister.

"Scalability means limiting who must know, hear, store, and forward what."

Constraint 6: reliability, timing, and security · slayt 18
  • Environmental monitoring gecikmeye ve ara sıra eksik değere tolerans gösterebilir.
  • Industrial alarm'lar hızlı ve güvenilir teslim ister.
  • Actuation link'leri daha güçlü safety ve authentication ister.
  • Security mekanizmaları computation, byte, state ve key-management karmaşıklığı ekler.

"There is no universal 'best WSN protocol'." Çünkü her application bu altı ekseni farklı tartar.

Ders kitabından ek: Karl & Willig'in requirement listesi (slaytta yok)

K&W §1.4 aynı baskıları "characteristic requirements" olarak sayar. Slaytlara eklenen fikirler:

  • Type of service: WSN bit taşımak için değil, anlamlı bilgi üretmek için vardır: "People want answers, not numbers."
  • Fault tolerance: node ölümüne karşı redundant deployment, yani gerekenden fazla node.
  • Lifetime'ın tek tanımı yoktur: ilk node'un ölmesi, ağın parçalara ayrılması, node'ların %50'sinin ölmesi ya da bölgede ilk kez bir noktanın hiç kapsanmaması.
  • Wide range of densities, programmability, maintainability.

Gerekli mekanizmalar: multihop communication, energy-efficient operation, auto-configuration, collaboration ve in-network processing, data-centric tasarım (hangi node'un söylediği değil, değerin kendisi önemli), locality (state'i sadece komşular hakkında tut) ve trade-off'ları bilinçli kullanmak.

Tuzaklar
  • "Topology ne kadar sık onarılırsa o kadar iyi" yanlış. Repair de enerji yer ve routing'i sallar.
  • "Statik node'lar = statik topology" yanlış. Kapı açılır, biri geçer, link değişir.
  • Security'yi "bir flag aç" diye düşünme: her paket büyür, RAM'de key tutulur, CPU şifreler.

Bir arkadaşın "en iyi WSN protokolünü bulup her projede onu kullanacağım" diyor. Hocanın cevabı ne olurdu?

Slayt 17'ye göre büyük bir ağı ölçeklenebilir yapmak için hangisi önerilmez?

Application taxonomy: reporting pattern ve domain

Bir dashboard kullanıcısı "301 numaralı odanın şu anki sıcaklığı kaç?" diye soruyor ve mote cevap veriyor. Reporting pattern hangisi?

Slayt 19'un kuralı: "Classify the application before choosing protocols." Trafik deseni ve fiziksel domain tasarımı şekillendirir.

Taxonomy by reporting pattern · slayt 20
PatternDescriptionExample
PeriodicSensor reports every fixed intervalSoil moisture every 10 minutes
Event-drivenNode reports when condition occursSmoke, vibration spike, intrusion
Query-drivenApplication asks for data when neededCurrent temperature of room 301
HybridCombines periodic, event, and query behaviorMachine status + alarm + diagnostics

"Reporting pattern determines duty cycle, latency, and buffer requirements." Neden:

  • Periodic: ne zaman konuşulacağı baştan bellidir; radyo o anlar dışında uyuyabilir. Duty cycle düşük ve tahmin edilebilir.
  • Event-driven: trafik seyrek ama olay olunca hızlı gitmeli. Latency hedefi, node'ların ne sıklıkla uyanması gerektiğini belirler. Bir olay patlaması (birçok node aynı dumanı görür) buffer ister.
  • Query-driven: mote, sorunun geldiğini duyabilmeli; yani radyosu belirli aralıklarla dinlemeli. Gönderim ucuz olsa bile dinleme maliyeti vardır.

Taxonomy by domain · slayt 21–24

DomainÖrnekler (slayt 21)Baskın constraintHocanın cümlesi
Environmental monitoringweather, forests, rivers, air qualityPil ömrü, hava koruması, seyrek connectivity. Genelde periodic, dakikalar ya da saatler arayla. Latency gevşek; ama yangın ya da sel gibi bir tehlike algılanırsa değil. Yakın sensörlerin tekrar eden verisi aggregation ile azaltılır."Design goal: survive long enough to make trends visible."
Agriculturesoil moisture, irrigation, livestock, greenhouse controlSolar beslemeli node'lar; toz, su, ısı. Tarlada seyrek topology, gateway kenarda. Valve gibi kontrol aksiyonları rutin ölçümden daha güçlü reliability ister."A missed temperature value is annoying; a wrong valve command is a problem."
Industrial systems / smart gridpredictive maintenance, vibration, process monitoring; current, voltage, equipment stateInterference ve metal yapılar radyoyu zorlaştırır. Safety ve availability, minimum enerjiden önemli olabilir. Veri operasyon kararlarını etkilediği için security gereksinimi artar."Industrial WSNs are where 'just send a packet' has many formalities."
Buildings and citiesoccupancy, lighting, traffic, waste, infrastructureSlaytta ayrıntılı örnek yok; listede geçiyor.
Energy systemssmart meters, grid monitoring, renewable integrationSlaytta ayrıntılı örnek yok; listede geçiyor.

"The same sensor platform can need very different protocols in different domains."

Ders kitabından ek: K&W'nin interaction pattern'leri (slaytta yok)

Karl & Willig §1.3 source (veriyi ölçen node) ile sink (verinin teslim edildiği yer) arasındaki desenleri şöyle sayar: event detection (eşik aşımı gibi basit ya da birkaç sensörün birlikte karar verdiği bileşik olaylar), periodic measurements, function approximation and edge detection (sıcaklığı bir konum fonksiyonu gibi haritalamak, örneğin yangının sınırını bulmak) ve tracking (hareket eden bir olay kaynağının konumunu raporlamak). Tek seferlik isteklere one-shot query der. Slayttaki dört pattern bunların sadeleştirilmiş hali.

Tuzaklar
  • "Event-driven node hiç uyanmaz" yanlış. Raporlama olaya bağlıdır ama olayı fark etmek için sensörün yine örneklemesi gerekir. Sampling ile reporting ayrı şeylerdir.
  • "Query-driven en ucuzudur, çünkü sadece sorulunca gönderir" eksik. Soruyu duymak için radyonun dinlemesi gerekir; idle listening maliyeti buradan gelir.
  • Domain'i değil, desenini sor: aynı serada hem periodic sıcaklık hem event alarm hem control komutu vardır (sonraki bölüm).

Bir fabrikadaki makine node'u her dakika durum gönderiyor, titreşim eşiği aşılınca anında alarm atıyor ve operatör isteyince detaylı teşhis verisi yolluyor. Pattern?

Bir orman sıcaklık ağında latency ne zaman artık gevşek tutulamaz?

Monitoring vs control ve greenhouse mini case

Bir serada aşağıdakilerden hangisi kaybolursa ya da sahtesi gelirse en büyük zarar oluşur?

Monitoring versus control · slayt 25
MonitoringControl / actuation
Ne yaparObserve physical stateChange physical state
Hata olursaMissing data may be tolerableIncorrect commands can cause damage
Örnektemperature, humidity, vibration logsvalve, relay, motor, alarm

"The moment a sensor network controls actuators, security and safety stop being 'extra topics.'"

Örnek · greenhouse WSN, slayt 26
  • Periodic: temperature and humidity every minute.
  • Event-driven: report overheating or irrigation failure immediately.
  • Query-driven: operator requests current battery level or last 24-hour trend.
  • Control: actuator nodes open vents or start irrigation.
  • Gateway: forwards measurements to a dashboard and logs commands.

Slaytta "Control" ayrı bir satır olarak geçiyor. Bu bir reporting pattern değil, ters yönde (gateway'den mote'a) giden komut trafiği.

Serada mesaj ayırma

Önce tahmin et: Sekiz mesajdan kaç tanesinde authentication zorunlu, kaç tanesinde sadece isteğe bağlı? Cevabını aklında tut, sonra kartları doldur.

Varsayımlar. Saldırgan radyodan sahte frame gönderebilir. Sahte bir ölçüm ya da rapor yanlış bir karara yol açabilir, ama fiziksel durumu kendisi değiştirmez. Sahte bir komut ise valve'ı ya da vent'i doğrudan oynatır. Her kartın altındaki satır o mesajın deadline'ını ve eksiksiz gelmesi gerekip gerekmediğini söyler.

Her kart için pattern'i seç ve bu varsayımlarla gereken ihtiyaçları işaretle. "Kontrol et" seçimini kartta yazan varsayımlarla ve slayt 18, 23, 25'teki ilkelerle karşılaştırır, nedenini yazar. Tek doğru tablo yok: varsayım değişirse cevap da değişir. Authentication'ın isteğe bağlı olduğu kartlarda iki seçim de kabul edilir.

W1 slayt 26 + weeks/01 Practice · slayt sorusu

Slayt 26'nın sorusu: "Mini case: greenhouse WSN. Periodic: temperature and humidity every minute. Event-driven: report overheating or irrigation failure immediately. Query-driven: operator requests current battery level or last 24-hour trend. Control: actuator nodes open vents or start irrigation. Gateway: forwards measurements to a dashboard and logs commands. Which messages need reliability, low latency, or authentication?"

weeks/01 Practice listesindeki karşılığı: "Classify a greenhouse WSN's messages: periodic, event-driven, query-driven, control — which need reliability, low latency or authentication?"

İpucu 1

Her mesaj için iki soru sor: "Bu kaybolursa ne olur?" (reliability) ve "Bu geç gelirse ne olur?" (latency). Sonra yönüne bak: mote'tan gateway'e mi (ölçüm), gateway'den mote'a mı (komut)?

İpucu 2

Authentication, sahte bir mesajın fiziksel bir şeyi değiştirebildiği yerde zorunlu hale gelir (slayt 18: "Actuation links need stronger safety and authentication requirements"). Gateway'in komutları logladığını da unutma.

Çözümü göster

Sınavda şöyle yazılabilir (tek doğru tablo yoktur; gerekçe puanlanır):

MessagePatternReliabilityLow latencyAuthentication
Temperature / humidity every minutePeriodicNot criticalNoNot critical
Overheating reportEvent-drivenYesYesDesirable
Irrigation failure reportEvent-drivenYesYesDesirable
Battery level query + replyQuery-drivenLow (operator can ask again)NoNot critical
Last 24-hour trend query + replyQuery-drivenYes (multi-packet reply must be complete)NoNot critical
Open vents commandControlYesYes (overheating is happening now)Yes
Start irrigation commandControlYesModerateYes

Answer. "Periodic readings tolerate loss and delay: a missed value is replaced one minute later (monitoring, slide 25). Event reports (overheating, irrigation failure) need reliability and low latency because they are rare and time-critical. Queries need a correct reply but no tight deadline; the operator can repeat the query. Control commands (open vents, start irrigation) need reliability and, above all, authentication: a forged or wrong valve command changes the physical state and can cause damage. That is why the gateway also logs commands."

Neden: soru hocanın "monitoring vs control" ayrımını test ediyor. Puanın çoğu şu cümleden gelir: control mesajları authentication ister, çünkü fiziksel durumu değiştirir.

Orijinal slayt (W1, slayt 26; sayfa altında 29) · weeks/01 Practice

Tuzaklar
  • "Her mesaja reliability + authentication koy" cevabı puan almaz. Soru, hangisinin neden ihtiyaç duyduğunu ayırt etmeni istiyor; her şeyi korumak enerji ve byte israfıdır.
  • Control'ü bir reporting pattern sanma. Raporlar mote'tan sink'e gider; komut ters yöne, actuator node'a gider.

Slayt 26'da gateway'in "logs commands" görevi neden var?

Mote anatomy: block diagram

Analog bir nem sensörünün çıkışı MCU'ya ulaşmadan önce hangi bloktan geçer?

Sezgi · slayt 27–28

"A mote is a whole embedded system: sensing, computation, radio, memory, power, and physical interfaces." Ve hocanın en çok tekrarladığı cümle: "A mote is not 'a sensor'; it is a constrained networked computer with sensors attached."

What is inside a mote? · slayt 28
  • Sensor interface: converts a physical signal into data.
  • Microcontroller: runs the OS, application, and protocol stack.
  • Radio transceiver: sends and receives wireless frames.
  • Memory: stores code, buffers, tables, and measurements.
  • Power subsystem: battery, regulation, sleep states, and sometimes harvesting.
Mote block diagram · slayt 29 Sensors ADC MCU Radio Antenna Memory Power (battery, regulator, sleep states, harvesting) turuncu: lifetime'ı domine eden iki blok
  • Sensors create raw evidence.
  • The MCU decides when and what to transmit.
  • The radio and power subsystem dominate lifetime questions.

Karl & Willig (Fig. 2.1) aynı şeyi beş bileşenle çizer: controller, memory, sensors/actuators, communication device, power supply. Memory controller'a bağlıdır; power supply herkesi besler.

Block diagram'ı kendin kur

Önce tahmin et: Yedi bloktan ikisi veri akış zincirinin dışında kalıyor. Hangileri, ve neden?

weeks/01 Practice · ödev sorusu

"Draw the mote block diagram from memory." (Slayt 2'deki öğrenme hedefi: "Draw and explain a mote hardware architecture.")

İpucu 1

Önce veri akışını soldan sağa yaz: fiziksel dünyadan havaya. Beş blok.

İpucu 2

Sonra zincirin dışında kalan iki bloğu ekle: biri MCU'nun yanında, biri hepsinin altında. "Explain" kısmı için her bloğa bir cümle ve lifetime cümlesi.

Çözümü göster

Çizim: Sensors → ADC → MCU → Radio → Antenna, MCU'ya bağlı Memory, altta hepsini besleyen Power.

Answer. "Sensors convert a physical quantity into an electrical signal. The ADC turns the analog signal into numbers. The MCU runs the OS, the application and the protocol stack, and decides when and what to transmit. The radio transceiver sends and receives frames (states: TX, RX, idle, sleep) through the antenna. Memory holds the firmware (flash) and the runtime state: buffers, queues, neighbor and routing tables (RAM). The power subsystem (battery, regulator, sometimes a harvester) feeds every block. The radio and the power subsystem dominate lifetime: the radio is the largest consumer, especially in idle listening, and the battery fixes the energy budget."

Tuzaklar
  • Antenna'yı radio ile birleştirip atlama: slayt onu ayrı blok olarak çizer, çünkü yerleşimi ve yönü link'i değiştirir (slayt 34).
  • Power'ı sadece radyoya bağlama: her blok akım çeker.
  • "Lifetime'ı CPU belirler" yanlış. Slayt: radio ve power subsystem.

Slayt 29'a göre "bu mote kaç ay dayanır?" sorusunu hangi iki blok domine eder?

Blok blok: MCU, memory, sensor/ADC, radio, antenna, power, interfaces

Bir mote'un neighbor table'ı çalışma sırasında sürekli güncelleniyor. Bu tablo hangi memory'de yaşar?

BlokSlaytın söyledikleriAkılda kalacak cümle
Microcontroller (slayt 30)Contiki process'lerini, driver'ları, protocol logic'i ve application code'u çalıştırır. Sensörleri, timer'ları, radyoyu, LED'leri ve peripheral interface'leri kontrol eder. Hazır task yokken low-power mode'a geçer. Sınırlı clock hızı ve RAM, dikkatli C ve bounded buffer ister."The MCU is powerful enough for networking, not powerful enough for waste."
Memory (slayt 31)Flash/ROM: firmware ve sabit veri. RAM: stack'ler, packet buffer'lar, queue'lar, neighbor table'lar, routing state. Tek bir büyük debug string ya da packet buffer küçük mote'ta fark yaratır. Routing, fragmentation ve security state tüketir."In WSN programming, memory is a design parameter."
Sensors and ADC (slayt 32)Sensörler fiziksel olayı elektriksel ya da dijital sinyale çevirir. Analog sensörler ADC ister. Örnekleme warm-up süresi, calibration, filtering ve unit conversion gerektirebilir. Accuracy, noise ve drift uygulamanın güvenilirliğini etkiler."A precise network cannot fix a badly measured physical value."
Radio transceiver (slayt 33)Dört state: transmit, receive, idle, sleep. Reception ve idle listening, yararlı paket olmasa bile büyük enerji harcar. Paket başarısı link quality'ye, interference'a, timing'e ve MAC davranışına bağlıdır. Radio ayarları range, energy ve coexistence'ı etkiler."Week 2 starts here: radio links are probabilistic."
Antenna and placement (slayt 34)Antenna yönü received power'ı ve link asymmetry'yi etkiler. Yakındaki metal, insan vücudu, duvarlar ve kutular yayılımı değiştirir. Dış ortamda montaj yüksekliği ve line-of-sight önemlidir. Aynı iki mote kurulumdan sonra farklı davranabilir."Physical deployment is part of the protocol stack."
Power subsystem (slayt 35)Kaynak pil, USB, adaptör ya da harvester olabilir. Voltage regulator'lar kayıp ve minimum çalışma eşiği ekler. Pil kapasitesinin tamamı her yükte ve sıcaklıkta kullanılamaz. Harvesting problemi "sınırlı enerji"den "değişken enerji geliri"ne çevirir."Week 3 gives equations of these."
Interfaces, debugging, actuators (slayt 36)Interface'ler: UART, SPI, I²C, GPIO, USB, JTAG. LED'ler ve serial output debug için yararlıdır ama timing'i ve enerjiyi bozabilir. Relay, motor, buzzer, valve gibi actuator'lar fiziksel sonuç doğurur. Debug görünürlüğü simülasyonda kolay, fiziksel mote'ta zordur."A flashing LED is useful, but it is still current draw."
Ders kitabından ek: SPI ve I²C, MCU seçimi (slaytta yok)
  • SPI (Dargie & Poellabauer §3.3.1): master-slave, full-duplex seri bus; clock, iki veri hattı (MOSI, MISO) ve her slave için bir select hattı. Sky'da radio MCU'ya SPI ile bağlıdır.
  • I²C (§3.3.2): iki hat (data ve clock), cihazlar adresle seçilir; yavaştır ama az pin ister. Dijital sensörler çoğu zaman I²C ile bağlanır ve kendi ADC'lerini içerir.
  • Neden microcontroller (K&W §2.1.2)? Masaüstü işlemciler çok fazla enerji yer. DSP, FPGA ve ASIC'in karşısında microcontroller esnek programlanır, sleep state'lere girebilir, belleği ve peripheral bağlantıları içindedir. Genelde MMU'ları yoktur; bu yüzden virtual memory ve memory protection zordur.
Tuzaklar
  • "Almak ucuz, göndermek pahalı" yanlış. W3 lab'ındaki Sky akım modeli (W3 lab tutorial, slayt 27): TX 17.4 mA, listen 18.8 mA. Dinlemek göndermekten bile pahalı olabilir. Bu yüzden idle listening W3 ve W4'ün ana düşmanı.
  • "printf zararsızdır" yanlış. Serial output ve LED timing'i ve enerjiyi bozar; ölçüm yaparken bunu hesaba kat.
  • Drift'i noise ile karıştırma: noise her okumada rastgele saçılma, drift zamanla yavaşça kayan hata. İkisini de ağ düzeltemez.

Aynı firmware'i çalıştıran iki özdeş mote kurulumdan sonra çok farklı PRR veriyor. Slayt 34'ün açıklaması hangisi?

Slayt 35'e göre energy harvesting problemi nasıl değiştirir?

Platform'lar, Sky mote ve hardware-to-software mapping

Sky mote'un (TelosB) iki ana çipi hangileri?

Mote platforms in old Cooja · slayt 37
PlatformRole
Sky / TelosB classClassic Contiki/Cooja teaching platform using MSP430 + IEEE 802.15.4 radio
Z1 / WismoteOther common WSN research platforms with different MCU/radio details
Cooja moteSoftware-level simulated mote; useful but not identical to hardware emulation
Emulated Sky moteCommon Week 1 choice in old Cooja for observing firmware-like behavior

"Use one reference mote type early; variety can come after students understand the tool."

Reference mote: Sky · slayt 38

Sky/TelosB legacy Contiki/Cooja örneklerinde yaygındır. MCU, radio, LED, serial output ve kısıtlı bellek fikrini gösterir. hello-world, Rime örnekleri ve birçok giriş simülasyonu için uygundur. Sky'daki sayıların her fiziksel sensor node için geçerli olduğunu varsayma. "A reference platform is a teaching lens, not the whole universe."

Not: Datasheet bilgisi, slaytta yok: Tmote Sky'daki MCU MSP430F1611'dir (10 kB RAM, 48 kB flash); CC2420 2.4 GHz'de 250 kbps hızla konuşur.

Hardware-to-software mapping · slayt 39
DonanımContiki'de nasıl görünür
Sensorsdrivers or platform-specific APIs
Radio behaviornetwork stack and MAC/RDC drivers
Timersscheduled work and sleep-friendly waiting
Serial outputCooja Mote Output window
Platform supportcompile target (TARGET=sky) decides what is included

"The same C source can behave differently when the target platform changes."

Örnek · Efe'nin W1 lab'ı

Cross-compilation: Cooja, Sky mote type oluştururken make hello-world.sky TARGET=sky çalıştırır. msp430-gcc VM'in x86 işlemcisinde çalışır ama MSP430 için kod üretir. Çıkan .sky dosyası gerçek karta yüklenebilecek firmware'dir.

Emulation vs simulation: Sky mote'ta MSPSim gerçek MSP430'u ve CC2420'yi instruction instruction emulate eder. Cooja ise radyo ortamını simulate eder (UDGM bir yaklaşımdır). Yani firmware gerçek, radyo dünyası modeldir. Bir Cooja parametresinden gerçek dünyadaki range hakkında iddiada bulunma.

Tuzaklar
  • Cooja mote ile emulated Sky mote aynı şey değil. Cooja mote kodu host bilgisayar için derler: hızlıdır ama MSP430 timing'ini, belleğini ve radyo sürücüsünü taklit etmez.
  • "MSPSim simüle eder" deme; MSPSim emulate eder (gerçek makine kodunu çalıştırır). Simülasyon yapan Cooja'nın radio medium'udur.

CPU'nun bir işlemde ne kadar süre aktif kaldığını Sky donanımına en yakın biçimde ölçmek istiyorsun. Hangi mote type?

Contiki 3.0: process, protothread ve etimer

Bir Contiki process'inde int count = 0; local variable'ı PROCESS_BEGIN()'den önce tanımlı ve her PROCESS_WAIT_EVENT_UNTIL'den sonra count++ yapılıyor. Ne olur?

Contiki OS 3.0 · slayt 41
  • Küçük, ağa bağlı embedded sistemler için open-source operating system.
  • C application'lar, event-driven execution ve protothreads.
  • Ders için önemli networking stack'leri: Rime, uIP/uIPv6, 6LoWPAN, RPL örnekleri.
  • Cooja simulator'ı Contiki'nin tools dizininde gelir.

Derste "Contiki 3.0" de; Contiki-NG ile açıkça karşılaştırmıyorsan.

Sezgi · neden event-driven?

Dargie & Poellabauer §4.1.7 iki modeli karşılaştırır. Thread-based modelde her thread'in kendi stack'i vardır, paylaşılan veriyi lock'larla korursun; küçük RAM için ağırdır. Event-based modelde kernel bir döngüde event'leri bekler ve ilgili handler'ı çağırır; handler işini bitirip kontrolü geri verir. Contiki'nin kernel'ı event-driven'dır; multithreading isteğe bağlı bir kütüphane olarak eklenebilir (§4.3.3). Protothread, event-driven kodu "bekle, sonra devam et" diye sıralı yazmanı sağlar ama her process için ayrı stack tutmaz.

Contiki programming model · slayt 51
PROCESS(example_process, "Example process");
AUTOSTART_PROCESSES(&example_process);

PROCESS_THREAD(example_process, ev, data)
{
  PROCESS_BEGIN();
  /* event-driven application logic */
  PROCESS_END();
}
  • PROCESS(name, "string"): process'i tanımlar (adı ve okunur açıklaması).
  • AUTOSTART_PROCESSES(&name): mote açılınca (boot) bu process başlatılır.
  • PROCESS_THREAD(name, ev, data): process'in gövdesi. ev gelen event'in türü, data ona eşlik eden veri.
  • PROCESS_BEGIN() / PROCESS_END(): protothread'in başı ve sonu. Aradaki kod "bloklanıyormuş gibi" yazılır.

Slaytın dört noktası: processes are event-driven, not heavy desktop threads; protothreads provide blocking-looking code with low memory overhead; applications should yield control instead of spinning forever; timers schedule future work. Hoca W1 için: "recognize the structure", sözdizimini ezberlemek değil.

Timers · slayt 52
static struct etimer timer;
etimer_set(&timer, CLOCK_SECOND * 5);
PROCESS_WAIT_EVENT_UNTIL(etimer_expired(&timer));
  • Timer'lar busy waiting olmadan periodic sensing sağlar.
  • Clock tick'leri platforma özgüdür; Contiki'nin zaman soyutlamasını (CLOCK_SECOND) kullan.
  • Periodic task'lar timer'ı bilinçli olarak yeniden kurmalı (reset).
  • Sonraki energy lab'ları busy waiting'in neden pahalı olduğunu gösterecek.

"Timer-based design is the bridge from Week 1 hardware to Week 3 energy."

Protothread'i adım adım çalıştır

Aşağıdaki stepper, Contiki'nin protothread kuralını küçük bir modelle gerçekten çalıştırıyor: kernel process'i her event'te fonksiyonun başından çağırır, PROCESS_BEGIN kaydedilmiş satıra atlar, PROCESS_WAIT_EVENT_UNTIL koşul yanlışsa satırı kaydedip fonksiyondan çıkar. Üç sürümü dene.

Önce tahmin et: static olmayan sürümde 15. saniyede Mote Output'ta ne yazacak? Busy-wait sürümünde MCU kaç saniye low-power mode'da kalacak?

Busy wait'in bedeli

W3 lab'ındaki Sky akım modeliyle (CPU active 1.8 mA, LPM 0.0545 mA) bir sürenin toplam charge'ını hesapla. etimer sürümünde CPU her uyanışta kısa bir iş yapar, kalan zamanda LPM'dedir; busy wait sürümünde CPU hiç uyumaz. Radio'yu dışarıda bırakıyoruz.

Networking options in Contiki 3.0 · slayt 53
ComponentRole
RimeLightweight Contiki communication stack used in many old examples
uIP / uIPv6IP networking support for constrained nodes
6LoWPANAdapts IPv6 to small IEEE 802.15.4 frames
RPLIPv6 routing for low-power and lossy networks
RDC / MAC driversControl radio duty cycling and channel access behavior

W1 sadece haritayı verir; sonraki haftalar her parçayı deneyle açar (6LoWPAN ve RPL: W6–W7, MAC/RDC: W4–W5).

Boot satırını çöz

Sky mote açılırken Mote Output'a hangi network stack'in derlendiğini yazar. Efe'nin W1 lab'ında görülen satır aşağıda; kendi lab çıktını da yapıştırabilirsin.

Önce tahmin et: "ContikiMAC" bir MAC protokolü mü, yoksa başka bir katman mı?

Tuzaklar
  • static'i unutmak: wait'ten sonra da lazım olan her variable (timer dahil) static olmalı. Protothread'in stack'i yoktur.
  • while(!etimer_expired(&t)) {} bir busy wait'tir: CPU uyuyamaz ve Contiki cooperative olduğu için bu sürede başka hiçbir process çalışamaz.
  • Periodic iş için timer'ı döngüde yeniden kurmayı unutma. Contiki'de etimer_reset() bir sonraki süreyi önceki bitiş anından sayar, kaymayı (drift) önler; etimer_set() ise "şimdi"den sayar.
  • Rime "channel 129" ile radio channel 26'yı karıştırma: biri yazılım seviyesinde bir bağlantı numarası, diğeri IEEE 802.15.4 fiziksel kanalı.

Process PROCESS_WAIT_EVENT_UNTIL(…) satırına geldi; koşul etimer_expired(&timer) henüz yanlış. Ne olur?

Boot satırındaki nullsec CSMA ContikiMAC için hangisi doğru?

Instant Contiki ve Cooja: ilk simülasyon

Firmware'deki printf("Hello, world\n") satırının çıktısını Cooja'nın hangi penceresinde görürsün?

Instant Contiki 3.0 ve VMware · slayt 42–45
  • Neden VM: Contiki, Cooja, Java/Ant ve build tool'ları hazır bir Linux. Windows, macOS ve Linux host farklarını ortadan kaldırır, eski bağımlılıkları dondurur, herkese aynı path'leri ve aynı compiler davranışını verir. "Legacy software is easiest to teach when the environment is frozen."
  • Kurulum: VM'i VMware'de aç; Java tabanlı Cooja için yeterli RAM ve CPU ver; herkes aynı image'ı kullansın; toolchain dosyalarını değiştirmeden önce snapshot al. "The best debugging tool for Week 1 is a clean VM snapshot."
  • Başlatma: VM'in terminalinde (Windows host'unda değil) cd ~/contiki/tools/cooja ve ant run. İlk çalışmada derleme sürer. Hata olursa bir şey değiştirmeden önce tam hata mesajını kaydet: path, command, error message. "No 'it did not work' reports."
~/contiki/
├── core/        OS core and networking code
├── cpu/         CPU-specific support
├── platform/    Board/platform definitions
├── examples/    hello-world/, rime/, ipv6/
└── tools/
    └── cooja/   Cooja simulator

Slayt 44: örneklerin nerede olduğunu bil; Cooja tools/cooja'dan başlatılır; platform dosyaları target'ın neden önemli olduğunu açıklar; W1'de core dosyalarını düzenleme. "Folder literacy saves more lab time than heroic terminal guessing."

Cooja · slayt 46–49

Cooja, Contiki ile gelen network simulator'dır. Tek deneyde birden çok mote çalıştırır; topology'yi, mote output'u, radio event'lerini ve timing'i gösterir. Fiziksel node'larla karışık olacak koşulları kontrol altına alır. Mekanizmaları anlamak için yararlıdır, gerçek deployment davranışının garantisi değildir. "Cooja gives visibility; real deployments give humility."

WindowPurpose (slayt 47)
NetworkShows mote positions and radio links visually
Mote OutputDisplays serial/log output from motes
TimelineShows radio, LED, and execution activity over time
Simulation ControlStarts, pauses, and controls simulation speed
Radio MessagesInspects transmitted packets when enabled

Mote type'lar (slayt 48): Sky mote: yaygın legacy öğretim seçimi. Cooja mote: daha hızlı, yazılım seviyesinde, ama "less hardware-faithful". Java mote: davranışı Java'da yazılır, özel simülasyonlar için. Farklı tipler karışabilir ama W1'de sade kal; lab sheet aksini demiyorsa Sky.

Workflow (slayt 49): File → New Simulation (anlamlı isim) → Motes → Add Motes → Create New Mote Type → examples'tan bir Contiki application seç → seçilen mote type için compile → birkaç mote ekle ve Network'te yerleştir → Start, Mote Output'u incele. Kısaca: create mote type → add motes → run → observe.

Ne gözlemlenmeli · slayt 50, 54, 56

hello-world (~/contiki/examples/hello-world): amaç toolchain'i ve serial output'u doğrulamak. Beklenen: her mote Mote Output'a mesaj basar. "This lab is not about networking yet." Çalışınca simülasyonu kaydet. "Do not start Week 1 with a complex RPL experiment. First, prove the simulator works."

Cooja'da sadece Start'a basma, şunlara bak (slayt 54):

  1. Kaç mote var ve hangi programı çalıştırıyorlar?
  2. Her mote ne basıyor ve ne zaman?
  3. Mote'lar birbirinin communication range'i içinde mi?
  4. Hangi radio medium modeli seçili?
  5. Simülasyon kaydedilip aynı biçimde yeniden açılabiliyor mu?

"A good lab report describes observations, not merely screenshots." Lab hedefleri (slayt 56): VMware ve Instant Contiki açılıyor, Cooja başlıyor, simülasyon kurulup kaydediliyor, Sky mote type derleniyor, mote output okunup koda bağlanabiliyor. "The first lab is an environment validation lab disguised as a WSN lab."

Örnek · Efe'nin W1 lab gözlemleri
  • Week1-Hello (3 Sky mote, hello-world): boot satırları, sonra bir kez "Hello, world". Radyo trafiği yok; compiler + MSPSim + Cooja çalışıyor demek.
  • Week1-Broadcast (3 Sky mote, examples/rime/example-broadcast.c, UDGM): kod CLOCK_SECOND * 4 + random_rand() % (CLOCK_SECOND * 4) ile bekler, yani her 4–8 saniyede bir "Hello" broadcast eder. Dosyadaki "2-4 seconds" yorumu yanlış.
  • Network penceresinin Mote IDs, Radio environment (UDGM) ve Radio traffic görünümleri varsayılan olarak kapalı; View menüsünden tek tek açılıyor.
  • UDGM'de yeşil daire transmission range (paket alınabilir), gri daire interference range (paket çözülemez ama başka bir alımı bozabilir; W4'teki hidden terminal'in kökü). Mote'u yeşil dairenin dışına sürükleyince bağlantı tamamen kesiliyor, geri getirince hemen dönüyor: UDGM'de transitional region yok.
  • Broadcast'te ACK yok: gönderen kimin aldığını hiç öğrenmez. Unicast ACK'lenir.
  • Radio Messages'ta 11418+36 gibi satırlar: aynı frame'in tekrarları. ContikiMAC bir broadcast'i bütün bir wake-up interval boyunca tekrarlar ki uyuyan komşular bir uyanışlarında yakalasın. 8 Hz channel check, $1/8$ s = 125 ms interval demek.
  • Timeline: her mote'ta kısa ve periyodik channel check'ler (8 Hz), sadece gönderende uzun bir transmit patlaması.
weeks/01 Practice + slayt 47 · slayt sorusu

"Point to each Cooja window and say what it shows." Slayt 47: "Ask students to point to each window before starting the lab task."

İpucu 1

Beş pencere var. Her biri için "ne görürüm?" sorusunun tek kelimelik cevabını düşün: konum, metin, zaman, kontrol, paket.

İpucu 2

Efe'nin lab gözlemlerini pencerelere eşle: range daireleri hangisinde, "broadcast message sent" hangisinde, 8 Hz channel check'ler hangisinde, 11418+36 hangisinde?

Çözümü göster

Answer. "Network shows mote positions and radio links (with the UDGM view: the green transmission range and the grey interference range). Mote Output shows each mote's serial/printf output, e.g. 'broadcast message sent'. Timeline shows radio, LED and execution activity over time; with ContikiMAC it shows the short 8 Hz channel checks. Simulation Control starts and pauses the simulation and sets its speed. Radio Messages lists the frames on the air with source, destination and payload bytes."

weeks/01 Practice

W1 lab teslimi (bonus puan) · lab görevi

Teams'teki görev (weeks/01 Submission'dan): "A video showing your work: VMware installation, Instant Contiki 3.0, the configuration. A basic Sky mote project that sends packets while the simulation is running." Video kuralları: en az 10 dakika, tam ekran, kamerada sen, "how you completed the task and why you got your results" İngilizce anlatılacak.

İpucu 1

hello-world paket göndermez; sadece bir kez basar. Paket gönderen hazır bir örnek gerek: examples/rime/ klasörüne bak.

İpucu 2

"Why you got your results" kısmı puanın asıl yeri: her gözlemi bir mekanizmaya bağla (UDGM range, broadcast'te ACK olmaması, ContikiMAC tekrarları, duty cycling).

Çözümü göster
  1. VM ayarları: Cooja Java ile çalışır ve her Sky mote tam bir MSP430 emulation'ı olduğu için RAM/CPU artırılır (Efe: 4 GB, 2 vCPU). Sky mote menüde yoksa MSPSim submodule'ü boştur; course-info.md'deki düzeltmeyle tools/mspsim doldurulup ant jar çalıştırılır.
  2. Önce hello-world ile toolchain doğrulanır (3 Sky mote, "Hello, world" bir kez).
  3. Yeni simülasyon, UDGM. Mote type: Sky, kaynak examples/rime/example-broadcast.c, compile, 3 mote. Network'te Mote IDs, Radio environment, Radio traffic açılır; mote'lar yeşil dairenin içine yerleştirilir.
  4. Start. Mote Output: "broadcast message sent" ve diğer mote'larda "broadcast message received from X.0: 'Hello'". Radio Messages: payload 48 65 6C 6C 6F = "Hello". Timeline: kısa periodic channel check'ler.
  5. Deney: bir mote yeşil dairenin dışına sürüklenir; göndermeye devam eder ama kimse almaz. Geri getirilince alım döner. Açıklama: UDGM'de range keskin bir sınırdır, gerçek link'lerde ise transitional region vardır (W2).
  6. Simülasyon kaydedilir (.csc) ve yeniden açılabildiği gösterilir.

Anlatım cümlesi örneği: "One 'Hello' appears as many frames in Radio Messages because ContikiMAC repeats a broadcast for a whole wake-up interval, so that every sleeping neighbor catches it during one of its channel checks. A broadcast is never acknowledged, so the sender cannot know who received it."

Efe'nin Week1-Broadcast.csc dosyası · weeks/01 Lab ve Submission

Örnek · kaydedilmiş dosyadan kim kimi duyar?

Efe'nin Week1-Broadcast.csc dosyasında UDGM ayarları: transmitting range 50 m, interference range 100 m, success ratio 1.0. Kayıtlı konumlar: mote 1 (50.4, 44.0), mote 2 (24.5, 61.1), mote 3 (−21.2, 55.8). Uzaklıklar:

ÇiftUzaklıkUDGM sonucu
1–231.06 m≤ 50 m: birbirini duyar
2–346.04 m≤ 50 m: birbirini duyar
1–372.62 m50–100 m: duyamaz, ama birbirinin alımlarını bozabilir

Mote 1 ile mote 3 birbirini duymuyor ama ikisi de mote 2'ye ulaşıyor. W4'te bu yerleşimin adı hidden terminal olacak.

Not: weeks/01 notlarında "her gönderimden sonra diğer iki mote alıyor" yazıyor. Kaydedilen dosyadaki konumlarda bu sadece mote 2 için doğru; notlar büyük olasılıkla mote'lar kaydedilmeden önceki yerleşime ait.

W1 slayt 54 + weeks/01 Lab · lab sorusu

Slayt 54, "What students should observe in Cooja": "How many motes are present and what program they run. What each mote prints and when it prints it. Whether motes are positioned within communication range. Which radio medium model is selected. Whether the simulation can be saved and reopened reproducibly." Slaytın son cümlesi: "A good lab report describes observations, not merely screenshots."

Beş soruyu Efe'nin iki simülasyonu için cevapla: Week1-Hello.csc ve Week1-Broadcast.csc.

İpucu 1

"Ne zaman basıyor" için koda bak. hello-world'de bir döngü var mı? example-broadcast.c'deki etimer kaç saniye bekliyor?

İpucu 2

"Range içinde mi" sorusunu göz kararıyla değil, kayıtlı konumlardan ve UDGM'in 50 m / 100 m ayarından hesapla. Hello simülasyonunda range'in bir önemi var mı?

Çözümü göster
SoruWeek1-HelloWeek1-Broadcast
Kaç mote, hangi program?3 Sky mote, examples/hello-world/hello-world.c3 Sky mote, examples/rime/example-broadcast.c
Ne basıyor, ne zaman?Boot'ta "Rime started…" ve "nullsec CSMA ContikiMAC" satırları, sonra bir kez "Hello, world". Sonra hiçbir şey: kodda döngü yok.Boot satırları, sonra her 4–8 saniyede bir "broadcast message sent". Menzildeki komşular "broadcast message received from X.0: 'Hello'" basar.
Communication range içinde mi?Uzaklıklar 1–2: 102.1 m, 1–3: 15.6 m, 2–3: 111.0 m. Sadece 1–3 çifti 50 m'nin içinde. hello-world paket göndermediği için sonucu değiştirmez.1–2: 31.1 m ve 2–3: 46.0 m, birbirini duyar. 1–3: 72.6 m, duymaz ama interference range'in (100 m) içinde.
Radio medium?İkisinde de UDGM: Distance Loss, transmitting range 50 m, interference range 100 m, TX ve RX success ratio 1.0.
Kaydedilip yeniden açılıyor mu?Evet: File → Save simulation ile .csc, File → Open simulation ile aynı mote type'lar, konumlar ve radio medium geri gelir. Dosya random seed'i de tutar (123456), bu yüzden aynı çalıştırma tekrarlanabilir. Firmware yolu Contiki'nin /home/user/contiki'de olduğunu varsayar; başka bir kurulumda yolu düzeltmek gerekir.

Answer (English): "Both simulations have three Sky motes in UDGM (50 m range, 100 m interference, success ratios 1.0). In Week1-Hello every mote prints its boot lines and 'Hello, world' once, then nothing, because the program has no loop and sends no packets. In Week1-Broadcast every mote prints 'broadcast message sent' every 4 to 8 seconds, and neighbours inside 50 m print 'received from X.0'. In the saved positions motes 1 and 3 are 72.6 m apart, so they cannot hear each other, but both reach mote 2. The .csc file stores the motes, positions, radio medium and random seed, so the run can be reopened and repeated."

W1 deck · Week1-Hello.csc · Week1-Broadcast.csc

Tuzaklar
  • "Screenshot = sonuç" değil. Rapor gözlem + mekanizma ister.
  • UDGM'nin keskin dairesini gerçek sanma. Gerçekte arada paketlerin bir kısmının geldiği bir bölge vardır.
  • Radio Messages'ta tek "Hello" için onlarca frame görmek hata değildir; ContikiMAC'in broadcast tekrarıdır.
  • Cooja'yı host'un (Windows) terminalinden çalıştırmaya çalışma; VM'in terminalinden çalışır.

UDGM'de bir mote, göndericinin yeşil dairesinin dışında ama gri dairesinin içinde. Ne olur?

Bir mote broadcast gönderiyor ve hiçbir komşu almıyor. Gönderen bunu nasıl öğrenir?

Son kontrol

Önce cevabı kendin söyle, sonra seç.

"A mote is not a sensor." Hocanın bu cümleyle anlatmak istediği nedir?

Bir öğrenci Contiki'de 5 saniye beklemek için while(clock_time() < end) {} yazıyor. En doğru eleştiri hangisi?

Reporting pattern hangi üç tasarım gereksinimini belirler (slayt 20)?

Sky mote'ta firmware'i hangisi çalıştırır, radyo yayılımını hangisi modeller?

Seradaki "open vents" komutu için hangi gereksinim, periodic sıcaklık okumasında olmayıp burada zorunludur?