Срочно...написать код программы

Geka888
Offline
Зарегистрирован: 16.07.2018
Доброго дня!
Ребята, необходима ваша бесценная помощь в написание скетча.
Использую Arduino Mega 2560 R3.
Снизу представил схематично, чего я добиваюсь.
Принцип работы следующий:
При поступлении напряжения на A0(например, 1В), А1(например, 1.5В) первого канала и А2(например, 1.2В), А3(например, 1.8В)второго канала - ардуино обрабатывает принятую информацию по приницпу:
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей
 
void setup() {
  Serial.begin(9600); // инициируем СОМ порт
  lcd.init();                     
  lcd.backlight();// Включаем подсветку дисплея
  lcd.print(" KSV SWR METER");
  lcd.setCursor(6, 1);
  lcd.print("1.0");
  delay(3000); // задержка 1000 мс 
}
void loop() {
  int U1=0;// U прямое
  int U2=0;// U обратное
  int U12=0;// Сумма U
  float U21=0;// Разность U
  float KSV=0;// Значение отношения (КСВ)
  int Ur1 = analogRead(A0); // считываем значение U с аналогового входа 0
  int Ur2 = analogRead(A1); // считываем значение U с аналогового входа 1
  delay(50); // задержка 50 мс 
  int Ur3 = analogRead(A0); // считываем значение U с аналогового входа 0
  int Ur4 = analogRead(A1); // считываем значение U с аналогового входа 1
  delay(50); // задержка 50 мс 
  int Ur5 = analogRead(A0); // считываем значение U с аналогового входа 0
  int Ur6 = analogRead(A1); // считываем значение U с аналогового входа 1
  
  U1=(Ur1+Ur3+Ur5)/3; // присваиваем значение переменной
  U2=(Ur2+Ur4+Ur6)/3;// присваиваем значение переменной
  U12=U1+U2; // вычисляем сумму
  U21=U1-U2; // вычисляем разность
  KSV=U12/U21;// вычисляем отношение
lcd.setCursor(0, 0);
  // Устанавливаем курсор на первую строку и нулевой символ.
  lcd.print("PRA ");
  lcd.print(U1); // U прямое
  lcd.print(" OBR ");
  lcd.print(U2);// U обратное
  lcd.print("   ");
  lcd.setCursor(0, 1);
  lcd.print("KSV ");
  lcd.print(KSV);// Значение отношения (КСВ)
  lcd.print("       ");
 delay(500); // задержка 500 мс 
}
дальше, ардуина должна выводить информацию на дисплей с пересчитанными по формуле значениями. 
Также должна быть задействована тактовая кнопка вкл/выкл подсветки дисплея.
Также должна быть задействована тактовая кнопка переключения каналов для отображения на дисплее.
Дальше вся информация, о значениях(т.е. 2 значения просто 1 канал и 2 канал), должна поступать на ENC28J60 веб сервер, чтобы можно было подключиться ПК и посмотреть сразу эти 2 параметра.
Попасть на веб страницу, чтобы посмотреть наши значения, необходимо через авторизацию.
 
Ребят очень срочно надо, за 2-3 дня.
Я только учусь, ардуине и у меня много чего не получается, поэтому прошу помощи за вознаграждение.
Я думаю для специалистов это не проблема.
Пожалуйста отзовитесь, или подскажите к кому обратиться......
 
 
sadman41
Offline
Зарегистрирован: 19.10.2016

Кто вам эти ENC-и советует-то для таких прожектов...

wrk.sadman@gmail.com

man9913
Offline
Зарегистрирован: 19.03.2016

Предлагаю свои услуги в обмен на 10к если срочно, а если не срочно, то 7к

man9913@mail.ru

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

А не проще взять вместо ардуины ESP8266 ?

Зачем такое извращение для вашей простенькой программы - Мега да ещё с причиндалами. ESP и пересчитает всё и на сервер передаст. Про компактность и цену железа молчу. 

