Я хочу получить расстояние от ультразвукового датчика HC-Sr04 и цвет светодиода, отображаемого на моем ноутбуке через PHP
кто-нибудь может помочь, пожалуйста, я застрял здесь ..
заранее спасибо
Мой php код ..
<?php
echo "<p>Control Page</p><p>";
$port = fopen("COM4", "w+");
sleep(2);
?>
<br>
</form>
<?php
if ($_GET['distance']<30)
{
$data = $_GET['distance'];
echo '<td bgcolor="#FF0000"> red';
}
else if ($_GET['distance']>35){
$data = $_GET['distance'];
echo '<td bgcolor="#00FF00"> green';
}
else {
echo "Empty";
echo '<td bgcolor="#00FF00"> green';
}
fclose($port);
?>
</body>
</html>
мой код Arduino: …
#define trigPin 10
#define echoPin 2
#define led 4
#define led2 6
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
delay(1000);
distance = (duration/2) / 29.1;
if (distance < 30) { // This is where the LED On/Off happens
digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off
digitalWrite(led2,LOW);
}
else if(distance >35) {
digitalWrite(led,LOW);
digitalWrite(led2,HIGH);
}
else{
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
}
}
Я полагаю, вы работаете с Linux.
Прежде всего, вы должны настроить свой последовательный порт:
stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
Тогда вы можете использовать fread / fwrite
$fp =fopen("/dev/ttyACM0", "w+");
if( !$fp) {
echo "Error";die();
}
fwrite($fp, $_SERVER['argv'][1] . 0x00);
echo fread($fp, 10);
fclose($fp);
Arduino будет перезагружаться при каждом подключении.
Используйте последовательный монитор Arduino для отладки!
Удачи!
для получения дополнительной информации:
https://systemsarchitect.net/2013/01/26/connecting-php-with-arduino-via-serial-port-on-linux/
Других решений пока нет …