0
В вашем примере нет прокрутки списка, просто я начинающий человек в этом, добавить сколько мне нужно было кнопок смог в список по вашему примеру, а вот как прокрутку списка сделать я не знаю, и в вашем примере его нет, так как в итоге все мне нужные кнопки не поместились в разрешение дисплея.
0
А как сделать прокрутку списка?
0
И Вам спасибо. Исправил. Видимо проглядел.
  • avatar
  • stD
0
есть мелкая ошибка в конфигурации сайта в apache.
Делал всё в точности по инструкции и в конечном результате по обращению к серверу через доменное имя выдавало ошибку «недостаточно прав для просмотра каталога»
Внимательно просмотрев конфиги предоставленные в статье увидел мелкую ошибку.
<VirtualHost localhost:81>
        ServerAdmin webmaster@localhost
        ServerName irinartzone.ru
        ServerAlias www.irinartzone.ru

        DocumentRoot /var/www/irinartzone

#       <Directory /var/www/irinartzone/>
#               Options Indexes FollowSymLinks
#               AllowOverride All
#               Require all granted
#       </Directory>

        LogLevel warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>


Тэг Directory закоментирован
#       <Directory /var/www/irinartzone/>
#               Options Indexes FollowSymLinks
#               AllowOverride All
#               Require all granted
#       </Directory>

А так всё работает. Большое спасибо за статью =)
0
извиняюсь за назойливость!
вопрос — может есть программка составления програм для ардуино, облегчающая участь чайников.
и лучше безплатная
0
странно получилось. раньше работало 18СОМ. скейч поправил (внёс count = count + 0.333.....) и вот при вливании в УНО ругается нет 18СОМ, ну я все прошёл по порядку 1_10_12_31СОМ, но связи нет и после этого полез в подключённые устройства на ПК нашёл там чтото по наитию и теперь оно заработала на 31СОМ
0
спасибо огромное!!!
файл проверку прошёл. но увидеть красоту не удалось. к сожалению выпало устройство и порта 18СОМ нет, перескочил на 32 (предыдущая UNO уже отвёз ставить на воду). буду 18 искать.
увидеть красоту не удалось
0
В Вашем случае нужно чтоб переменная count была float, а не int и дробное значение отделяется не запятой, а точкой.

float count;

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

void loop() 
{
  count = count + 0.333;
  Serial.println(count, 3); // здесь после запятой пишется кол-во выводимых дробных знаков, то есть знаков после точки.
  delay(500);
}


Читать.
  • avatar
  • stD
0
сдается и правду пишут ардуино не такая уж замечательная вещь
Это пишут не умные люди.
Arduino — это обычный микроконтроллер Atmega328.

оно требует не поверхностного подхода
Разумеется. Если просто хочется помигать светодиодом, то это не требует никакого понимания, а если что-то сложное, то надо изучать основы программирования на СИ или С++.
Тем не мение, Ардуино (как концепция) вещь замечательная, и очень сильно снижает порог вхождения в программирование МК и если бы её не было, то Вам пришлось бы изучать среду AVR Studio и осваивать специальные программаторы. Вот здесь у меня есть статья на эту тему.
  • avatar
  • stD
0
после пляски с бубном — результат = 0
сдается и правду пишут ардуино не такая уж замечательная вещь.
оно требует не поверхностного подхода
0
да, я попробовал не прокатила — не считает
0
Для начала Вам необходимо изучить, что такое целочисленная переменная (int) и переменная с плавающей точкой (float).
  • avatar
  • stD
0
попробовал
count=count +0,333
нет счёта после запятой. беда
0
шикарно при получении СМС можно знать сколько по факту на счётчике и поэтому старт счёта с определённой цифры например 235, а не с нуля очень важно, а при необходимости можно позвонить на АРДУИНО или СМСнуть на него и получить данные и за одно проверка работоспособности системы на контроле.
ещё я не пробовал но наверно могу прибавлять не «1», а 0,78888 для точного счёта (калибровка счётчика).

 //http://forum.arduino.ua/viewtopic.php?id=456
 //https://istarik.ru/blog/arduino/68.html#comment766

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX pins   //  с модуля м590 TXD проводим в (ардуино на 2) а RXD на (3 ардуино)

//pinMode(13, OUTPUT);
//byte led = 13;
int count=0; // выделение памяти для переменной счетчика нажатий 
int val=0;// выделение памяти для переменной состояния порта
void setup() //процедура setup 
{ 

Serial.begin(9600);

  delay(100);  //500
  //pinMode(led, OUTPUT);
  //digitalWrite(led, LOW);
  Serial.begin(9600);  
  mySerial.begin(9600);
  Serial.println("GSM NEOWAY promote site istarik.ru");
  Serial.println();
  Serial.println("Turn on AOH:");
  mySerial.println("AT+CLIP=1");  // включить АОН
  delay(100);
  Serial.println("Text format sms:");
  mySerial.println("AT+CMGF=1"); // текстовый формат SMS
  delay(100);
  Serial.println("Mode GSM:");
  mySerial.println("AT+CSCS=\"GSM\"");  // кодировка текста - GSM
  delay(100);
 { pinMode(12, INPUT); //объявляем пин как вход 

   
  // ПРИ СТАРТЕ, НА КАЖДУЮ КОМАНДУ ДОЛЖНО БЫТЬ ПОДТВЕРЖДЕНИЕ - ОК
}
}