Ну я бы предложил за 500 р. но старожилы обидятся. :)

karamzin01
Offline
Зарегистрирован: 08.03.2018

Здравствуйте, проект интересный, пишите - обсудим , вот почта maslachenko767@mail.ru На руках есть компонентов для отладки вашей задачи

man9913
Offline
Зарегистрирован: 19.03.2016

skif, фига се ты жоско демпингуешь. Что совсем с заказами плохо, уже готов за еду? Даже, я бы сказал, за водУ.

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

man9913 пишет:

skif, фига се ты жоско демпингуешь. Что совсем с заказами плохо, уже готов за еду? Даже, я бы сказал, за водУ.

Та не. То я в шутку. Я не беру этот заказ. С сервером у меня туго. И за 10к не возьму. 

Вон и КАРАМЗИН в шутку предложил. 

man9913
Offline
Зарегистрирован: 19.03.2016

Skif, этот проект не так прост как кажется. Вот смотри, даже кнопки последовательно! с резюками включены. Или дисплей, например, без i2c преобразователя. Явно тут что-то высокотехнологичное, а значит военное и жутко дорогое! /s

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

man9913 пишет:

Skif, этот проект не так прост как кажется. Вот смотри, даже кнопки последовательно! с резюками включены. Или дисплей, например, без i2c преобразователя. Явно тут что-то высокотехнологичное, а значит военное и жутко дорогое! /s

Согласен. Непростая программа. Дорого стОит.

 Похожее изображение

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

skif пишет:

А не проще взять вместо ардуины ESP8266 ?

Зачем такое извращение для вашей простенькой программы - Мега да ещё с причиндалами. ESP и пересчитает всё и на сервер передаст. Про компактность и цену железа молчу. 

Ну я бы предложил за 500 р. но старожилы обидятся. :)


 

SKIF в этом разделе торговаться можно, если Вам тут работы на час - полчаса, то цена нормальная )))
PS тут меня радиолюбители просят радиолюбительский диплом реанимировать но уже в электронном виде, может возьмешься помочь, но денег могу собрать немного

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

А что такое радиолюбительский диплом ?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

man9913 пишет:

skif, фига се ты жоско демпингуешь. Что совсем с заказами плохо, уже готов за еду? Даже, я бы сказал, за водУ.

SKIF столько воды не выпьет, 19 литров 100 рублей, это если вода к примеру что-то типа АРХЫЗ

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

skif пишет:

А что такое радиолюбительский диплом ?

Это такая картинка в jpeg на которую надо нанести надпись из базы данных и пользователь её может себе скачать и распечатать

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

Сложно... Не возьмусь.

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

ua6em пишет:

man9913 пишет:

skif, фига се ты жоско демпингуешь. Что совсем с заказами плохо, уже готов за еду? Даже, я бы сказал, за водУ.

SKIF столько воды не выпьет, 19 литров 100 рублей, это если вода к примеру что-то типа АРХЫЗ

А если дошерак?

vvadim
Offline
Зарегистрирован: 23.05.2012

karamzin01 пишет:
Здравствуйте, проект интересный, пишите - обсудим , вот почта maslachenko767@mail.ru На руках есть компонентов для отладки вашей задачи

интересно, а карамзин первый по другому свои посты пишет или все под копирку .

по стилистике на звягинцева смахивает))))

skif
skif аватар
Offline
Зарегистрирован: 24.03.2015

Мне кажется он и ТЗ не читает, просто копирует старые сообщения. Вдруг какой лох ему предоплату сделает.

Green
Offline
Зарегистрирован: 01.10.2015

vvadim пишет:

karamzin01 пишет:
Здравствуйте, проект интересный, пишите - обсудим , вот почта maslachenko767@mail.ru На руках есть компонентов для отладки вашей задачи

интересно, а карамзин первый по другому свои посты пишет или все под копирку .

по стилистике на звягинцева смахивает))))


