Format diagram.json
diagram.json mendeskripsikan rangkaian sebuah proyek: komponen di kanvas dan kabel di antaranya. Kamu bisa membaca dan mengeditnya di tab diagram.json pada editor; perubahan yang valid langsung diterapkan ke kanvas, dan perubahan yang tidak valid menampilkan pesan kesalahan tanpa mengubah apa pun.
Contoh
{
"version": 1,
"editor": "circzy",
"board": "uno",
"parts": [
{ "id": "uno", "type": "arduino-uno", "x": 0, "y": 0, "rotate": 0, "flip": false, "color": "", "value": "", "level": 0 },
{ "id": "led1", "type": "led", "x": 260, "y": -120, "rotate": 0, "flip": false, "color": "red", "value": "", "level": 0 },
{ "id": "r1", "type": "resistor", "x": 240, "y": -40, "rotate": 90, "flip": false, "color": "", "value": "220", "level": 0 }
],
"wires": [
{ "id": "w1", "from": { "partId": "uno", "pin": "13" }, "to": { "partId": "r1", "pin": "1" }, "color": "#1f9d48", "points": [] },
{ "id": "w2", "from": { "partId": "r1", "pin": "2" }, "to": { "partId": "led1", "pin": "A" }, "color": "#1f9d48", "points": [] },
{ "id": "w3", "from": { "partId": "led1", "pin": "C" }, "to": { "partId": "uno", "pin": "GND.1" }, "color": "#1c1c1c", "points": [{ "x": 300, "y": 40 }] }
]
}
Kolom tingkat atas
| Kolom | Tipe | Keterangan |
|---|---|---|
version | number | Versi format. Saat ini 1. |
editor | string | Selalu "circzy". |
board | string | ID board proyek: uno, nano, mega, esp32, d1mini-esp32, d1r32, nodemcu, nodemcu-amica, d1mini, pico, atau bluepill. |
parts | array | Komponen di kanvas, termasuk board. |
wires | array | Sambungan antar pin. |
Komponen
| Kolom | Tipe | Keterangan |
|---|---|---|
id | string | Wajib. Nama unik yang dipakai oleh kabel. |
type | string | Wajib. Jenis komponen, misalnya led, dht22, atau arduino-uno. Jenis setiap komponen tercantum di Ikhtisar Komponen. |
x, y | number | Posisi sudut kiri atas di kanvas, dalam piksel. |
rotate | number | 0, 90, 180, atau 270 derajat. |
flip | boolean | Mencerminkan komponen, untuk komponen yang mendukungnya. |
color | string | Opsi warna, misalnya red untuk LED atau blue untuk LCD. Kosong jika komponen tidak punya opsi warna. |
value | string | Opsi nilai: nilai resistor dalam ohm ("220"), teks catatan, UID kartu RFID, status saklar DIP ("01000000"), rentang logic analyzer, dan sebagainya. |
level | number | Status sebuah input atau nilai sensor utama: posisi potensiometer (0–1023), posisi saklar, pembacaan sensor. |
params | object | Nilai sensor tambahan, untuk komponen dengan beberapa slider, misalnya { "temperature": 24, "humidity": 40 } untuk DHT22. |
Diagram harus berisi board milik proyek, dan tidak boleh berisi board dengan jenis lain. Kolom opsional yang tidak ada akan diisi nilai bawaannya.
Kabel
| Kolom | Tipe | Keterangan |
|---|---|---|
id | string | Wajib. Nama unik. |
from, to | object | Kedua ujung: { "partId": "…", "pin": "…" }. Pin harus ada di komponen tersebut. |
color | string | Warna CSS. Editor memakai sepuluh warna kabel. |
points | array | Titik tekukan { "x", "y" } dalam koordinat kanvas, berurutan dari from ke to. Kosong untuk kabel langsung. |
Nama pin
Pin dinamai sesuai label yang tercetak di komponen: 13, A0, GND.1 di Arduino Uno; D21, 3V3 di ESP32 DevKit; VCC, GND, SDA, SCL di modul I²C; A dan C untuk anoda dan katoda LED; 1 dan 2 untuk kaki resistor. Jika beberapa pin punya nama yang sama, akhiran seperti .1 dan .2 membuatnya unik; pin dengan nama dasar yang sama saling terhubung.
Lubang breadboard dinamai <column><half>.<row>, misalnya 12t.a atau 5b.j, dan lubang jalur daya tp.3, tn.3, bp.3, dan bn.3.
Kesalahan validasi
| Pesan | Penyebab |
|---|---|
| JSON tidak valid | Teksnya bukan JSON yang valid. Periksa koma dan tanda kutip. |
| Harus berisi "parts" dan "wires" berupa array | Salah satu array tidak ada. |
parts[n]: "id" wajib diisi | Ada komponen tanpa ID. |
parts[n]: jenis komponen tidak dikenal | type bukan komponen Circzy. |
parts[n]: id dipakai lebih dari sekali | Dua komponen memakai ID yang sama. |
parts[n]: proyek ini memakai … | Ada board dengan jenis lain yang ditambahkan. |
| Diagram harus berisi … | Board milik proyek tidak ada. |
wires[n]: pin tidak ditemukan | Kabel merujuk ke komponen atau pin yang tidak ada. |
wires[n]: harus berisi "id", "from", dan "to" | Ada kabel yang tidak memiliki salah satu kolom wajibnya. |
wires[n]: id dipakai lebih dari sekali | Dua kabel memakai ID yang sama. |
wires[n]: titik tekukan harus berisi x dan y | Ada titik di points yang tidak lengkap. |
Siap mencoba?
Masuk dengan Google, pilih board, dan jalankan simulasi pertamamu dalam dua menit. Gratis selama masa peluncuran.
Mulai simulasi gratis