Ср сен 14, 2022 11:13:06
Ср сен 14, 2022 14:03:38
olegue писал(а):А отправляются они очень долго.
olegue писал(а):Правильно ли будет , писать данные скажем в файл или в ЕЕПРОМ, а потом уже оттуда их забирать и неспешно постить на веб сервис.
Чт сен 15, 2022 00:14:10
Чт сен 15, 2022 16:22:52
Пн сен 19, 2022 23:06:31
#include <EEPROM.h> // Импортируем бмблиотеку
int address = 0; // Переменная для хранения адреса
int value1 = 4587; // Переменная для хранения значения 1
int value2 = -25214; // Переменная для хранения значения 2
int value3 = 2 ; // Переменная для хранения значения 2
void setup() {
Serial.begin(9600);
Serial.println("Следующее значение будет записано по адресу: " + String(address));
EEPROM.put(address, value1); // Записать значение value1 в ячейку с адресом 0
// Для вычисления следующего доступного адреса, необходимо получить объем памяти,
// отведенной под предыдущее значение:
address += sizeof(int); // Корректируем адрес на уже записанное значение - 2 байта занимает тип int
Serial.println("Следующее значение будет записано по адресу: " + String(address));
EEPROM.put(address, value2); // Записать значение value2 в ячейку с адресом 2
address += sizeof(int); // Корректируем адрес на уже записанное значение - 2 байта занимает тип int
Serial.println("Следующее значение будет записано по адресу: " + String(address));
EEPROM.put(address, value3); // Записать значение value2 в ячейку с адресом 2
// Обнуляем переменные для чистоты экперимента
address = 0;
int value1 = 0;
int value2 = 0;
// Получаем данные из EEPROM
EEPROM.get(address, value1);
address += sizeof(int); // Корректируем адрес на уже записанное значение
EEPROM.get(address, value2);
address += sizeof(int); // Корректируем адрес на уже записанное значение
EEPROM.get(address, value3);
Serial.println( value1, BIN); // Вывести полученное значение 1
Serial.println( value2, BIN); // Вывести полученное значение 2
Serial.println( value3, BIN); // Вывести полученное значение 2
Serial.println( value1, DEC); // Вывести полученное значение 1
Serial.println( value2, DEC); // Вывести полученное значение 2
Serial.println( value3, DEC); // Вывести полученное значение 2
}
void loop() {}
В переменных типа int отрицательные числа представляются с помощью техники дополнительного кода. Старший бит, который иногда называют "знаковым битом", указывает на то, является ли данное число отрицательным. Остальные биты инвертируются, после чего к результату добавляется 1.
Пн сен 19, 2022 23:38:05
olegue писал(а):SRAM не подойдет, иногда (или почти всегда) чтобы решить проблему со связь приходится отключать питание.
Вт сен 20, 2022 00:14:26
Вт сен 20, 2022 00:44:36
Вт сен 20, 2022 13:29:29
Вт сен 20, 2022 17:09:51
Чт сен 22, 2022 13:14:04
123456789)
loop(){
///////// чтение файл на сервере ////////////////////
/////////////////////////////////////////////
Serial.print ("Read server \n\r\n");
adress_txt="pomidor.txt";
read_gprs();
for (long i=0; i <= 2000; i++){
delay(1);
read_uart();
if (r!=""){ Serial.print(r);}
if(r=='+'){aa=1;}
if(aa==1)
{
if(r==0x0D){aa=2;}
}
if(aa==2){
[b] if(r=='('){aa=0; Serial.print ("ON motor \n\r\n");}
if(r==')'){aa=0; Serial.print ("OFF motor \n\r\n"); }[/b]
}
}
} //loop
void read_gprs (void)
{
GSMport.print ("sensor changed to: 0\n\r\n");
delay (100);
GSMport.print ("Send start\n\r\n");
delay (100);
GSMport.print ("setup url\n\r\n");
delay (100);
GSMport.print ("AT+HTTPPARA=");
GSMport.print ('"');
GSMport.print ("URL");
GSMport.print ('"');
GSMport.print (',');
GSMport.print ('"');
GSMport.print (adress_site);
GSMport.print (adress_txt);
GSMport.print ('"');
GSMport.print ("\n\r\n");
delay (1000);
GSMport.print ("GET url\n\r\n");
delay (100);
GSMport.print ("AT+HTTPACTION=0\n\r\n");
delay (5000);
GSMport.print ("AT+HTTPREAD=1,1000\n\r\n");
}
void read_uart (void)
{
if (GSMport.available()) {
// Serial.write(mySerial.read());
r=(GSMport.read());
}
}
09:36:16.270 ->
09:36:18.164 -> Read server
09:36:18.164 ->
09:36:24.757 -> sensor changed to: 0
Send start
setup url
AT+HTTPPARA="URL","htAT+HTTPREAD=1,1000
09:36:24.827 -> +HTTPREAD: 9
09:36:24.827 -> 23456789)
09:36:24.827 ->
09:36:24.827 ->
09:36:24.827 -> OK
09:36:24.827 ->
09:36:24.827 ->
09:36:24.862 ->
09:36:24.862 ->
09:36:24.862 ->
09:36:24.862 ->
09:36:24.862 ->
09:36:24.862 ->
09:36:24.862 ->
GSMport.print ("sensor changed to: 0\n\r\n");
delay (100);
GSMport.print ("Send start\n\r\n");
delay (100);
GSMport.print ("setup url\n\r\n");
delay (100);
if(aa==1){
if(r==0x0D){aa=2;}
}
if(aa==2){
if(r=='('){aa=0; Serial.print ("ON motor \n\r\n");}
if(r==')'){aa=0; Serial.print ("OFF motor \n\r\n");
}
Пт сен 23, 2022 12:56:23
Сб сен 24, 2022 11:47:07
roman.com писал(а):всё это делается намного проще..
Вс сен 25, 2022 20:07:34