Skip to main content

how everything is connected (for now)

There are currently three different parts:

  • A "requester" client that will request for a door opening.
  • A single "target" client (the Raspberry Pi) that will receive requests
  • A central server that will relay the messages between the "requester" clients and "target" client

The messaging is done using WebSocket--really great stuff.

"Requester" Client
Currently just a simple PHP/JavaScript page that can send a textual message to the central server.

"Target" Client
A Python script that keeps an active WebSocket connection to the central server. As said above, this is executed in the Raspberry Pi.

Central Server
A Python script that listens for WebSocket messages. This uses the Tornado library for Python for creating the WebSocket server. This is executed in the Ubuntu web server.

I'll try to put more details as I go, but for now, I think this 10000-feet view is the better for catching up with the status logging.

Comments

Popular posts from this blog

pwm..

I just realized that the RPi.GPIO library (for programming the Raspberry Pi's input/output) already has PWM control, giving me a much more efficient control of duty cycles... At least the previous exercise ("duty cycle testing") refreshed me on it. PWM control on RPi.GPIO: http://code.google.com/p/raspberry-gpio-python/wiki/PWM

GPIO testing

Since the environment of the client-server-target is currently quite functional in the messaging standpoint, I decided to try connecting a simple LED light to the Raspberry Pi to see if it could "open" a door when the command is received. Installed the RPi.GPIO module (a Python module that gives the user command of the GPIO--General-Purpose Input/Output--ports in the Raspberry Pi) and connected the LED light to a GPIO pin. When the target received a request message, it would signal the GPIO pin to drive a current to the LED to light it up for 2 seconds. in main: if __name__ == "__main__":   GPIO.setmode(GPIO.BCM)   GPIO.setup(17, GPIO.OUT) in the on_message's request-received logic:      GPIO.output(17, True)      time.sleep(2)      GPIO.output(17, False) The video is a weak visual result. You can a click when the LED lights up; that was the sound of the key being pressed that sent the request message. Now, tim...

nodejs migration

Having been playing around with NodeJS recently,  I (naturally?) started re-writing some of the OpenSesame code using Node last night. I think I've only worked on it around 2 hours so far, but I've already set up a basic client interface (a socket.io chat tutorial rip) with a server that the Raspberry Pi can connect to and receive requests to open the door.  This is probably due to socket.io's socket management (socket.io is the WebSocket module for Node); for my first implementation, I had to manually write up a structure that managed sockets, but that is pretty much handled by socket.io. Also, the servo control logic is pretty much recycled (and the Raspberry Pi code is still Python), and I do remember spending some good time figuring that out.  Cool neverthelss. I'll probably keep both versions around.