Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:eigene_projekte

Eigene Contiki Projekte und Beispiele

Test TCP

MQTT

Minimal-net

  1. Starte das Contiki-Binary
     ./test-mqtt.minimal-net 
  2. Das Binary stoppt und wartet auf eine Eingabe.
  3. Konfiguration der IP-Adresse von tap0
    sudo ip -6 addr add aaaa::1/64 dev tap0
  4. MQTT subscriber starten auf Topic: iot-2/#
  5. (optional) Wireshark kann jetzt auf tap0 gestartet werden
  6. Contiki-Binary durch Enter weiter laufen lassen.

Instant Contiki

Hier läuft ein MQTT Broker, gestartet mit mosquitto

 mosquitto_sub  -t '#' -v
 {"d":{"myName":"BeagleBoard","Seq #":3,"Uptime (sec)":135,"Def Route":"Testnachricht","RSSI (dBm)":0}}
 

FIXME

  • LED Output
  • Build Strings, etc
  • Architecture for Nodes (Node - OpenWRT - mosquitto - Netconf?)

IPv6/RPL-Border-Router (SLIP)

UDP-IPv6

Dieses Beispiel wurde nicht modifiziert, aber mit dem Target minimal-net nach dieser Anleitung erfolgreich kompiliert. Es stellt ein UDP-Server und Client Programm bereit, die miteinander kommunizieren können.

Das Server Programm kann auch für sich allein mit netcat getestet werden. Es erwartet Nachrichten auf Port 3000 mit dem Sourceport 3001.

https://github.com/tscheffl/contiki/tree/tscheffl-3-0.0/examples/udp-ipv6

sudo ip -6 addr add aaaa::1/64 dev tap0
netcat -u -p 3001 aaaa::206:98ff:fe00:232 3000

Webserver-IPv6

https://github.com/tscheffl/contiki/tree/tscheffl-3-0.0/examples/

Es wurde versucht den Code für die AN Solutions Module (AVR-zigbit) zu übersetzen.
Hat nicht funktioniert, Data-Segment etwas zu groß…

avr-size webserver6.avr-zigbit -C --mcu=atmega1281
 
AVR Memory Usage
----------------
Device: atmega1281
 
Program:   57082 bytes (43.6% Full)
(.text + .data + .bootloader)
 
Data:      11220 bytes (137.0% Full)
(.data + .bss + .noinit)
 
EEPROM:        8 bytes (0.2% Full)
(.eeprom)

project-conf.h und Makefile des Projekts. Der Versuch den nano-Webserver einzubinden hat zu einer Reihe von Compile-Fehlern geführt.

#define PROCESS_CONF_NO_PROCESS_NAMES 1
#define UIP_CONF_TCP 1
#define UIP_CONF_UDP 0
CONTIKI_PROJECT=webserver6
all: $(CONTIKI_PROJECT) $(WITH_WEBSERVER)
 
CFLAGS += -DPROJECT_CONF_H=\"project-conf.h\"
CFLAGS += -ffunction-sections
 LDFLAGS += -Wl,--gc-sections,--undefined=_reset_vector__,--undefined=InterruptVectors,--undefined=_copy_data_init__,--undefined=_clear_bss_init__,--undefined=_end_of_init__
 
ifeq ($(WITH_WEBSERVER),)
#
#Set default webserver for different platforms
#Although Makefile.include sets the default target, we need to know it now.
#
ifeq ($(TARGET),)
  -include Makefile.target
endif
ifeq ($(TARGET),sky)
SMALL=1
WITH_WEBSERVER=webserver-nano
else ifeq ($(TARGET),avr-raven)
WITH_WEBSERVER=raven-webserver
endif
#
endif
 
ifneq ($(WITH_WEBSERVER),)
APPS = $(WITH_WEBSERVER)
ifeq ($(WITH_WEBSERVER),raven-webserver)
APPS+=raven-lcd-interface
endif
#copy output to e.g. webserver-nano.sky, raven-webserver.avr-raven
$(WITH_WEBSERVER) : $(CONTIKI_PROJECT)
	cp $(CONTIKI_PROJECT).$(TARGET) $(WITH_WEBSERVER).$(TARGET)
	@if (test -n "$(ELF_SIZE)");then $(ELF_SIZE) $(WITH_WEBSERVER).$(TARGET);fi
else
APPS=webserver
 
all : $(CONTIKI_PROJECT)
	@if (test -n "$(ELF_SIZE)");then $(ELF_SIZE) $(CONTIKI_PROJECT).$(TARGET);fi	
endif
 
DEFINES=UIP_CONF_TCP=1
DEFINES=PROCESS_CONF_NO_PROCESS_NAMES=1
 
# Make no RPL the default for minimal-net builds
ifeq ($(TARGET),minimal-net)
ifndef CONTIKI_WITH_RPL
CONTIKI_WITH_RPL = 0
endif
endif
 
CONTIKI = ../..
CONTIKI_WITH_IPV6 = 1
include $(CONTIKI)/Makefile.include
contiki/eigene_projekte.txt · Zuletzt geändert: 2017/01/24 18:49 (Externe Bearbeitung)