Вылитый Звягинцев.) И нейросети не надо.)))

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ua6em пишет:

Это такая картинка в jpeg на которую надо нанести надпись из базы данных и пользователь её может себе скачать и распечатать

А сервер какой? Если под масдай, то могу помочь, если что-нибудь линухоподобное - не хочу.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

ua6em пишет:

Это такая картинка в jpeg на которую надо нанести надпись из базы данных и пользователь её может себе скачать и распечатать

А сервер какой? Если под масдай, то могу помочь, если что-нибудь линухоподобное - не хочу.

могу развернуть любой, лучше конечно на любом виртуальном хостинге, мне для этого надо минуты три )))
База данных в кодировке UTF-8
Нашел пример, но всё одно без пинка в нужном направлении сам не одолею

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ua6em, совсем без напрягов я смогу сделать, чтобы серверный скрипт формировал PDF из MS-Word при помощи механизма Word-Merge и возвращал его (PDF) запросившему. Само собой, сервер должен быть под виндовс и там должен быть Word установлен. С линуксом я связываться не буду. Если есть смысл дальше говорить, откройте новую тему в отвлечённых, там сделаем.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

ua6em, совсем без напрягов я смогу сделать, чтобы серверный скрипт формировал PDF из MS-Word при помощи механизма Word-Merge и возвращал его (PDF) запросившему. Само собой, сервер должен быть под виндовс и там должен быть Word установлен. С линуксом я связываться не буду. Если есть смысл дальше говорить, откройте новую тему в отвлечённых, там сделаем.

Да без проблем, единственное денёчек-два потребуется развернуть виртуалку, на ней винду и на  ней денвер,
решение не очень защищенное, но я подумаю как его можно спрятать во внутренней сети и организовать запросы
Хотя денвер на винде уже есть на локальной машине, можно для пробы и так, тему открываю

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ua6em, нафига MS Word и прочие извращения? Ставь Open Server под винду, на попробовать - там и мускуль, и пыха в комплекте. Простейшими GD-функциями мона поверх картинки чего хочешь отрисовать, вот тебе пример: http://gardenboss.ru/informer/808ea91b7c7e5f759a4a566338bc98bd.png - там щас "нет данных", но весь текст выводится поверх простенькой PNG-картинки средствами PHP. На скачивание отдать - тоже элементарно, заголовок Content-Disposition. Если надо в PDF конвертить - опять же под пыхой есть FPDF: https://habr.com/post/31438/

