{
  "Config": {
    "Build": {
      "Board": "esp32:esp32:esp32:UploadSpeed=921600,CPUFreq=240,FlashFreq=80,FlashMode=qio,FlashSize=4M,PartitionScheme=no_fs,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default"
    }
  },
  "Units": [
    {
      "Name": "__OpenWireRootUnit__",
      "Selection": [
        "Arduino"
      ],
      "Links": [
        {
          "Routed": true,
          "Begin": {
            "ID": "HTTPClient1.OutputPin",
            "Y": 432,
            "X": 800
          },
          "Name": "TOWELink1",
          "End": {
            "ID": "Arduino.Modules._Item0.Sockets._Item0.InputPin",
            "Y": 416,
            "X": 976
          },
          "Points": [
            {
              "Y": 432,
              "X": 816
            },
            {
              "Y": 416,
              "X": 816
            }
          ]
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "HTTPClient1.Requests._Item0.Response.ContentOutputPin",
            "Y": 352,
            "X": 800
          },
          "Name": "TOWELink2",
          "End": {
            "ID": "CharToText1.InputPin",
            "Y": 912,
            "X": 256
          },
          "Points": [
            {
              "Y": 352,
              "X": 880
            },
            {
              "Y": 624,
              "X": 880
            },
            {
              "Y": 624,
              "X": 240
            },
            {
              "Y": 912,
              "X": 240
            }
          ]
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "Arduino.Modules._Item0.Sockets._Item0.OutputPin",
            "Y": 384,
            "X": 1216
          },
          "Name": "TOWELink3",
          "End": {
            "ID": "Delay1.StartInputPin",
            "Y": 384,
            "X": 1280
          }
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "Delay1.OutputPin",
            "Y": 384,
            "X": 1392
          },
          "Name": "TOWELink4",
          "End": {
            "ID": "CharToText1.ClockInputPin",
            "Y": 928,
            "X": 256
          },
          "Points": [
            {
              "Y": 384,
              "X": 1408
            },
            {
              "Y": 208,
              "X": 1408
            },
            {
              "Y": 208,
              "X": 896
            },
            {
              "Y": 640,
              "X": 896
            },
            {
              "Y": 640,
              "X": 224
            },
            {
              "Y": 928,
              "X": 224
            }
          ]
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "Delay1.OutputPin",
            "Y": 384,
            "X": 1392
          },
          "Name": "TOWELink5",
          "End": {
            "ID": "Arduino.Modules._Item0.Sockets._Item0.DisconnectInputPin",
            "Y": 384,
            "X": 976
          },
          "Points": [
            {
              "Y": 384,
              "X": 1408
            },
            {
              "Y": 208,
              "X": 1408
            },
            {
              "Y": 208,
              "X": 896
            },
            {
              "Y": 384,
              "X": 896
            }
          ]
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "Arduino.Modules._Item2.OutputPins._Pin0",
            "Y": 1136,
            "X": 1216
          },
          "Name": "TOWELink6",
          "End": {
            "ID": "Button1.InputPin",
            "Y": 400,
            "X": 496
          },
          "Points": [
            {
              "Y": 1136,
              "X": 1472
            },
            {
              "Y": 176,
              "X": 1472
            },
            {
              "Y": 176,
              "X": 464
            },
            {
              "Y": 400,
              "X": 464
            }
          ]
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "Button1.OutputPin",
            "Y": 400,
            "X": 576
          },
          "Name": "TOWELink7",
          "End": {
            "ID": "HTTPClient1.Requests._Item0.ClockInputPin",
            "Y": 400,
            "X": 656
          }
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "Delay2.OutputPin",
            "Y": 496,
            "X": 576
          },
          "Name": "TOWELink8",
          "End": {
            "ID": "HTTPClient1.Requests._Item0.ClockInputPin",
            "Y": 400,
            "X": 656
          },
          "Points": [
            {
              "Y": 496,
              "X": 608
            },
            {
              "Y": 400,
              "X": 608
            }
          ]
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "Delay2.OutputPin",
            "Y": 496,
            "X": 576
          },
          "Name": "TOWELink9",
          "End": {
            "ID": "Delay2.StartInputPin",
            "Y": 496,
            "X": 464
          },
          "Points": [
            {
              "Y": 496,
              "X": 592
            },
            {
              "Y": 608,
              "X": 592
            },
            {
              "Y": 608,
              "X": 448
            },
            {
              "Y": 496,
              "X": 448
            }
          ]
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "Start1.OutputPin",
            "Y": 496,
            "X": 416
          },
          "Name": "TOWELink10",
          "End": {
            "ID": "Delay2.StartInputPin",
            "Y": 496,
            "X": 464
          }
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "CharToText1.OutputPin",
            "Y": 912,
            "X": 384
          },
          "Name": "TOWELink11",
          "End": {
            "ID": "SplitJSON1.InputPin",
            "Y": 912,
            "X": 480
          }
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "SplitJSON1.Elements._Item1.OutputPin",
            "Y": 976,
            "X": 608
          },
          "Name": "TOWELink12",
          "End": {
            "ID": "Arduino.Modules._Item4.Elements._Item0.InputPin",
            "Y": 1200,
            "X": 976
          },
          "Points": [
            {
              "Y": 976,
              "X": 704
            },
            {
              "Y": 1200,
              "X": 704
            }
          ]
        },
        {
          "Routed": true,
          "Begin": {
            "ID": "SplitJSON1.Elements._Item4.OutputPin",
            "Y": 1184,
            "X": 608
          },
          "Name": "TOWELink13",
          "End": {
            "ID": "Arduino.Modules._Item4.Elements._Item1.InputPin",
            "Y": 1248,
            "X": 976
          },
          "Points": [
            {
              "Y": 1184,
              "X": 688
            },
            {
              "Y": 1248,
              "X": 688
            }
          ]
        }
      ],
      "*": [
        {
          "Name": "Arduino",
          "Width": 240,
          "Instance": {
            "Digital": {
              "*": [
                {
                  "+": "TArduinoCombinedTouchPullUpPullOpenDrainDownAnalogDigitalInterruptChannel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalSerial0Channel"
                },
                {
                  "+": "TArduinoCombinedTouchPullUpPullOpenDrainDownAnalogDigitalInterruptChannel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalSerial0Channel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalChannel"
                },
                {
                  "+": "TArduinoCombinedTouchPullDownAnalogDigitalSPI1InterruptChannel"
                },
                {
                  "+": "TArduinoCombinedTouchPullDownAnalogDigitalSPI1InterruptChannel"
                },
                {
                  "+": "TArduinoCombinedTouchPullUpPullOpenDrainDownAnalogDigitalInterruptChannel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalSerial2Channel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalSerial2Channel"
                },
                {
                  "+": "TArduinoCombinedTouchPullDownAnalogDigitalSPI0InterruptChannel"
                },
                {
                  "+": "TArduinoCombinedTouchPullDownAnalogDigitalSPI0InterruptChannel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalI2C0Channel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalI2C0Channel"
                },
                {
                  "+": "TArduinoCombinedTouchPullDownAnalogDigitalSPI0InterruptChannel"
                },
                {
                  "+": "TArduinoESP32CombinedPullDownAnalogDigitalDACChannel"
                },
                {
                  "+": "TArduinoESP32CombinedPullDownAnalogDigitalDACChannel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalChannel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalChannel"
                },
                {
                  "+": "TArduinoCombinedPullDownAnalogDigitalChannel"
                }
              ]
            },
            "Modules": {
              "*": [
                {
                  "+": "TArduinoESP32WiFiModule",
                  "Sockets": {
                    "*": [
                      {
                        "Name": "TCP Client1",
                        "DisconnectInputPin": {
                          "SourcePins": [
                            {
                              "ID": "__OpenWireRootUnit__.Delay1.OutputPin"
                            }
                          ]
                        },
                        "OutputPin": {
                          "SinkPins": [
                            {
                              "ID": "__OpenWireRootUnit__.Delay1.StartInputPin"
                            }
                          ]
                        },
                        "InputPin": {
                          "SourcePins": [
                            {
                              "ID": "__OpenWireRootUnit__.HTTPClient1.OutputPin"
                            }
                          ]
                        },
                        "Host": "api.quotable.io",
                        "+": "TArduinoESP32WiFiTCPClientSocket"
                      }
                    ]
                  },
                  "ESPNow": {
                    "PrimaryKey": {
                      "_Data": ""
                    }
                  },
                  "AccessPoints": {
                    "*": [
                      {
                        "SSID": "Asus",
                        "Name": "Access Point1",
                        "Password": "111",
                        "+": "TArduinoESP32WiFiModuleRemoteAccessPoint"
                      }
                    ]
                  }
                },
                {
                  "+": "TArduinoESP32MatterModule"
                },
                {
                  "OutputPins": {
                    "Form": "__OpenWireRootUnit__",
                    "Pins": [
                      {
                        "Type": "ptSource",
                        "SinkPins": [
                          {
                            "ID": "__OpenWireRootUnit__.Button1.InputPin"
                          }
                        ]
                      },
                      {
                        "Type": "ptSource"
                      },
                      {
                        "Type": "ptSource"
                      }
                    ]
                  },
                  "+": "TM5StackCoreESP32ButtonsModule"
                },
                {
                  "+": "TM5StackCoreESP32BuzzerModule"
                },
                {
                  "Elements": {
                    "*": [
                      {
                        "Size": 2,
                        "Wrap": true,
                        "Name": "Text Field1",
                        "InputPin": {
                          "SourcePin": {
                            "ID": "__OpenWireRootUnit__.SplitJSON1.Elements._Item1.OutputPin",
                            "Name": "__OpenWireRootUnit__.SplitJSON1.Elements.content.OutputPin"
                          }
                        },
                        "+": "TArduinoColorGraphicsElementTextFeld"
                      },
                      {
                        "Size": 2,
                        "Wrap": true,
                        "Name": "Text Field2",
                        "Y": 80,
                        "InputPin": {
                          "SourcePin": {
                            "ID": "__OpenWireRootUnit__.SplitJSON1.Elements._Item4.OutputPin",
                            "Name": "__OpenWireRootUnit__.SplitJSON1.Elements.author.OutputPin"
                          }
                        },
                        "+": "TArduinoColorGraphicsElementTextFeld"
                      }
                    ]
                  },
                  "+": "TM5StackCoreESP32DisplayModule"
                },
                {
                  "+": "TM5StackCoreESP32MicroSDModule"
                },
                {
                  "+": "TArduinoESP32_M5Stack_Core_GroveModule"
                },
                {
                  "+": "TArduinoEEPROMModule"
                },
                {
                  "+": "TArduinoESP32ProcessorModule"
                },
                {
                  "+": "TArduinoESP32BluetoothLEModule"
                }
              ]
            },
            "Serial": {
              "*": [
                {
                  "+": "TArduinoBreakHardwareSerial0"
                },
                {
                  "+": "TArduinoESP32DefinedPinsSerial1"
                },
                {
                  "+": "TArduinoESP32_M5Stack_Core_Serial2"
                }
              ]
            },
            "I2CChannels": {
              "*": [
                {
                  "+": "TArduinoESP32_Generic_I2C"
                },
                {
                  "+": "TArduinoESP32_Generic_I2C_2"
                }
              ]
            },
            "SPIChannels": {
              "*": [
                {
                  "+": "TArduinoESP32_Generic_SPI"
                },
                {
                  "+": "TArduinoESP32_Generic_SPI1"
                }
              ]
            },
            "BoardType": "M5 Stack Core",
            "+": "TArduinoBoard"
          },
          "X": 976,
          "Height": 2448,
          "Y": 288,
          "Type": "Component"
        },
        {
          "Name": "HTTPClient1",
          "Width": 144,
          "Instance": {
            "Requests": {
              "*": [
                {
                  "URL": "\/random",
                  "Name": "GET1",
                  "ClockInputPin": {
                    "SourcePins": [
                      {
                        "ID": "__OpenWireRootUnit__.Button1.OutputPin"
                      },
                      {
                        "ID": "__OpenWireRootUnit__.Delay2.OutputPin"
                      }
                    ]
                  },
                  "Response": {
                    "ContentOutputPin": {
                      "SinkPins": [
                        {
                          "ID": "__OpenWireRootUnit__.CharToText1.InputPin"
                        }
                      ]
                    }
                  },
                  "+": "TArduinoNetworkProtocolsHTTPClientRequestGET"
                }
              ]
            },
            "OutputPin": {
              "SinkPins": [
                {
                  "ID": "__OpenWireRootUnit__.Arduino.Modules._Item0.Sockets._Item0.InputPin",
                  "Name": "__OpenWireRootUnit__.Arduino.Modules.WiFi.Sockets.TCP Client1 [api.quotable.io:80].InputPin"
                }
              ]
            },
            "Host": "api.quotable.io",
            "+": "TArduinoNetworkProtocolsHTTPClient"
          },
          "X": 656,
          "Height": 192,
          "Y": 256,
          "Type": "Component"
        },
        {
          "Name": "CharToText1",
          "Width": 128,
          "Instance": {
            "ClockInputPin": {
              "SourcePins": [
                {
                  "ID": "__OpenWireRootUnit__.Delay1.OutputPin"
                }
              ]
            },
            "OutputPin": {
              "SinkPins": [
                {
                  "ID": "__OpenWireRootUnit__.SplitJSON1.InputPin"
                }
              ]
            },
            "InputPin": {
              "SourcePin": {
                "ID": "__OpenWireRootUnit__.HTTPClient1.Requests._Item0.Response.ContentOutputPin",
                "Name": "__OpenWireRootUnit__.HTTPClient1.Requests.GET1.Response.ContentOutputPin"
              }
            },
            "MaxLength": 300,
            "+": "TArduinoCharToText"
          },
          "X": 256,
          "Height": 96,
          "Y": 880,
          "Type": "Component"
        },
        {
          "Name": "Delay1",
          "Width": 112,
          "Instance": {
            "Interval": 2000000,
            "StartInputPin": {
              "SourcePins": [
                {
                  "ID": "__OpenWireRootUnit__.Arduino.Modules._Item0.Sockets._Item0.OutputPin",
                  "Name": "__OpenWireRootUnit__.Arduino.Modules.WiFi.Sockets.TCP Client1 [api.quotable.io:80].OutputPin"
                }
              ]
            },
            "OutputPin": {
              "SinkPins": [
                {
                  "ID": "__OpenWireRootUnit__.CharToText1.ClockInputPin"
                },
                {
                  "ID": "__OpenWireRootUnit__.Arduino.Modules._Item0.Sockets._Item0.DisconnectInputPin",
                  "Name": "__OpenWireRootUnit__.Arduino.Modules.WiFi.Sockets.TCP Client1 [api.quotable.io:80].DisconnectInputPin"
                }
              ]
            },
            "+": "TArduinoDelay"
          },
          "X": 1280,
          "Height": 64,
          "Y": 352,
          "Type": "Component"
        },
        {
          "Name": "SplitJSON1",
          "Width": 128,
          "Instance": {
            "Elements": {
              "*": [
                {
                  "Name": "dateAdded",
                  "+": "TArduinoSplitJSONTextElement"
                },
                {
                  "Name": "content",
                  "OutputPin": {
                    "SinkPins": [
                      {
                        "ID": "__OpenWireRootUnit__.Arduino.Modules._Item4.Elements._Item0.InputPin",
                        "Name": "__OpenWireRootUnit__.Arduino.Modules.Display.Elements.Text Field1.InputPin"
                      }
                    ]
                  },
                  "+": "TArduinoSplitJSONTextElement"
                },
                {
                  "Elements": {
                    "*": [
                      {
                        "+": "TArduinoSplitJSONTextArrayElement"
                      }
                    ]
                  },
                  "Name": "tags",
                  "+": "TArduinoSplitJSONArrayElement"
                },
                {
                  "Name": "_id",
                  "+": "TArduinoSplitJSONTextElement"
                },
                {
                  "Name": "author",
                  "OutputPin": {
                    "SinkPins": [
                      {
                        "ID": "__OpenWireRootUnit__.Arduino.Modules._Item4.Elements._Item1.InputPin",
                        "Name": "__OpenWireRootUnit__.Arduino.Modules.Display.Elements.Text Field2.InputPin"
                      }
                    ]
                  },
                  "+": "TArduinoSplitJSONTextElement"
                },
                {
                  "Name": "length",
                  "+": "TArduinoSplitJSONUnsignedElement"
                },
                {
                  "Name": "dateModified",
                  "+": "TArduinoSplitJSONTextElement"
                },
                {
                  "Name": "authorSlug",
                  "+": "TArduinoSplitJSONTextElement"
                }
              ]
            },
            "InputPin": {
              "SourcePin": {
                "ID": "__OpenWireRootUnit__.CharToText1.OutputPin"
              }
            },
            "+": "TArduinoSplitJSON"
          },
          "X": 480,
          "Height": 496,
          "Y": 880,
          "Type": "Component"
        },
        {
          "Name": "Button1",
          "Width": 80,
          "Instance": {
            "InputPin": {
              "SourcePin": {
                "ID": "__OpenWireRootUnit__.Arduino.Modules._Item2.OutputPins._Pin0",
                "Name": "__OpenWireRootUnit__.Arduino.Modules.Buttons.OutputPins.A"
              }
            },
            "OutputPin": {
              "SinkPins": [
                {
                  "ID": "__OpenWireRootUnit__.HTTPClient1.Requests._Item0.ClockInputPin",
                  "Name": "__OpenWireRootUnit__.HTTPClient1.Requests.GET1.ClockInputPin"
                }
              ]
            },
            "+": "TArduinoButton"
          },
          "X": 496,
          "Height": 48,
          "Y": 368,
          "Type": "Component"
        },
        {
          "Name": "Delay2",
          "Width": 112,
          "Instance": {
            "Interval": 20000000,
            "StartInputPin": {
              "SourcePins": [
                {
                  "ID": "__OpenWireRootUnit__.Delay2.OutputPin"
                },
                {
                  "ID": "__OpenWireRootUnit__.Start1.OutputPin"
                }
              ]
            },
            "OutputPin": {
              "SinkPins": [
                {
                  "ID": "__OpenWireRootUnit__.HTTPClient1.Requests._Item0.ClockInputPin",
                  "Name": "__OpenWireRootUnit__.HTTPClient1.Requests.GET1.ClockInputPin"
                },
                {
                  "ID": "__OpenWireRootUnit__.Delay2.StartInputPin"
                }
              ]
            },
            "+": "TArduinoDelay"
          },
          "X": 464,
          "Height": 64,
          "Y": 464,
          "Type": "Component"
        },
        {
          "Name": "Start1",
          "Width": 64,
          "Instance": {
            "OutputPin": {
              "SinkPins": [
                {
                  "ID": "__OpenWireRootUnit__.Delay2.StartInputPin"
                }
              ]
            },
            "+": "TArduinoStart"
          },
          "X": 352,
          "Height": 48,
          "Y": 464,
          "Type": "Component"
        }
      ],
      "Type": "Diagram"
    }
  ],
  "Version": "2",
  "Content": "OpenWire Diagram",
  "Product": "Visuino Pro - Visual Arduino Programming"
}
