User Tools

Site Tools


proiecte:temp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
proiecte:temp [2018/09/24 14:20]
narcisa_ana.vasile
proiecte:temp [2018/11/28 11:48] (current)
narcisa_ana.vasile [Bibliography]
Line 1: Line 1:
-====== Temp ======+====== CoAP for Contiki OS over Sparrow ======
  
 ===== Introduction ===== ===== Introduction =====
-TODO+The goal of this project is to create a flexible platform for developing Wireless Sensor Networks applications using the Sparrow sensor nodes. The key objectives of this project include porting the open-source operating system, Contiki, to Sparrow sensor nodes and porting CoAP network protocol to Contiki-running Sparrow nodes.
  
 ===== Network Topology ===== ===== Network Topology =====
Line 13: Line 13:
 The other Sparrow nodes will run Contiki with a CoAP server as the main application. Those nodes will acquire data using different sensors and will pass the data to the CoAP client in the external network.  The other Sparrow nodes will run Contiki with a CoAP server as the main application. Those nodes will acquire data using different sensors and will pass the data to the CoAP client in the external network. 
  
-===== TODO Title =====+===== Technologies ===== 
 + 
 +==== Contiki ==== 
 + 
 +Contiki is an operating system for memory constrained systems, optimized for low-power microcontrollers. A list of available hardware platforms on which Contiki has been ported can be found at http://www.contiki-os.org/hardware.html. Contiki's kernel is event-driven, but a library can be optionally linked to provide multi-threading capabilities.  
 + 
 +===CoAP ====
  
 Sensor nodes are devices capable of acquiring information from the environment using different types of sensors attached to them. Those sensors perform measurements and return information such as the value of the temperature, the quality of air, the value of the humidity in the air, etc. The microcontroller communicates with the sensors and retrieves the data gathered by them to process/analyze/send it further. The transmission of the data from the sensors to the microcontroller is done using a common language (communication protocol) that enforces a set of communication rules to allow the exchange of information. Similarly, to transmit the data from the sensor node to a different device (a laptop, a phone, a different node, etc.) a protocol must be established between the entities that wish to communicate. Actually, multiple protocols are usually used to allow communication between devices, each one of them governing a different communication level/layer. The scheme of protocols for sensor nodes communication used in this project is depicted in the following diagram. Sensor nodes are devices capable of acquiring information from the environment using different types of sensors attached to them. Those sensors perform measurements and return information such as the value of the temperature, the quality of air, the value of the humidity in the air, etc. The microcontroller communicates with the sensors and retrieves the data gathered by them to process/analyze/send it further. The transmission of the data from the sensors to the microcontroller is done using a common language (communication protocol) that enforces a set of communication rules to allow the exchange of information. Similarly, to transmit the data from the sensor node to a different device (a laptop, a phone, a different node, etc.) a protocol must be established between the entities that wish to communicate. Actually, multiple protocols are usually used to allow communication between devices, each one of them governing a different communication level/layer. The scheme of protocols for sensor nodes communication used in this project is depicted in the following diagram.
Line 120: Line 126:
  
 ==== CoAP Client ==== ==== CoAP Client ====
-TODO+ 
 +From Github, clone the open source CoAP client (implemented in Python). Example of running the client: 
 +<file> 
 +python coapclient.py -o GET -p coap://[aaaa::11:22ff:fe33:4403]:5683/sensors/temperature 
 +</file>
  
 ==== Firebase ==== ==== Firebase ====
Line 157: Line 167:
  
 To store the information gathered from the sensors in the database, follow these steps: To store the information gathered from the sensors in the database, follow these steps:
-  +  - From Firebase console **Project settings -> Service accounts -> Generate new provate key**. Download the file generated locally - this will be used to allow access to firebase from your laptop. 
- From Firebase console *Project settings -> Service accounts -> Generate new provate key*. Download the file generated locally - this will be used to allow access to firebase from your laptop. +  Go to Firebase console, copy the url of your project. It should be something similar to 'https://projectID.firebaseio.com', where projectID can be found in **Project settings -> Your project**. 
- Go to Firebase console, copy the url of your project. It should be something similar to 'https://projectID.firebaseio.com', where projectID can be found in *Project settings -> Your project*. +  Send the information received by the CoAP client running on the laptop to Firebase. Below, is an example of a python code that sends the value of the temperature in cloud:
- Send the information received by the CoAP client running on the laptop to Firebase. Below, is an example of a python code that sends the value of the temperature in cloud:+
  
 <code> <code>
Line 167: Line 176:
 from firebase_admin import db from firebase_admin import db
  
-firebase_url = 'https://envmonitor-8be0c.firebaseio.com' +firebase_url = 'https://ProjectID.firebaseio.com' 
-cred = credentials.Certificate("./envmonitor-8be0c-firebase-adminsdk-j3pxv-9f53b92cb8.json")+cred = credentials.Certificate("./PrivateKeyGeneratedInTheFirstStep.json")
 firebase_admin.initialize_app(cred, { firebase_admin.initialize_app(cred, {
          'databaseURL': firebase_url          'databaseURL': firebase_url
Line 180: Line 189:
 }) })
 </code> </code>
- 
  
  
  
  
proiecte/temp.1537788058.txt.gz · Last modified: 2018/09/24 14:20 by narcisa_ana.vasile