Защита
- Войдите на сайт для отправки комментариев
Пт, 02/05/2014 - 14:23
Здравстуйте, безопасно ли так хранит и получать данные
#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();
}
Смотря от чего защищать. Если используется принцип "черного ящика" - то в полне безопасно.
Спасибо, и еще вопрос, не могу мопять как добавить еще пинов...что то как то не получается
#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(); }