Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:a-n-solutions-module:contiki-snmp

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
contiki:a-n-solutions-module:contiki-snmp [2012/10/08 10:38] – [Messung der Versorgungsspannung über ADC0 bei Anschluss eines 1:1 Spannungsteilers über die Versorgungsspannung] sven_zehlcontiki:a-n-solutions-module:contiki-snmp [2017/01/24 18:49] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 11: Zeile 11:
  
 ===== Betriebszustandsanzeige über LED DS3 ===== ===== Betriebszustandsanzeige über LED DS3 =====
-Zur Signalisierung der Betriebszustandsanzeige wurde innerhalb des Contiki SNMP Prozesses (snmpd.c) zuerst alle LEDs als Ausgänge geschaltet, anschließend LED DS3 (PIN7) auf LOW geschaltet und somit aktiviert.+Zur Signalisierung der Betriebszustandsanzeige wurden innerhalb des Contiki SNMP Prozesses (snmpd.c) zuerst alle LEDs als Ausgänge geschaltet, anschließend LED DS3 (PIN7) auf LOW geschaltet und somit aktiviert.
  
 <code c> <code c>
 +#include <avr/io.h>
 +
  /*Switch LED on @ANY Brick On if SNMPD started and set other LEDs as Output*/  /*Switch LED on @ANY Brick On if SNMPD started and set other LEDs as Output*/
  DDRB |= (1 << PIN5);  DDRB |= (1 << PIN5);
Zeile 23: Zeile 25:
  /*END LED @ANY Brick*/  /*END LED @ANY Brick*/
 </code> </code>
- 
 ===== Paketempfangssignalisierung über LED DS2 ===== ===== Paketempfangssignalisierung über LED DS2 =====
  
Zeile 53: Zeile 54:
  
 </code> </code>
-===== Port Pin Steuerung über SNMPv3 über LED DS1 =====+===== Pin Steuerung über SNMPv3 über LED DS1 =====
  
 Zur Steuerung von LED DS2 wurden die GET und SET Funktionen innerhalb der Datei ''mib-init-beuth-zig.c'' des SNMP Daemons angepasst. Zur Steuerung von LED DS2 wurden die GET und SET Funktionen innerhalb der Datei ''mib-init-beuth-zig.c'' des SNMP Daemons angepasst.
Zeile 83: Zeile 84:
 </code> </code>
 ===== Messung der Versorgungsspannung über ADC0 bei Anschluss eines 1:1 Spannungsteilers über die Versorgungsspannung ===== ===== Messung der Versorgungsspannung über ADC0 bei Anschluss eines 1:1 Spannungsteilers über die Versorgungsspannung =====
-Zur Messung der Versorgungsspannung wurde +Zur Messung der Versorgungsspannung wurde der PIN des ADC0 mit einem Spannungsteiler beschaltet.
  
 +{{:contiki:a-n-solutions-module:adc_batt.jpg?450|}}
  
 +Als Referenzspannung wurden die stabilen intern verfügbaren 2,54V des Mikrocontrollers verwendet. Zur Initialisierung des ADCs sowie zur Abfrage des aktuellen Wertes sind die folgenden Funktionen innerhalb der Datei ''mib-init-beuth-zig.c'' notwendig.
  
 +<code c>
  
 +/* battery power level*/
 +/************************/
  
 +/** \brief function for initialization of the adc*/
 +void adc_init()
 +{
 +    // AREF = AVcc
 +    ADMUX = (1<<REFS0)|(1<<REFS1); //intern 2.54V voltage reference
  
-===== Download and Install Instructions =====+    // ADC Enable and prescaler of 128 
 +    // 16000000/128 = 125000 
 +    ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); 
 +
 + 
 +/** \brief adc read function */ 
 +u16t adc_read() 
 +
 +    ADMUX = (ADMUX & 0xF8)|0;     // clears the bottom 3 bits before ORing 
 +    // start single convertion 
 +    // write '1' to ADSC 
 +    ADCSRA |= (1<<ADSC); 
 +    // wait for conversion to complete 
 +    // ADSC becomes '0' again 
 +    // till then, run loop continuously 
 +    while(ADCSRA & (1<<ADSC)); 
 + 
 +    return (ADC); 
 +
 + 
 +/** \brief get function for the battery power level mib object*/ 
 +s8t getBattValue(mib_object_t* object, u8t* oid, u8t len) 
 +
 + adc_init(); 
 + u16t adc_value; 
 + int batt_level; 
 + adc_value=adc_read(); 
 + batt_level=(((25400)/1024)*adc_value*2); //Reference Voltage 2.54Volts, 10Bit ADC,  
 +        //multiplied with ADC Read, multiplied with two because of the 1:1 voltage divider 
 +         
 +    object->varbind.value.i_value = batt_level; 
 +    return 0; 
 +
 +/*Battery Level end*/ 
 + 
 +</code> 
 + 
 + 
 + 
 + 
 + 
 +===== Download und Kompilierung ===== 
 + 
 +Der komplette Quellcode kann hier heruntergeladen werden: {{:contiki:a-n-solutions-module:atany-snmp.zip|}}. Nach dem Entpacken sind folgende Kopiervorgänge nötig. 
 +  - Der Ordner ''snmp'' muss in das Verzeichnis ''/examples/'' kopiert werden. 
 +  - Der Ordner ''snmpd'' muss in das Verzeichnis ''apps'' kopiert werden. 
 +  - Der Ordner ''avr-zigbit'' muss in das Verzeichnis ''platforms'' kopiert werden. 
 +  - Die Datei ''tcpip.c'' muss in das Verzeichnis ''/core/net/'' kopiert werden. 
 +Der Kompilierungsvorgang wird anschließend innerhalb des Ordners ''/examples/snmp/'' mit dem Befehl ''make zigbit'' gestartet. Im Anschluß kann die neu erstellte Datei ''snmp-server.elf'' auf das @ANY Modul geladen werden. 
 + 
 +__Hinweise:__ 
 +  * Innerhalb des Makefiles kann die MAC Adresse über die Compilerflags ''MAC_CONF_FREQUENCY'' und ''MAC_CONF_NUMBER'' angepasst werden. Gedacht ist hierbei ''MAC_CONF_FREQUENCY=0x09'' für 900MHz und ''DMAC_CONF_FREQUENCY=0x24'' für 2,4GHz. Über ''MAC_CONF_NUMBER'' kann die Knotennummer verändert werden. 
 + 
 +<code c> 
 +#CFLAGS+= -DMAC_CONF_FREQUENCY=0x09 #900MHz 
 +CFLAGS+-DMAC_CONF_FREQUENCY=0x24 #2400MHz 
 +CFLAGS+-DMAC_CONF_NUMBER=0x02 
 +</code>
  
 +  * Standardmäßig werden alle Knoten als Router konfiguriert um somit vermaschtes Routing verwenden zu können, dies ist über das Flag ''UIP_CONF_ROUTER'' innerhalb des Makefiles einstellbar.
 +  * Die Verwendung von Contiki SNMP ist in [[https://wiki.ipv6lab.beuth-hochschule.de/contiki/snmp_contiki_25_install#test_der_implementierung|Benutzung von Contiki SNMP]] beschrieben.
contiki/a-n-solutions-module/contiki-snmp.1349692726.txt.gz · Zuletzt geändert: 2017/01/24 18:49 (Externe Bearbeitung)