Secure Arduino over internet - automation

I am trying to create a system for controlling my home appliances using arduino over internet.
Arduino Uno will act as a web server and recieve the commands from remote browser.
In doing to I am not sure as how to protect arduino from unauthorized requests from web.
Is there a way to do this, or is there any library available for this. Please suggest.

What i suggest you is to do what a lot of people does, so: use a raspberry (or a beaglebone or another linux embedded board) for the web interface and the arduino for the sensors/actuators.
This way you can install a real webserver, with a lot more functionalities than the bare arduino. You can then interface the webpages to the serial port to send the arduino the commands

Related

how to generate HID get/set report requests to test a new usb device

I want to test my usb device firmware. I'm looking for a host tool to generate get/set reports to exercise my USB device. Handling INPUT requests and generating OUTPUT requests would be a bonus.
Are there any generic tools to send a USB message? Any python tools to recommend?
It seems like a pretty generic need but I havent found much in my web searches.

What is the exact function of an USB driver?

On reading many websites, I got confused.
Is the USB driver essential for making the device work? Or is it essential for making it communicate with the OS to do functions such as printing and doing other OS stuff?
To explain my question more clearly -
I am working on developing a USB device, that will communicate with the software i will write.
Do I need to develop a driver for such a system?
or
Do I just need the software program to send the proper messages to the device?
I am assuming your micro controller will be a USB device and your PC will be USB host.
The below diagram is the SW architecture for USB host. Now since your host is a PC, you do not need to worry about any part except the application at the top.
So lets talk about the device. What you need is a device stack which resembles with the host stack below. You can get the device stack easily and port it in your micro controller. But I suppose you need an application in your device too same as the top box of the below diagram which will understand the requests from the host and service the request.
So basically what I am saying that you need two applications and the rest of the components you can get it with some effort.
Regards.

What is the best way to send data to PC from "MCU + Wifi Module"?

I don't know anything about wireless protocols. With this quick setup i want to get inside. I just want to write a windows desktop application which receives only a couple of bytes of data from a mcu+wifi module "NodeMCU" which is connected to the same router. I can write a simple desktop app with visual studio. But sending data over ip has many methods as far as i read.
What is the simplest way to achieve? (I'm experienced in STM32 mcu's and electronics except internet protocols.)
You can send the data from the embedded board (with the mcu) to a TTL-To-WiFi module. Then from your PC application you should open a socket and connect to the module IP to listen in the correct port the data from your board.. There are a lot of module in the market used as "bridge" or converter: you have only to setup in it the local IP address, the destination IP (your PC) and the TCP port where you want to send data. From point of view of the board you use a standard USART and the message is sent to the destination IP. In your PC application you should be able to create a socket and connect it to the wi-fi module.

How to use Visual Basic, Mindstorms NXT and USB communication Altogether?

I have been researching for a couple of days, and i have not found anything I understand about sending direct commands to the NXT via USB. All of the tutorials I have found are based on Bluetooth communication, and the information I have found about USB is always like "Better change to bluetooth", or "Think about it as a COM port"
I had previously sent those commands via Bluetooth, but the connection fails too often to be useful, and is slower than USB.
USB connection is not detected as a COM port, but I know it is posible to control motors and get sensor input with a USB connection, because the LEGO software does so. It has that remote control feature that allows user to activate motors from the PC, and can read sensor input as well.
So, my question is, How can I send and recieve those direct commands via USB? and, Is there any way to do so in Visual Basic 2008?
You can use the MonoBrick Communication Library to do this. See http://www.monobrick.dk/software/monobrick/.
Alternately, you could use the Fantom driver from the official LEGO Software developer kit. http://www.lego.com/en-us/mindstorms/downloads/software/nxt-sdk/

Is it possible to determine usb protocol from an installed driver?

Just as the question states, the goal is to reverse engineer the protocol used by a device.
Let's say you have a webcam, an Arduino and an Arduino USB Host shield. You want to talk to that webcam, from which you don't know the protocol. Can it be done by monitoring USB data packets and by analyzing the driver installed for that device?
It would be a really interesting project.
Thanks in advance.
I often use a serial spy program to look at the conversation between two devices. In windows you can pay for it...
http://www.sinnovations.com/htdocs/serial-port-monitor.htm
In Linux it's free...
http://www.cyberciti.biz/faq/howto-monitor-data-on-a-serial-port-in-linux/