Потом всё это добро ставится на любой нормальный виртуальный хостинг, без плясок с бубном.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Вот метод контроллера на Laravel, который отдаёт картинку с показаниями датчиков с БД. Чисто для понимания, что там для отрисовки - несколько функций, шрифты при этом - мона юзать TTF и практически любые:

   public function getInformer(Request $request, $id)
   {
	   
	   $channel = $this->findChannel($id);
	   
	   if(!$channel)
		   return;
	   
	   
	   
		$img = imagecreatefrompng(public_path() . '/img/informer.png');
	   
		$str = $channel->name;
		$size=8;
		$color=0;
		$fontbold = public_path() . '/fonts/arialbd.ttf';
		$font = public_path() . '/fonts/arial.ttf';
		
		$white = imagecolorallocate($img, 255, 255, 255);
		imagettftext ($img, $size, 0, 8, 16, $white, $fontbold, $str);
		

		$sensors = $channel->channel_sensors()->get();
		$series = [];

		
		foreach($sensors as $item)
		{
			
			$sensorsData = \App\Sensor::where('controller_id','=',$item['controller_id'])
			->where('sensor_index','=',$item['sensor_index'])
			->where('type','=',$item['sensor_type'])
			->orderBy('sensors.created_at','DESC')
			->take(1)
			->get()
			;
						
			
			$series[] = $sensorsData;
			
			
			if($item->sensor_type == 'humidity_humidity')  // для датчика влажности ещё температуру показывать!!!
			{ 
				
				$sensorsData = \App\Sensor::where('controller_id','=',$item['controller_id'])
				->where('sensor_index','=',$item['sensor_index'])
				->where('type','=','humidity_temperature')
				->orderBy('sensors.created_at','DESC')
				->take(1)
				->get()
				;
				
				$series[] = $sensorsData;

				
			}			
			
		} // foreach
				
		
		$count = min(count($series),3);
		
		$anyDrawing = false;
		
		$top = 38;
		for($i=0;$i<$count;$i++)
		{
			
			$data = $series[$i];
			if(count($data))
			{
				$sensor = $data[0];
				$anyDrawing = true;
				
				$unit = $sensor->unit;
				if(strstr($unit, '&#'))
					$unit = '°C';
				
				$strToDraw = ($i+1) . '. ' . $sensor->type_string;
				$left = 8;
				imagettftext ($img, $size, 0, $left, $top, $color, $font, $strToDraw);
				
				$left = 100;
				$strToDraw = $sensor->raw_data . ' ' . $unit;
				
				$box = imagettfbbox ( $size , 0 , $fontbold , $strToDraw );
				$left = 200 - ($box[4] - $box[6]) - 10;
				
				imagettftext ($img, $size, 0, $left, $top, $color, $fontbold, $strToDraw);
				
				$top += 16;

				
			}
			
		} // for
		
		if(!$anyDrawing)
		{
			// пустой информер
			$strToDraw = "<нет данных>";
			$box = imagettfbbox ( $size , 0 , $fontbold , $strToDraw );
			$left = (200 - ($box[4] - $box[6]))/2;
			
			imagettftext ($img, $size, 0, $left, 54, $color, $font, $strToDraw);
			
		}
		
		
		header("Content-Type: image/png");
		imagepng($img);
		imagedestroy($img);
		exit;
		
   }

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

.del

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DIYMan пишет:

Потом всё это добро ставится на любой нормальный виртуальный хостинг, без плясок с бубном.

Я преуспел пока только в установках ПО, вот ни разу не программер, собрать из кусков пожалуй смогу )))

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

А вебсервер удаленный?

Geka888
Offline
Зарегистрирован: 16.07.2018

Тема закрыта, спасибо всем...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

p.masyukov пишет:

А вебсервер удаленный?

если меня спросили, то да, доменное имя есть

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ua6em пишет:

если меня спросили, то да, доменное имя есть

Т.е. сам ты написать не сможешь, я правильно понял? Сейчас накидаю тебе простенький скриптец с комментариями.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ua6em пишет:

если меня спросили, то да, доменное имя есть

На гугльдиске: https://drive.google.com/file/d/1NaO_0aZZDWyRmmbHY8Hku36KSDPTu7FR/view?usp=sharing

Там в архиве файл шрифта, первый подвернувшийся PNG-файл, и скрипт, который пишет на картинке текст и выдаёт её в браузер. Есть закомментированная строчка - если её раскомментировать - будет выдаваться файл на скачивание. Думаю, разберешься, там несложно: названия переменных старался помнемоничнее делать, ну и кой-какие комментарии есть.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DIYMan пишет:

ua6em пишет:

если меня спросили, то да, доменное имя есть

Думаю, разберешься, там несложно: названия переменных старался помнемоничнее делать, ну и кой-какие комментарии есть.

Закинул, кое-что понимаю ))) но лучше, чтобы сохраняло в файл с другим именем и уже он был доступен для скачивания

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ua6em пишет:

DIYMan пишет:

ua6em пишет:

если меня спросили, то да, доменное имя есть

Думаю, разберешься, там несложно: названия переменных старался помнемоничнее делать, ну и кой-какие комментарии есть.

Закинул, кое-что понимаю ))) но лучше, чтобы сохраняло в файл с другим именем и уже он был доступен для скачивания

Сохранение на диск дописать - и всё. Примеров на PHP валом в гугле ;)