Skip to content

Instantly share code, notes, and snippets.

@zvakanaka
Created November 13, 2021 05:21
Show Gist options
  • Save zvakanaka/1abef748295b776d356ab05fa468b665 to your computer and use it in GitHub Desktop.
Save zvakanaka/1abef748295b776d356ab05fa468b665 to your computer and use it in GitHub Desktop.
Deserialize JSON using a cheap 433 Mhz reciever
#include <Arduino.h>
// version 6
#include <ArduinoJson.h>
// same version as dronebot 433 video
#include <RH_ASK.h>
#include <SPI.h>
RH_ASK rf_driver;
void setup() {
rf_driver.init();
Serial.begin(9600);
Serial.println("booted");
}
void loop() {
uint8_t buf[RH_ASK_MAX_MESSAGE_LEN]; // 60 last time I checked
uint8_t buflen = sizeof(buf);
if (rf_driver.recv(buf, &buflen)) {
// message received with valid checksum
// rf_driver.printBuffer("printBuffer:", buf, buflen);
// null terminate the buffer https://forum.arduino.cc/t/converting-a-uint8_t-buffer-to-char-array/556893/6
buf[buflen] = '\0';
Serial.println((char*)buf);
// https://arduinojson.org/v6/example/parser/
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, (char*)buf);
if (error) {
Serial.print(F("deserializeJson() failed: "));
Serial.println(error.f_str());
return;
}
const char* command = doc["command"];
Serial.print("command: ");
Serial.println(command);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment