Übersetzungen dieser Seite:

6LoWPAN-Feuchte, Temperatur Sensor V2

Ein Hygrometer ist ein Messgerät zur Bestimmung der Luftfeuchtigkeit. Das ist nichts neues. Dieses Hygrometer besitzt auch einen Temperatursensor und eine MAC Adresse und ist über IPv6 ansprechbar. Dadurch können die Meßwerte für verschiedenste Steuerungsaufgaben verwendet werden. In den 6LoWPAN-Knoten wird ein Betriebsystem namens Contiki-OS eingesetzt. Contiki-OS ist ein populäres embedded Betriebsystem für Mikrocontroller ab 8-Bit wie zum Beispiel AVR, 8051, MSP430 Architekturen und wird von einer breiten Community und dem „Swedisch Institute for Computer Science“ entwickelt.Shopbereich

Eigenschaften

  • Versorgung durch 2x AAA Batterie
  • Versorgung durch 2x AAA Akkus + Solarzelle (optional)
  • Versorgung durch 3.3V Steckernetzteil (optional)
  • DC/DC Wandler
  • AM2302 Feuchtesensor/Temperatursensor
  • Statusanzeige Led-rot
  • FTDI Programmieranschluss
  • 2,4 Ghz 6LoWPAN Funkanbindung
  • AVR atmega128rfa1 Funkmodul

IP-Anbindung

Die Integration in das eigene IP-Netz erfolgt über einen RaspyEdge-Shield oder einen 6LoWPAN-Edge-Router. Dieser verbindet unsern 6LoWPAN-Merkur mit unserm IP-Netz um ihn über eine IPv6 Adresse ansprechen zu können.

Auf Applikationsebene wird das COAP Protokoll eingesetzt.

COAP-Resourcen

Resource GET PUT Comments
/.well-known/core X X Well-Known URIs
/info X - Name Version Information
/a/leds X X Status LED-1
/s/hum X - Humidity DHT22
/s/temp X - Temp. DHT22
/s/battery X - Battery Status

Coap-Clients

Mit hilfe des Copper-Add-On spricht der Mozilla Browser das Coap Protokoll. Auf der Kommandozeile kann z.B. die Libcoad helfen. Durch eingabe einer Coap URI kann auf den Sensorknoten zugegriffen werden:

CoAP senden und empfangen am PC/RaspberryPi/Server

Coap on Android

Beispiele

 
 coap-client -m get coap://[aaaa::221:2eff:ff00:264e]:5683/.well-known/core
 coap-client -m get coap://[aaaa::221:2eff:ff00:264e]:5683/s/battery

Firmware

Contiki OS beinhaltet einen sehr kleinen IP Stack uIP genannt welcher eine Ipv6 und eine 6LoWPAN Implementierung beinhaltet. Das Betriebsystem ist in C geschrieben und wird mithilfe von Make gesteuerten Cross-Compilern für die jeweilige Hardwareplattform übersetzt.

Github https://github.com/osdomotics/osd-contiki/tree/osd/examples/osd/climate2

DHT22

Wir wollen die Firmware für den Climate II Sensor bauen. Das Climate Example erzeugt Firmware für den Climate Sensor mit DHT11 und DS1820. Wir haben aber einen DHT22 Sensor indem ein DS1820 Sensor schon integriert ist. Als ersters müssen wir im DHT Treiber den DHT22 Aktivieren

osd-contiki/platform/osd-merkur/dev/dht11.c

#define udelay(u) clock_delay_usec(u)
#define mdelay(u) clock_delay_msec(u)

// define for DHT11 else for DHT22, RHT03 
--#define DHT11    1
++//#define DHT11    1

uint8_t DHT_Read_Data(uint16_t *temperature, uint16_t *humidity){

Und in umserem Projekt den DS1820 deaktivieren, den der DHT22 liefert uns beide Werte.

osd-contiki/examples/osd/climate/project-conf.h

#ifndef PROJECT_ERBIUM_CONF_H_
#define PROJECT_ERBIUM_CONF_H_

#define PLATFORM_HAS_BATTERY 1
--#define PLATFORM_HAS_DS1820  1
++#define PLATFORM_HAS_DS1820  0
#define PLATFORM_HAS_DHT11   1
#define PLATFORM_HAS_LEDS    1

Nun übersetzen wir den Code neu

./run.sh

und spielen die Firmware in den Climate II Sensor.

./flash.sh

Der Climate liefert uns nun unter /s/temp die Temperatur und unter /s/hum die Luftfeuchte. Wenn wir die Werte im Json Format anforden indem wir z.B. im Copper rechts Debug-Options Aktivieren und „application/json“ auswählen, bekommen wir Wertepaare mit den entsprechenden Bezeichnungen zurück.

{„temp“:„252“}

oder

{„hum“:„335“}

Was einer Temperatur von 25.2 C und einer Luftfeuchtigkeit von 33,5 RelH% entspricht.

Hardware

tags


de/projekte/climate2.txt · Zuletzt geändert: 2015/04/20 16:43 von harald42