| Ваш IP: 54.92.190.11 | Online(33) - гости: 21, боты: 12 | Загрузка сервера: 2.42 ::::::::::::

Управляем Arduino из PHP

В данном примере показана возможность взаимодействия php и  Arduino. Тест проводится на Ubuntu 14.04, установлен веб сервер Apachе 2, php 5.5. В тесте опробована включение и выключение цифрового выхода, а так же опрос состояния выхода при помощи php.

test.php

<meta charset="utf-8">
<table align='center' width="200" border='0' cellspacing='0' cellpadding='5'>

<form action="" method="post">
<td><button type="submit" name="on">Включить</button></td>
<td><button type="submit" name="off">Выключить</button><td>
</form>
<tr><td colspan="2"><center>
<?php
/* В терминале перед запуском скрипта выполните команду:
sudo chown www-data:www-data /dev/ttyUSB0                        
*/
$dev = "/dev/ttyUSB0";
exec("stty -F $dev 9600 raw -echo");
$f = fopen($dev,"w+");// открываем порт
if (!$f) die ("Ошибка!!! Порт не открылся!");

sleep(2);
// Отправка в порт
if (isset($_POST["on"])){fwrite($f,chr(49));echo"ON";}
if (isset($_POST["off"])){fwrite($f,chr(48));echo"OFF";}

sleep(2);
// чтение порта
while (fread($f, 1) != chr(0xA)){} // ждем ответа
$a = fgets($f);
echo "<br>Выход 13: ". $a;
  
fclose($f); // закрываем порт

?>

скетч

void setup(){
  Serial.begin(9600);
  pinMode(13, OUTPUT);
}
char Byte;

void loop(){
  if( Serial.available() > 0 ){
    Byte = Serial.read(); 
    if(Byte == '1'){
      digitalWrite(13,HIGH);
    }
    if(Byte == '0'){
      digitalWrite(13,LOW);
    }
  }
  Serial.println(digitalRead(13));// Отправляем каждые 1000 мс
   delay(1000);
}

Через порт при помощи php скрипта отправляются данные типа  char, соответственно chr(49) = 1, а chr(48) = 0, что соответствует коду символа в таблице кодировки символов ASCII. Перед отправкой данных происходит открытие порта, отправляются данные и порт закрывается. При этом на плате Arduino загорается или гаснет, в зависимости от команды светодиод подключенный к пину 13. Если это делается удаленно, то желательно получить обратную связь, нужно убедится в правильности работы Arduino, поэтому перед закрытием порта php скрипт ожидает ответ от Arduino. В скетче видно, что происходит запрос состояния пина 13 и отправка значения один раз в секунду в порт.

Изменив немного код можно передать значение напряжения поданного на вход А1 скрипту php.

Подадим напряжение 3,3 В на аналоговый вход А1 и измерим его при помощи php скрипта.

test.php

<meta charset="utf-8">
<table align='center' width="200" border='0' cellspacing='0' cellpadding='5'>

<form action="" method="post">
<td><button type="submit">Измерить напряжение на входе А1</button></td>
</form>
<tr><td colspan="2"><center>
<?php
/* В терминале перед запуском выполните команды:
sudo chown www-data:www-data /dev/ttyUSB0                        
*/
$dev = "/dev/ttyUSB0";
exec("stty -F $dev 9600 raw -echo");
$f = fopen($dev,"w+");// открываем порт
if (!$f) die ("Ошибка!!! Порт не открылся!");

sleep(2);
// чтение порта
while (fread($f, 1) != chr(0xA)){} // ждем ответа
$a = fgets($f);
echo "<br>Напряжение: ". $a. "В";
  
fclose($f); // закрываем порт

?>
</td><tr></table>

скетч

void setup(){
  Serial.begin(9600);
  pinMode(A1,INPUT);
}

float u;
int u1;

void loop(){
  u1=analogRead(A1);
  u=u1*5.0/1023;
  
  Serial.println(u);// Отправляем каждые 1000 мс
   delay(1000);
}

Добавить комментарий

Случайные статьи

  • К5300ЕХ025 — СТАБИЛИЗАТОР НАПРЯЖЕНИЯ С РАСШИРЕННЫМИ ФУНКЦИЯМИ УПРАВЛЕНИЯ

    К5300ЕХ025 — СТАБИЛИЗАТОР НАПРЯЖЕНИЯ С РАСШИРЕННЫМИ ФУНКЦИЯМИ УПРАВЛЕНИЯ

    К5300ЕХ025 – микросхема, предназначенная для использования в качестве линейного стабилизатора напряжения. Характеристики: Входное напряжение до 45В. Выходное напряжение 11,0 В Ток нагрузки: до 60 мА. Защита от короткого замыкания. Тепловая защита. Рабочий температурный диапазон от минус 60 °С до +125 °С Дополнительная регулировка внешним резистором выходного напряжения в диапазоне 11,0-15,0 В. Настраиваемый порог включения стабилизатора по …Подробнее...
  • УНЧ на TDA1904

    УНЧ на TDA1904

    Напряжение питания 4…20В Макс. потребляемый ток 2А Выходная мощность при Rн=4Ом, КНИ=10%: Uп=14В 4Вт Uп=12В 3,1Вт Uп=9В 1,8Вт Uп=6В 0,7Вт КНИ при Uп=9В мощность менее 1,2Вт и Rн=4Ом =0,3% Ток покоя 8…18мАПодробнее...
  • Hi-Fi усилитель для наушников

    Hi-Fi усилитель для наушников

    На рисунке показана схема Hi-Fi усилителя для наушников (моно) с выходной мощность 1 Вт. КНИ усилителя не более 0,1%. Частота пропускания от 10 до 30000 Гц. Усилитель обеспечивает выходную мощность 1 Вт на нагрузке 8 Ом при входном сигнале 500 мВ. Выходные транзисторы усилителя должны быть установлены на небольшие радиаторы. Источник …Подробнее...
  • Цифровой термометр на МК

    Цифровой термометр на МК

    Цифровой ИТ на МК с датчиком на интегральной микросхеме LM35, которая позволяет получить высокую линейность температурной зависимости протекающего через нее тока, разработан Р. Хименесом, Р. Салазаром и М. Улисесом (Electronic Design, July 2002). В основе схемы — микроконтроллер PIC16F872, программу которого можно скачать на сайте http://www.elecdesign.com/Files/29/2476/2476.zip. Индикатором служит сборка из …Подробнее...
  • Источник питания 0…30В 5А

    На рисунке показана схема источника питания с выходным напряжением от 0 до 30 В и максимальным током нагрузки 5А. В схеме используется микросхема LM723 и 4-е транзистора, два из которых силовые 2N3055.      Транзисторы 2N3055 должны быть установлены на радиаторы. Регулировка выходного напряжения осуществляется при помощи потенциометра VR1. Трансформатор должен иметь …Подробнее...