Jump to content

Recommended Posts

I forked a project from M. Schwartz in Adafruit about wifi controlled robot, and he uses local web server to access it. Now I wanted to the host online the server files. My only problem is this part of his php file

<?php

	// Load JSON state
    $string = file_get_contents("robot_state.json");
    $json_a= json_decode($string,true);

    // Handle GET request
    $json_a['speed'] = $_GET["speed"];
    $json_a['direction_left'] = $_GET["directionLeft"];
    $json_a['direction_right'] = $_GET["directionRight"];
	$json_a['reverse'] = $_GET["reverse"];
    // Save JSON file
    $fp = fopen('robot_state.json', 'w');
    fwrite($fp, json_encode($json_a));
    fclose($fp);

    // Create a TCP/IP socket & connect to the server
    $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    $result = socket_connect($socket, "192.168.1.6", "8888");

    // Request
    $in = "HEAD / HTTP/1.1\r\n";
    $in .= "Content-Type: text/html\r\n";
    $in .= $json_a['speed'] . "," . 
    $json_a['direction_left'] . "," .
    $json_a['direction_right'] . ",".
	$json_a['reverse'] . ",\r\n\r\n";
    $out = '';

    // Send request
    socket_write($socket, $in, strlen($in));

    // Read answer
    while ($out = socket_read($socket, 4096)) {
        echo $out;
    }

    // Close socket
    socket_close($socket);

?>

notice Line 19: socket_connect($socket, "192.168.1.6", "8888");

This is the part where it communicates to the wifi shield of the arduino. I know this simply wouldn't work now since this is only a private address and the files are now hosted in the internet. Can you guys teach me how to implement because I know this part of code will be quite different.

Edited by PassingLurker
Link to comment
https://forums.phpfreaks.com/topic/291895-ip-addressing-problem-in-php-file/
Share on other sites

Not sure but I'd assume you could just change 192.168.1.6 to the users actual IP Address (could use $_SERVER['REMOTE_ADDR'] to do this). However the user will then need to configure their router to forward port 8888 to their arduino's internal LAN address (192.168.1.6).

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.