2014-02-25 2 views
1

두 개의 자바 스크립트 값을 ID로, 한 개의 값을 값으로 사용하여 xively 피드로 보내려면 어떻게해야합니까? 현재 코드입니다. 나는 그 값들을 xied 피드에 넣고 싶다. 그래서 나는 wifi를 가진 arduino를 통해 그들에 접근 할 수있다. 안타깝게도 JS에서 웹 사이트의 값을 직접 가져 오는 것은 간단하지 않으므로 아무도 arduino에서이 데이터에 액세스하는 더 좋은 방법이 없으면 내 해결 방법입니다. 참조 execept에 대한이 예제를 사용하여 웹 사이트에서 데이터를 검색하지 않고 보내고 싶습니다. 여기XivelyJS를 사용하여 JS 값을 xively로 보내기

<!DOCTYPE html > 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Untitled Document</title> 

<script src="jquery-1.10.2.min.js"></script> 
<script type="text/javascript" src="parse-1.2.16.min.js"></script> 
</head> 

<body> 


<script> 

jQuery(function($){ 

    xively.setKey("APIKEY"); 


    Parse.initialize("APIKEY", "APIKEY"); 



var mValue = Parse.Object.extend("mValue"); 
var queryLngLat = new Parse.Query(mValue); 
var classObject = new mValue(); 
var existingMarkers= []; 
var databaseMarkers= []; 
var counter = 0; 
var div ; 
var resultsLength; 



setInterval(function update() { 

queryLngLat.notEqualTo("longAndLat", null); 
queryLngLat.find({ 
    success: function(results) { 

     console.log("Successfully retrieved " + results.length + " scores."); 

    for (var j = 0; j < results.length; j++) { 
    databaseMarkers = (results[j].attributes.longAndLat); 
resultsLength = results.length; 
counter++; 
    var markerValueRead = results[j].attributes.Val; 

    CoordsPush = databaseMarkers.substring(1, databaseMarkers.length - 1); 

    div = document.createElement("div"); 
     div.style.width = "400px;"; 
    div.style.background = "white"; 
    div.style.color = "black"; 
    div.innerHTML = /*"Database LatLng: " + CoordsPush + " Marker Value: " + */markerValueRead; 
    div.setAttribute("id", CoordsPush); 
    document.body.appendChild(div); 
    //alert(div.id); 


    JSON.stringify(markerValueRead); 


xively.setKey("UYby76Zocsur664I6sRd13BXKUKrpM3xDSntN5qB5fvPxMhG"); 


var feedID = 129375335, 
datastreamID = "LatLng"; 
selector = "50.3754565, -4.14265649999993" 

xively.datastream.get(feedID, datastreamID, function(datastream) { 

    $selector.html(datastream["current_value"]); 
    xively.datastream.subscribe(feedID, datastreamID, function(even, datastream_updated) { 

     $(selector).html(datastream_updated["current_value"]); 
    }); 
}); 







    //console.log("(" + markers[d].getPosition().d + ", " + markers[d].getPosition().e +")"); 

    console.log("Database LatLng: " + databaseMarkers + " Marker Value: " + markerValueRead); 

     } 

    counter = 0; 

    } 
    }); 

    document.body.innerHTML = ''; 





}, 15000); 





}); 



    </script> 
    <script src="http://d23cj0cdvyoxg0.cloudfront.net/xivelyjs-1.0.4.min.js"></script> 
</body> 
</html> 

답변

0

http://xively.github.io/xively-js/tutorial/ ... 급전 두 채널 ("foo"와 "bar")의 각각에 하나의 값을 송신하는 간단한 예가

<!DOCTYPE HTML> 
<html> 
<head> 
    <title>Xively Test</title> 
    <script language="JavaScript" type="text/javascript" src="lib/jquery/jquery-1.10.2.min.js"></script> 
    <script language="JavaScript" type="text/javascript" src="lib/xively/xivelyjs-1.0.4.min.js"></script> 

    <script language="JavaScript" type="text/javascript"> 
     var API_KEY = "YOUR_API_KEY"; 
     var FEED_ID = "YOUR_FEED_ID"; 

     $(document).ready(function() { 
     // Set your API key first 
     xively.setKey(API_KEY); 

     // build the data packet 
     var timestamp = new Date().toISOString(); 
     var data = { "version" : "1.0.0", 
      "datastreams" : [ 
       { "id" : "foo", "datapoints" : [ {"at" : timestamp, "value" : 10} ] }, 
       { "id" : "bar", "datapoints" : [ {"at" : timestamp, "value" : 20} ] } 
      ] 
     }; 

     // upload the data 
     xively.feed.update(FEED_ID, data, function(response) { 
      if (response.status == "200") { 
       console.log("Yay, it worked!: " + JSON.stringify(response, null, 3)); 
      } 
      else { 
       console.log("Boo, something went wrong!: " + JSON.stringify(response, null, 3)); 
      } 
     }); 

     }); 
    </script> 
</head> 
<body> 
Look in the console for output. 
</body> 
</html>