Защита

romafedo
Offline
Зарегистрирован: 02.05.2014

Здравстуйте, безопасно ли так хранит и получать данные

 
#include <SPI.h>
#include <Ethernet.h>
 
byte mac[] = {
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x01 };
IPAddress ip(192,168,1,9); 
 
// инициализации экземпляра библиотеки:
EthernetClient client;
// задержка между запросами
const int requestInterval = 3000;
// URL сервера, которому будем отправлять запросы
char serverName[] = "***";
// сделан ли запрос после подключения
boolean requested;
// время в милисекундах с последнего подключения к серверу
long lastAttemptTime = 0;
 
// строка для сохранения текста с сервера
String currentLine = "";
// строка для хранения твита
String tweet = "";
// переменная хранит состояние: читаете ли твит сейчас
boolean readingTweet = false;
 
void setup() {
 
    pinMode(13, OUTPUT);
    pinMode(11, OUTPUT);
 
  // резервируем место для строки:
  currentLine.reserve(256);
  tweet.reserve(150);
 
  // инициализация последовательного порта:
  Serial.begin(9600);
  // попытка подключения с DHCP:
  if (!Ethernet.begin(mac)) {
    // если DHCP-сервер отсутствует в сети,
    // подключаемся с заданным нами IP-адресом:
    Ethernet.begin(mac, ip);
  }
  // подключаемся к Twitter:
  connectToServer();
}
 
void loop()
{
  if (client.connected()) {
    if (client.available()) {
      // считываем полученные байты:
      char inChar = client.read();
 
      // добавляем полученные байты в конец строки:
      currentLine += inChar;
 
      // если получен символ новой строки, очищаем переменную:
      if (inChar == '\n') {
        currentLine = "";
      }
      // если текущая строка заканчивается символами , значит
      // сейчас будет следовать непосредственно текст твита:
      if ( currentLine.endsWith("<text>")) {
        // начало чтения твита. Очищаем переменную tweet:
        readingTweet = true;
        tweet = "";
      }
      // если сейчас происходит считывание байтов твита,
      // добавляем их в строковую переменную tweet:
      if (readingTweet) {
        if (inChar != '<') {
          tweet += inChar;
        }
        else {
          // если был получен символ "<",
          // значит мы достигли конца твита:
           readingTweet = false;
           Serial.println(tweet);
           if(tweet == ">11"){
           digitalWrite(13, HIGH);
           digitalWrite(11, LOW);
           Serial.println("13 ON - 11 OFF");
          }
           if(tweet == ">10"){
           digitalWrite(13, HIGH);
           digitalWrite(11, HIGH);
           Serial.println("13,11 ON!");
          }
           if(tweet == ">00"){
           digitalWrite(11, HIGH);
           digitalWrite(13, LOW);
           Serial.println("11 ON - 13 OFF");
          }
            if(tweet == ">01"){
           digitalWrite(11, LOW);
           digitalWrite(13, LOW);
           Serial.println("11 OFF - 13 OFF");
          }
 
 
          // отключаемся от сервера:
          client.stop();
        }
      }
    }
  }
  else if (millis() - lastAttemptTime > requestInterval) {
    // если мы в данный момент не подключены к серверу
    // и прошло 2 минуты с момента последнего подключения, пробуем
    // подключится снова и прочитать последний опубликованный твит:
    connectToServer();
  }
}
 
// функция подключения к серверу Twitter:
void connectToServer() {
 
  Serial.println("connecting to server...");
  if (client.connect(serverName, 80)) {
    Serial.println("making HTTP request...");
  // Создаем GET HTTP-запрос к твиттеру:
    client.println("GET /data.xml HTTP/1.1");
    client.println("HOST: ***");
    client.println();
  }
  // записываем в переменную время текущей попытки соединения:
  lastAttemptTime = millis();
}

 

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Смотря от чего защищать. Если используется принцип "черного ящика" - то в полне безопасно.

romafedo
Offline
Зарегистрирован: 02.05.2014

Спасибо, и еще вопрос, не могу мопять как добавить еще пинов...что то как то не получается

#include <SPI.h>
#include <Ethernet.h>
 
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x01 };
IPAddress ip(191,11,1,1);
 
// инициализации экземпляра библиотеки:
EthernetClient client;
// задержка между запросами
const int requestInterval = 2000;
// URL сервера, которому будем отправлять запросы
char serverName[] = "***";
// сделан ли запрос после подключения
boolean requested;
// время в милисекундах с последнего подключения к серверу
long lastAttemptTime = 0;
// строка для сохранения текста с сервера
String currentLine = "";
// строка для хранения
String text = "";
// переменная хранит состояние: читаете ли текст сейчас
boolean readingtext = false;
 
void setup() {
 
  pinMode(13, OUTPUT);
  pinMode(11, OUTPUT);
 
  // резервируем место для строки:
  currentLine.reserve(256);
  text.reserve(150);
 
  // инициализация последовательного порта:
  Serial.begin(9600);
  // попытка подключения с DHCP:
  if (!Ethernet.begin(mac)) {
    // если DHCP-сервер отсутствует в сети, подключаемся с заданным нами IP-адресом:
    Ethernet.begin(mac, ip);
  }
  // подключаемся к серверуr:
  connectToServer();
}
 
void loop()
{
  if (client.connected()) {
    if (client.available()) {
      // считываем полученные байты:
      char inChar = client.read();
 
      // добавляем полученные байты в конец строки:
      currentLine += inChar;
 
      // если получен символ новой строки, очищаем переменную:
      if (inChar == '\n') {
        currentLine = "";
      }
      // если текущая строка заканчивается символами , значит
      // сейчас будет следовать непосредственно текст твита:
      if ( currentLine.endsWith("<pin13>")) {
        // начало чтения твита. Очищаем переменную tweet:
        readingtext = true;
        text = "";
      }
      // если сейчас происходит считывание байтов твита,
      // добавляем их в строковую переменную tweet:
      if (readingtext) {
        if (inChar != '<') {
          text += inChar;
        }
        else {
          // если был получен символ "<",
          // значит мы достигли конца твита:
           readingtext = false;
           Serial.println(text);
           if(text == ">1"){
           digitalWrite(13, HIGH);
           Serial.println("13 on");
          }
          if(text != ">1"){
           digitalWrite(13, LOW);
           Serial.println("13 off");
          }
 
          // отключаемся от сервера:
          client.stop();
        }
      }
    }
  }
  else if (millis() - lastAttemptTime > requestInterval) {
    // если мы в данный момент не подключены к серверу
    // и прошло 2 минуты с момента последнего подключения, пробуем
    // подключится снова и прочитать последний опубликованный твит:
    connectToServer();
  }
}
 
// функция подключения к серверу Twitter:
void connectToServer() {
 
  Serial.println("connecting to server...");
  if (client.connect(serverName, 80)) {
    Serial.println("making HTTP request...");
  // Создаем GET HTTP-запрос к твиттеру:
    client.println("GET /data.xml HTTP/1.1");
    client.println("HOST: ***");
    client.println();
  }
  // записываем в переменную время текущей попытки соединения:
  lastAttemptTime = millis();
}