2015-01-11 2 views
2

Я выполнил следующий учебник: http://www.pubnub.com/blog/pubnub-streaming-texas-instruments-iot/ шаг за шагом, и мне удалось скомпилировать и закодировать и подключиться к точке доступа Wi-Fi. Мне кажется, мне удалось подключиться к PubNub (код печатает на экране терминала «PubNub Set Up», но в коде нет реальной проверки, что он действительно был настроен.Не удается опубликовать данные из CC3100 + MSP430F5529 на PUBNUB

Я открыл учетную запись на PubNub и мне назвал мой канал «тестированием» (я назвал его одинаковым в загруженном мной кодеке - я проверил его миллион раз), и когда я иду в Dev Console и нажимаю на подписку, я ничего не вижу! Я имею в виду, что я могу отправлять сообщения через консоль Dev, но то, что я действительно хочу видеть, - это сообщения от CC3100. Я проверил терминал UART на своем компьютере, и я вижу, что данные печатаются постоянно, поэтому я знаю, что он работает. Я снова просмотрел учебник и снова, и я делаю то же самое, но он просто не работает. Любая помощь будет оценена!

Что мне не хватает?

Спасибо, Dave

ответ

0

Этот ответ опубликован очень поздно. Я признаю, что забыл об этом сообщении, поэтому я решил обновить его (хотя несколько лет спустя).

Я начал копать, чтобы попытаться посмотреть, в чем проблема, и я думаю, что нашел. Прежде всего, я увидел, что PubNub.publish() не работает должным образом с json_String, потому что json_String - это 90% -ная щель. Поэтому я удалил большую часть кода, который построил json_String (часть, которая вставляет аналоговые значения) и упростила ее. Затем я также добавил часть кода в конце, которая была необходима для правильной работы клиентской переменной, которую я получил от части кода, которая использовалась для проекта на основе arduino с использованием CC3100.

В любом случае, новый код ниже, и теперь он работает FINE! Наконец, я вижу все входные потоки на PubNub! Большое спасибо! : D

/*PubNub sample JSON-parsing client with WiFi support 

    This combines two sketches: the PubNubJson example of PubNub library 
    and the WifiWebClientRepeating example of the WiFi library. 

    This sample client will properly parse JSON-encoded PubNub subscription 
    replies using the aJson library. It will send a simple message, then 
    properly parsing and inspecting a subscription message received back. 

    This is achieved by integration with the aJson library. You will need 
    a version featuring Wiring Stream integration, that can be found 
    at http://github.com/pasky/aJson as of 2013-05-30. 

    Please refer to the PubNubJson example description for some important 
    notes, especially regarding memory saving on Arduino Uno/Duemilanove. 
    You can also save some RAM by not using WiFi password protection. 


    created 30 May 2013 
    by Petr Baudis 

    https://github.com/pubnub/pubnub-api/tree/master/arduino 
    This code is in the public domain. 
    */ 

#include <SPI.h> 
#include <WiFi.h> 
#include <PubNub.h> 
#include <aJSON.h> 

static char ssid[] = "EyalEfrat 2.4"; // your network SSID (name) 
static char pass[] = "0524873130"; // your network password 
static int keyIndex = 0;    // your network key Index number (needed only for WEP) 

const static char pubkey[] = "pub-c-51eb45ec-b647-44da-b2aa-9bf6b0b98705"; 
const static char subkey[] = "sub-c-7e78ed9c-991d-11e4-9946-02ee2ddab7fe"; 
const static char channel[] = "testing"; 

#define NUM_CHANNELS 4 // How many analog channels do you want to read? 
const static uint8_t analog_pins[] = {23, 24, 25, 26}; // which pins are you reading? 

void setup() 
{ 
    Serial.begin(9600); 

     Serial.println("Start WiFi"); 
     WiFi.begin(ssid, pass); 
     while(WiFi.localIP() == INADDR_NONE) { 
      Serial.print("."); 
      delay(300); 
     } 
    Serial.println("WiFi set up"); 

    PubNub.begin(pubkey, subkey); 
    Serial.println("PubNub set up"); 
     delay(5000); 
} 

void loop() 
{ 

     WiFiClient *client; 

     // create JSON objects 
     aJsonObject *msg, *analogReadings; 
     msg = aJson.createObject(); 
     aJson.addItemToObject(msg, "analogReadings", analogReadings = aJson.createObject()); 

     // get latest sensor values then add to JSON message 
     /*for (int i = 0; i < NUM_CHANNELS; i++) { 
      String analogChannel = String(analog_pins[i]); 
      char charBuf[analogChannel.length()+1]; 
      analogChannel.toCharArray(charBuf, analogChannel.length()+1); 
      int analogValues = analogRead(analog_pins[i]); 
      aJson.addNumberToObject(analogReadings, charBuf, analogValues); 
     }*/ 

     // convert JSON object into char array, then delete JSON object 
     char *json_String = aJson.print(msg); 
     aJson.deleteItem(msg); 

     // publish JSON formatted char array to PubNub 
    Serial.print("publishing a message: "); 
    Serial.println(json_String); 
     Serial.println(channel); 
     client = PubNub.publish(channel, json_String); 
     Serial.println(*client); 
     free(json_String); 

     if (!client) { 
     Serial.println("publishing error"); 
     delay(1000); 
     return; 
    } 
    client->stop(); 

    delay(500); 
} 
//- See more at: http://www.pubnub.com/blog/pubnub-streaming-texas-instruments-iot/#sthash.tbQXMIzw.dpuf 

Cheers, Dave

0

Во-первых, чтобы проверить ваш счет PubNub правильно настроен и ваше локальное подключение Wi-Fi работает - вы в состоянии публиковать сообщения из консоли Дев в одном браузере и получить их в разработчика консоль в другом браузере? (оба с одинаковым именем канала, конечно). Если это сработает, отправьте сообщение, чтобы помочь (в) pubnub (dot) com с информацией вашего под-ключа и информацией о вашем проекте, и мы постараемся помочь вам выявить проблему.

+0

Я проверил, что вы предложили с Chrome и Internet Explorer, и это работает отлично. Таким образом, Dev Console и мой WiFi, вероятно, настроены отлично. Тем не менее, из моего внедренного проекта и pubnub нет связи, поэтому я отправил электронное письмо в PubNub по вашему предложению по этому вопросу ... – Lucent567

 Смежные вопросы

  • Нет связанных вопросов^_^