void loop() 
{
 while ( digitalRead(12)==LOW ); //в цикле ничего не делаем пока не изменится состояние порта с «0» на «1»
count=count +1; //когда изменилось состояние инкриминируем счетчик 

Serial.println( count); //выводим в порт
while ( digitalRead(12)==HIGH ); // ожидаем появление опять «0»

delay(200); //??? 100-регулируем от дребезга


     if(count == 1000) 
  { 
    sms(String(count), String("+79208558985")); // НОМЕР, на который отправляется смс 
     count = 0;    
  }
  



 if(mySerial.available()) //если модуль что-то послал
  {  
    char ch = ' ';
    String val = "";
    
    while(mySerial.available()) 
     {  
       ch = mySerial.read();
       val += char(ch); //собираем принятые символы в строку
       delay(5);
     }

    Serial.print("Neo send> ");
    Serial.println(val);
    
    if(val.indexOf("RING") > -1) //если есть входящий вызов, то проверяем номер
     { 
      if(val.indexOf("79208558985") > -1) // ВПИШИТЕ НОМЕР, с которого Вы будете звонить на модуль
       {  
         Serial.println("Call my phone");
         mySerial.println("ATH");  //разрываем связь
         Serial.println("Disconnection");
        delay(1000); //3000
        sms(String("что написать сдесь"), String("+79208558985")); // ВПИШИТЕ НОМЕР, на который позвонит модуль       
       
  }
     } 
  }
}


void sms(String text, String phone)  // отправка СМС
{
  Serial.println("Start SMS send");
  mySerial.println("AT+CMGS=\"" + phone + "\"");
  delay(100); //500
  mySerial.print(text);
  delay(100); //500
  mySerial.print((char)26);
  delay(100); //500
  Serial.println("SMS send OK");
  delay(500); //2000
}
0
Я не совсем понял Ваш вопрос, это первое, а второе — вставляйте код скетча в тег «код», это сверху кнопочка <>, а то каша получается.

код
  • avatar
  • stD
0
всё ОК!!! работает!!! кроме «led = 13;»
а может будете так любезны (плиз), сделайте поправки чтобы считал условно с 235 накопительно (не с начала, а всё больше и больше), а СМС отправлял периодически например каждые +10 импульсов и + при звонке на модуль
я пробовал сам но ничего путного не получилось.
за ранее спасибо. мой vicont73@rambler.ru

//http://forum.arduino.ua/viewtopic.php?id=456
//https://istarik.ru/blog/arduino/68.html#comment766

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);

byte led = 13;
int count=0; // выделение памяти для переменной счетчика нажатий
int val=0;// выделение памяти для переменной состояния порта
void setup() //процедура setup
{

Serial.begin(9600);

delay(500);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
Serial.begin(9600);
mySerial.begin(9600);
Serial.println(«GSM NEOWAY promote site istarik.ru»);
Serial.println();
Serial.println(«Turn on AOH:»);
mySerial.println(«AT+CLIP=1»); // включить АОН
delay(100);
Serial.println(«Text format sms:»);
mySerial.println(«AT+CMGF=1»); // текстовый формат SMS
delay(100);
Serial.println(«Mode GSM:»);
mySerial.println(«AT+CSCS=\»GSM\""); // кодировка текста — GSM
delay(100);
{ pinMode(12, INPUT); //объявляем пин как вход
// ПРИ СТАРТЕ, НА КАЖДУЮ КОМАНДУ ДОЛЖНО БЫТЬ ПОДТВЕРЖДЕНИЕ — ОК
}
}

void loop()
{
while ( digitalRead(12)==LOW ); //в цикле ничего не делаем пока не изменится состояние порта с «0» на «1»
count=count +1; //когда изменилось состояние инкриминируем счетчик

Serial.println( count); //выводим в порт
while ( digitalRead(12)==HIGH ); // ожидаем появление опять «0»

delay(100); //??? регулируем от дребезга

if(count == 10)
{
sms(String(count), String("+71111111111111")); // НОМЕР, на который отправляется смс
count = 0;
}

if(mySerial.available()) //если модуль что-то послал
{
char ch = ' ';
String val = "";
while(mySerial.available())
{
ch = mySerial.read();
val += char(ch); //собираем принятые символы в строку
delay(5);
}

Serial.print(«Neo send> „);
Serial.println(val);
if(val.indexOf(“RING») > -1) //если есть входящий вызов, то проверяем номер
{
if(val.indexOf(«71111111111111111») > -1) // ВПИШИТЕ НОМЕР, с которого Вы будете звонить на модуль
{
Serial.println(«Call my phone»);
mySerial.println(«ATH»); //разрываем связь
Serial.println(«Disconnection»);
delay(500); //3000
sms(String(«что написать сдесь»), String("+71111111111111")); // ВПИШИТЕ НОМЕР, на который позвонит модуль
}
}
}
}

void sms(String text, String phone) // отправка СМС
{
Serial.println(«Start SMS send»);
mySerial.println(«AT+CMGS=\»" + phone + "\"");
delay(100); //500
mySerial.print(text);
delay(100); //500
mySerial.print((char)26);
delay(100); //500
Serial.println(«SMS send OK»);
delay(500); //2000
}
0
Пожалуйста. Я думаю всё без «бубнов» обойдётся.
  • avatar
  • stD
0
спасибо!!!
на выходных (по танцую с бубном)
это будет дополнительный счетчик на воду, он же сигнализация утекания воды.
0
Импульсы от счетчика лучше повесить на прерывание, вот здесь подробно.



Если я всё правильно понял, то отправка наверно как-то так:

...
if(count == 10) 
  { 
    sms(String(count), String("+79919790861")); // НОМЕР, на который отправляется смс 
    count = 0;      
  }
...

Эту функцию вставить где-нибудь в loop`е.
  • avatar
  • stD