Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- /*********************************************************
- Global variables + Defines
- **********************************************************/
- typedef struct {
- int Dn;
- int Dm;
- int Dx;
- float Sn;
- float Sm;
- float Sx;
- float Ta;
- float Ua;
- float Pa;
- float Rc;
- float Sr;
- int Lux;
- int T;
- float La;
- float Lo;
- } wts;
- wts weather_packet;
- /*********************************************************
- Functions
- **********************************************************/
- void printWTSvalues(void)
- {
- Serial.print("Dn: ");
- Serial.println(weather_packet.Dn);
- Serial.print("Dm: ");
- Serial.println(weather_packet.Dm);
- Serial.print("Dx: ");
- Serial.println(weather_packet.Dx);
- Serial.print("Sn: ");
- Serial.println(weather_packet.Sn);
- Serial.print("Sm: ");
- Serial.println(weather_packet.Sm);
- Serial.print("Sx: ");
- Serial.println(weather_packet.Sx);
- Serial.print("Ta: ");
- Serial.println(weather_packet.Ta);
- Serial.print("Ua: ");
- Serial.println(weather_packet.Ua);
- Serial.print("Pa: ");
- Serial.println(weather_packet.Pa);
- Serial.print("Rc: ");
- Serial.println(weather_packet.Rc);
- Serial.print("Sr: ");
- Serial.println(weather_packet.Sr);
- Serial.print("Lux: ");
- Serial.println(weather_packet.Lux);
- Serial.print("T: ");
- Serial.println(weather_packet.T);
- Serial.print("La: ");
- Serial.println(weather_packet.La);
- Serial.print("Lo: ");
- Serial.println(weather_packet.Lo);
- }
- void getWeatherData(void)
- {
- char str[512];
- memset(str, 0, 512);
- char *field;
- char *pch;
- // Send R0 command and dump response into str
- Serial1.print("0R0\r\n");
- Serial1.readBytesUntil("\n", str, 512);
- Serial.println(str);
- field = strtok(str, ",");
- pch = strchr(field, '=');
- ++pch;
- weather_packet.Dn = atoi(pch);
- field = strtok(nullptr, ",");
- weather_packet.Dm = atoi(field);
- field = strtok(nullptr, ",");
- weather_packet.Dx = atoi(field);
- field = strtok(str, ",");
- weather_packet.Sn = atof(field);
- field = strtok(nullptr, ",");
- weather_packet.Sm = atof(field);
- field = strtok(nullptr, ",");
- weather_packet.Sx = atof(field);
- field = strtok(nullptr, ",");
- weather_packet.Ta = atof(field);
- field = strtok(nullptr, ",");
- weather_packet.Ua = atof(field);
- field = strtok(nullptr, ",");
- weather_packet.Pa = atof(field);
- field = strtok(nullptr, ",");
- weather_packet.Rc = atof(field);
- field = strtok(nullptr, ",");
- weather_packet.Sr = atof(field);
- field = strtok(nullptr, ",");
- weather_packet.Lux = atoi(field);
- field = strtok(nullptr, ",");
- weather_packet.T = atoi(field);
- field = strtok(nullptr, ",");
- weather_packet.La = atof(field);
- field = strtok(nullptr, ",");
- weather_packet.Lo = atof(field);
- printWTSvalues();
- }
- /*********************************************************
- Init
- **********************************************************/
- void setup()
- {
- Serial.begin(19200);
- Serial1.begin(19200);
- delay(2000);
- }
- /*********************************************************
- Loop
- **********************************************************/
- void loop()
- {
- getWeatherData();
- delay(5000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement