External Ip access/portforwarding ( web controlled Rover) - Raspberry Pi Forums


after following post http://www.instructables.com/id/web-con ... /?allsteps able control rover on internal network without problem. port python script runs on :80, unfortunately port not work in network. needed change it. contacted programmer made rover , able give me , how change port. after doing , configuring router port forward still can not access rovers control page out net work. list code below. im building telepresence rover allow me interact twin boys when travel work. appreciated. keep in mind have built raspi controlled garage door opener external access. works fine out problems. garage door opener running apache if makes difference. rover running version of python. don't know if matters. last line of code posted line port located , changed.

code: select all

#!/usr/bin/env python  # # wifi/web driven rover # # written scott beasley - 2015 # # uses rpio, pyserial , flask #  import time import serial rpio import pwm flask import flask, render_template, request  app = flask (__name__, static_url_path = '')  # connect comm port talk roboclaw motor controller try:    # change baud rate here if diffrent 19200    roboclaw = serial.serial ('/dev/ttyama0', 19200) except ioerror:    print ("comm port not found")    sys.exit (0)  # speed , drive control variables last_direction = -1 speed_offset = 84 turn_tm_offset = 0.166 run_time = 0.750  # servo neutral position (home) servo_pos = 1250 servo = pwm.servo ( ) servo.set_servo (18, servo_pos)  # little dwell settling down time time.sleep (3)  # # uri handlers - bot page actions done here #  # send out bots control page (home page) @app.route ("/") def index ( ):    return render_template ('index.html', name = none)  @app.route ("/forward") def forward ( ):    global last_direction, run_time     print "forward"    go_forward ( )    last_direction = 0     # sleep 100ms + run_time    time.sleep (0.100 + run_time)     # if not continuous, halt after delay    if run_time > 0:       last_direction = -1       halt ( )     return "ok"  @app.route ("/backward") def backward ( ):    global last_direction, run_time     print "backward"    go_backward ( )    last_direction = 1     # sleep 100ms + run_time    time.sleep (0.100 + run_time)     # if not continuous, halt after delay    if run_time > 0:       last_direction = -1       halt ( )     return "ok"  @app.route ("/left") def left ( ):    global last_direction, turn_tm_offset     print "left"    go_left ( )    last_direction = -1     # sleep @1/2 second    time.sleep (0.500 - turn_tm_offset)     # stop    halt ( )    time.sleep (0.100)    return "ok"  @app.route ("/right") def right ( ):    global last_direction, turn_tm_offset     print "right"    go_right ( )     # sleep @1/2 second    time.sleep (0.500 - turn_tm_offset)    last_direction = -1     # stop    halt ( )    time.sleep (0.100)    return "ok"  @app.route ("/ltforward") def ltforward ( ):    global last_direction, turn_tm_offset     print "left forward turn"    go_left ( )     # sleep @1/8 second    time.sleep (0.250 - (turn_tm_offset / 2))    last_direction = -1     # stop    halt ( )    time.sleep (0.100)    return "ok"  @app.route ("/rtforward") def rtforward ( ):    global last_direction, turn_tm_offset     print "right forward turn"    go_right ( )     # sleep @1/8 second    time.sleep (0.250 - (turn_tm_offset / 2))    last_direction = -1     # stop    halt ( )    time.sleep (0.100)    return "ok"  @app.route ("/stop") def stop ( ):    global last_direction     print "stop"    halt ( )    last_direction = -1     # sleep 100ms    time.sleep (0.100)    return "ok"  @app.route ("/panlt") def panlf ( ):    global servo_pos     print "panlt"    servo_pos -= 100    if servo_pos < 500:       servo_pos = 500     servo.set_servo (18, servo_pos)     # sleep 150ms    time.sleep (0.150)    return "ok"  @app.route ("/panrt") def panrt ( ):    global servo_pos     print "panrt"    servo_pos += 100    if servo_pos > 2500:       servo_pos = 2500     servo.set_servo (18, servo_pos)     # sleep 150ms    time.sleep (0.150)    return "ok"  @app.route ("/home") def home ( ):    global servo_pos     print "home"    servo_pos = 1250     servo.set_servo (18, servo_pos)     # sleep 150ms    time.sleep (0.150)    return "ok"  @app.route ("/panfull_lt") def panfull_lt ( ):    global servo_pos     print "pan full left"    servo_pos = 500     servo.set_servo (18, servo_pos)     # sleep 150ms    time.sleep (0.150)    return "ok"  @app.route ("/panfull_rt") def panfull_rt ( ):    global servo_pos     print "pan full right"    servo_pos = 2500     servo.set_servo (18, servo_pos)     # sleep 150ms    time.sleep (0.150)    return "ok"  @app.route ("/speed_low") def speed_low ( ):    global speed_offset, last_direction, turn_tm_offset     speed_offset = 42    turn_tm_offset = 0.001     # update current direction new speed    if last_direction == 0:        go_forward ( )    if last_direction == 1:        go_backward ( )     # sleep 150ms    time.sleep (0.150)    return "ok"  @app.route ("/speed_mid") def speed_mid ( ):    global speed_offset, last_direction, turn_tm_offset     speed_offset = 84    turn_tm_offset = 0.166     # update current direction new speed    if last_direction == 0:        go_forward ( )    if last_direction == 1:        go_backward ( )     # sleep 150ms    time.sleep (0.150)    return "ok"  @app.route ("/speed_hi") def speed_hi ( ):    global speed_offset, last_direction, turn_tm_offset     speed_offset = 126    turn_tm_offset = 0.332     # update current direction new speed    if last_direction == 0:        go_forward ( )    if last_direction == 1:        go_backward ( )     # sleep 150ms    time.sleep (0.150)    return "ok"  @app.route ("/continuous") def continuous ( ):    global run_time     print "continuous run"    run_time = 0     # sleep 100ms    time.sleep (0.100)    return "ok"  @app.route ("/mid_run") def mid_run ( ):    global run_time     print "mid run"    run_time = 0.750    halt ( )     # sleep 100ms    time.sleep (0.100)    return "ok"  @app.route ("/short_time") def short_time ( ):    global run_time     print "short run"    run_time = 0.300    halt ( )     # sleep 100ms    time.sleep (0.100)    return "ok"  # # motor drive functions # def go_forward ( ):     global speed_offset      if speed_offset != 42:         roboclaw.write (chr (1 + speed_offset))         roboclaw.write (chr (128 + speed_offset))     else:         roboclaw.write (chr (127 - speed_offset))         roboclaw.write (chr (255 - speed_offset))  def go_backward ( ):     global speed_offset      if speed_offset != 42:         roboclaw.write (chr (127 - speed_offset))         roboclaw.write (chr (255 - speed_offset))     else:         roboclaw.write (chr (1 + speed_offset))         roboclaw.write (chr (128 + speed_offset))  def go_left ( ):     global speed_offset      if speed_offset != 42:         roboclaw.write (chr (127 - speed_offset))         roboclaw.write (chr (128 + speed_offset))     else:         roboclaw.write (chr (1 + speed_offset))         roboclaw.write (chr (255 - speed_offset))  def go_right ( ):     global speed_offset      if speed_offset != 42:         roboclaw.write (chr (1 + speed_offset))         roboclaw.write (chr (255 - speed_offset))     else:         roboclaw.write (chr (127 - speed_offset))         roboclaw.write (chr (128 + speed_offset))  def halt ( ):     roboclaw.write (chr (0))  if __name__ == "__main__" :    app.run (host = '0.0.0.0', port = 84, debug = true)

presumably have static ip rover?

also, think documentation recommends disabling debugging when allowing external access creates security risk.


raspberrypi



Comments

Popular posts from this blog

Connecting Raspberry Pi 2 to P10(1R)-V706 LED Dot Matrix - Raspberry Pi Forums

TypeError: <unknown> is not a numpy array - Raspberry Pi Forums

datso and removing imagetitle - Joomla! Forum - community, help and support