Здравствуйте. Помогите с кодом. Спойлер: Код ардуино Код (C++): #include <EtherCard.h> #define ANALOG_PIN A0 #define OUT_A 2 #define OUT_B 3 #define OUT_C 4 int r; // мак адрес вашего устройства static byte mymac[] = { 0x74, 0x69, 0x69, 0x2D, 0x30, 0x31 }; // ИП вашего устройства static byte myip[] = { 192, 168, 1, 200 }; byte Ethernet::buffer[500]; BufferFiller bfill; void setup () { pinMode(OUT_A, OUTPUT); pinMode(OUT_B, OUTPUT); pinMode(OUT_C, OUTPUT); Serial.begin(9600); // так как по умолчанию CS должен коннектиться к 8 порту, а у нас к 10 указываем это // (последний аргумент - номер порта) ether.begin(sizeof Ethernet::buffer, mymac, 10); ether.staticSetup(myip); } void loop () { digitalWrite(OUT_A, bitRead(1, 0)); digitalWrite(OUT_B, bitRead(1, 1)); digitalWrite(OUT_C, bitRead(1, 2)); r=analogRead(ANALOG_PIN); word pos = ether.packetLoop(ether.packetReceive()); if (pos){ bfill = ether.tcpOffset(); bfill.emit_p(PSTR( "HTTP/1.0 200 OK\r\n" "Content-Type: text/html\r\n" "\r\n" "<title>Gauge Test</title>" "<script>var CANV_GAUGE_FONTS_PATH = '<a href="http://test1.ru/canv-gauge-master/fonts" rel="nofollow">http://test1.ru/canv-gauge-master/fonts</a>'</script>" "<script src=\"<a href="http://test1.ru/canv-gauge-master/gauge.min.js%5C" rel="nofollow">http://test1.ru/canv-gauge-master/gauge.min.js\</a>"></script>" "<canvas id=\"gauge\"></canvas>" "<div id=\"console\"></div>" "<script src=\"<a href="http://test1.ru/canv-gauge-master/1.js%5C" rel="nofollow">http://test1.ru/canv-gauge-master/1.js\</a>"></script>" "<script>" "gauge.onready = function() {" "setInterval( function() {" //"gauge.setValue( Math.random() * 1200);" "gauge.setValue($D);" "}, 1000);" "};" "</script>" ), r); ether.httpServerReply(bfill.position()); } } Спойлер: Код 1.js Код (Java): var gauge = new Gauge({ renderTo : 'gauge', width : 200, height : 200, glow : true, units : 'Pin A0', title : false, minValue : 0, maxValue : 1200, majorTicks : ['100','200','300','400','500','600','700','800','900','1000','1100','1200'], minorTicks : 2, strokeTicks : false, highlights : [ { from : 0, to : 100, color : 'rgba(0, 255, 0, .15)' }, { from : 100, to : 200, color : 'rgba(255, 255, 0, .15)' }, { from : 200, to : 300, color : 'rgba(255, 30, 0, .25)' }, { from : 300, to : 400, color : 'rgba(255, 0, 225, .25)' }, { from : 400, to : 1200, color : 'rgba(0, 0, 255, .25)' } ], colors : { plate : '#222', majorTicks : '#f5f5f5', minorTicks : '#ddd', title : '#fff', units : '#ccc', numbers : '#eee', needle : { start : 'rgba(240, 128, 128, 1)', end : 'rgba(255, 160, 122, .9)' } } }); gauge.draw(); window.onresize= function() { gauge.updateConfig({ width : document.body.offsetWidth, height : document.body.offsetHeight }); }; Если включено "gauge.setValue( Math.random() * 1200);" Всё работает как и должно, стрелка прыгает в зависимости от генерированного числа. Если делаю "gauge.setValue($D);" То стрелка кажет показания пина A0, но не меняет его, только после перезагрузки странницы. Как исправить?Как сделать это динамическое обновление?
r=analogRead(ANALOG_PIN); это чтение происходит в void loop но ответ html ответ происходит только тогда, когда я захожу 192.168.1.200 И получается что я беру данные analogRead(ANALOG_PIN); только в момент обращения к 192.168.1.200 как сделать чтобы это значение analogRead(ANALOG_PIN); динамически отображалось на html страничке без её перезагрузки?
http://startingelectronics.org/projects/arduino-projects/web-server-two-temperature-gauges/ Нашёл статью, как раз то, что мне нужно. Но не понимаю как мне организовать передачу, html страницы у меня нет, она генерируется в коде ардуино