How to send/receive serial communication - serial-port

How can I send a string via serial communications from Java or Python? I have a very little arduino program that will recieve a CSV string of ints that each control different relays (I adapted it from their example).
I just got an Arduino, and I am trying to use it to open and close a relay remotely. I have it opening and closing the relay, no problem. But I really have no idea where to start as far as using serial communication.
I have a bluetooth dongle that I can connect to, but once I do that I'm lost.
Also, this is my first time using serial communications AND my first time using an Arduino. So I'm sorry if I am completely off on some of the things I am asking. All I know is what I've learned from Google.
Thank you very much

You can use any Java or Python serial port classes and methods. There is however one thing you need to be aware of.
The newer arduino's have a feature known as AutoReset. This works by connecting the DTR signal from the serial port to the Reset line on the chip using a capacitor or such. The IDE uses this to reset the board to activate the bootloader and initiate uploading code to the arduino. The serial monitor in the IDE is aware of this and does not toggle the DTR line when comunicating with the device (except when it initially connects).
There is are several ways to defeat this feature and you can read about them here.
As for actually comunicating with the device, there are several tutorials about serial communication in both Java and Python.
Pyserial includes the option to not use the DTR lines when opening a port.
Here is a website explaining how to use RXTX (a Java library) to comunicate with an Arduino
Best of luck.

Related

Two way Serial Communication not possible with Qt and Arduino

I am trying to do a sample application using Qt to communicate to Arduino board DUE.
But When one communication is started other is not able to connect,meaning when i start my Arduino first I am not able to start Qt application to read or write data and viceversa.
Can anybody tell me whether this is possible if Yes please help me in this and i ll try to post my sample code.
If I understand your question correctly, you want to be able to connect to your Arduino device (via its USB to RS232 converter) while the Arduino IDE, and thus, the serial monitor is running.
If that's the case, that is simply not possible. Not because of Qt, nor because of Arduino. That's the way serial ports work. You can't connect to the same port twice from different processes.
Since the microcontroller on the Arduino DUE has 4 UARTS, you may consider using one of them (with another USB to serial adapter, and thus, having another COM port showing up on your PC) to interface the board with your Qt application while the Arduino IDE is still connected to the "main" serial port.
Also, keep in mind that the Arduino Due works with 3.3 V, so ensure that the USB to serial adapter is compatbile with that voltage range.

ESP8266 Webster very that passes data to serial

Hello I am trying to get my ESP to run a webserver that will accept a string of text an output that text through a the uart serial pins to my arduino I can't find out how to do it I would apreshiate it
My seyup would be
Arduino connected to the esp through serial pins the esp would start a server and my pc would open the webserver and type in a string of text that string would transmit to the arduino
I can't comment yet, so I'll put this in an answer :)
What I understand is you want a simple 'webserver' on your ESP, that listens to simple GET requests, takes the query string, and sends that over the serial line to your Arduino.
Firstly, are you capable of flashing new firmware to the ESP?
It's not hard, but as I understand your request, you will need to be able to do it.
Then you need to pick what would be your preferred approach:
Flash NodeMcu firmware, and expand the webserver lua example to do what you want.
Set up the Arduino IDE to work with the ESP (tutorials exist), and write a Arduino sketch to do what you want.
You could also use esp-open-sdk, or the official Espressif SDK, and write what you want in C, but since you sound like a beginner, the two previous options are likley a better choice, their easier.
I expect the NodeMcu/lua way might be the quickest, although if you're already familiar with the Arduino IDE that might be a better choice.
If there are details you are stuck on, expand your question, and I'll see if I can stick them in the answer.

XBee AT communication between PC and Arduino

I need to send data (an integer) from an Arduino to a C program on a PC. I know that the connection is fine, because with X-CTU works perfectly. I need to do this in AT mode but I don't know how to start.
If you're using the XBee modules in AT mode, then it isn't much different than what you'd have to do with a direct serial cable connection between the Arduino and PC. Look for sample programs demonstrating serial communications for both platforms.
Having the connection working with X-CTU is an excellent starting point, since you have confirmed that the radio modules are communicating correctly.
On the PC, you might want to look at this Open Source XBee Host Library on GitHub. It includes a sample program called "xbee_term" that demonstrates a simple serial terminal for using an XBee in AT mode. It also has a layered API to allow for easy use of XBee modules in API mode -- which you would need to use if the PC was going to communicate with multiple Arduino nodes running in AT mode.
As for sending an int, you can use sprintf() to format it as a string to send over the wireless link, and strtol() to convert it back to an int on the PC end.

Serial Output to Arduino LED Display

I recently completed this project with my Arduino (a fairly new hobby for me):
http://www.instructables.com/id/Make-a-24X6-LED-matrix/?ALLSTEPS
I can change the code to make whatever messages I want scroll accross the matrix but I thought it might be cool to have live information, like stock quotes, scroll accross. I think I could figure out how to do that except I would like to use it at work where there are lots of firewalls in place and I doubt Arduino software is on the approved list of programs. Is it possible to send messages to the Arduino through a USB without installing any drivers?
No it is impossible because data in Arduino is sent via serial command, the USB is only for convenience, but arduino work with FTD driver that emulate a serial connection. You should choose another type of connection bluetooth or wifi.
Hope this help you.

WinUSB driver for Arduino

I'm using an Arduino to read data from the web and display it. I can easily pass the data as serial using the supplied drivers, because they identify the COM port so I can send serial to the COM port.
However, I want to use 'real' USB techniques so the device can be plugged in and out like a normal USB device. I'm looking at using WinUSB as the driver. However, USB is all new to me. Is there an .inf file that uses WinUSB and an Arduino (I have an Uno)?
The lack of information on this is making me think I am going about this incorrectly.
Turns out that an Arduino Uno is not a genuine USB device.
It acts as a Serial to USB adapter. Consequently USB drivers don't talk to it.
I got round this by writing a sketch which reported back what device it was when it got the correct query from the PC.
On the PC I just iterated the Serial ports and sent the query to each port. The one that replied was the Arduino.
After that I record the port number and send serial data to the Arduino.
To learn the USB portion, maybe you could combine V-USB and the UNO?
Check out V-USB.
V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.
While not necessarily Arduino, it may provide you the learning exprience you want, and let you use incorporate your UNO device.

Resources