Python Forum
assign the variable to every value received serial from Arduino - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: assign the variable to every value received serial from Arduino (/thread-15808.html)



assign the variable to every value received serial from Arduino - barry76 - Feb-01-2019

Hi, I am continuously getting the output of the temperature sensor from Arduino is like

28.92
64.26
93.77
and I want to assign the variable to these values.
Need suggestion about how can I be able to assign the variable to these values?

Will be very helpful.


RE: assign the variable to every value received serial from Arduino - buran - Feb-01-2019

First of all, it's the other way around - you assign values to variables, not variables to values.
Second, because it's a constant stream of data, it's better to use some sort of data structure - e.g. list to store data into memory in a variable.
You may want to store data simultaneously in a database or write to file


RE: assign the variable to every value received serial from Arduino - barry76 - Feb-01-2019

Thanks for the reply,
Any kind of useful example which help?


RE: assign the variable to every value received serial from Arduino - buran - Feb-01-2019

Working with lists

show your code so far if you want more specific help


RE: assign the variable to every value received serial from Arduino - barry76 - Feb-01-2019

Hi, Mentioned below is my "Embedded C code" for temperature sensor connected to Arduino
#include<Wire.h>

// SHT25 I2C address is 0x40(64)
#define Addr 0x40

void setup()
{
  // Initialise I2C communication as MASTER
  Wire.begin();
  // Initialise serial communication, set baud rate = 9600
  Serial.begin(9600);
  delay(300);
}

void loop()
{
  unsigned int data[2];
  // Start I2C transmission
  Wire.beginTransmission(Addr);
  // Send humidity measurement command, NO HOLD master
  Wire.write(0xF5);
  // Stop I2C transmission
  Wire.endTransmission();
  delay(500);

  // Request 2 bytes of data
  Wire.requestFrom(Addr, 2);

  // Read 2 bytes of data
  // humidity msb, humidity lsb
  if(Wire.available() == 2)
  {
    data[0] = Wire.read();
    data[1] = Wire.read();

    // Convert the data
    float humidity = (((data[0] * 256.0 + data[1]) * 125.0) / 65536.0) - 6;

    // Output data to Serial Monitor
    Serial.println(humidity);

  }

  // Start I2C transmission
  Wire.beginTransmission(Addr);
  // Send temperature measurement command, NO HOLD master
  Wire.write(0xF3);
  // Stop I2C transmission
  Wire.endTransmission();
  delay(500);

  // Request 2 bytes of data
  Wire.requestFrom(Addr, 2);

  // Read 2 bytes of data
  // temp msb, temp lsb
  if(Wire.available() == 2)
  {
    data[0] = Wire.read();
    data[1] = Wire.read();

    // Convert the data
    float cTemp = (((data[0] * 256.0 + data[1]) * 175.72) / 65536.0) - 46.85;
    float fTemp = (cTemp * 1.8) + 32;

    // Output data to Serial Monitor
    Serial.println(cTemp);
    Serial.println(fTemp);
  }
  delay(300);
}
And This is My python code which I am using in my Laptop to receive the serial data:

import serial

ard = serial.Serial('COM4', 9600);
while True:
    k = ard.readline().decode('ascii') 
    print(k)


and my output is continuously mentioned as

20.79


69.42


90.01