Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

HTML script
http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=17328
Страница 1 от 1

Автор:  Grubi [ Пон Май 11, 2020 6:12 pm ]
Заглавие:  HTML script

Опитвам се да сложа този "виджет" в обикновен html файл, без особен успех... в тия гениални страници вече и copy/cut не можеш да направиш... Някой може ли да провери дали работи при него, трябва да се покаже един термометър


<div id='PurpleAirWidget_5926_module_TEMP_C_conversion_C0_average_10_layer_standard'>Loading PurpleAir Widget...</div>
<script src='https://www.purpleair.com/pa.widget.js?key=U5DLMSV2WVT4WE4M&module=TEMP_C&conversion=C0&average=10&layer=standard&container=PurpleAirWidget_5926_module_TEMP_C_conversion_C0_average_10_layer_standard'></script>

Автор:  bobyper [ Пон Май 11, 2020 7:00 pm ]
Заглавие:  Re: HTML script

Работи ама не винаги. Нещо често им се претоварва сервера

Като е претоварен отговаря с нещо такова
{"code":429, "message":"Rate limit exceeded. Try again in 8958 milli seconds."}

Автор:  Stoimen [ Пон Май 11, 2020 7:07 pm ]
Заглавие:  Re: HTML script

Работи, но както е написал колегата от втория третия път :)

Прикачени файлове:
Temp.jpg
Temp.jpg [ 29.03 KiB | Прегледано 10346 пъти ]

Автор:  Grubi [ Пон Май 11, 2020 7:22 pm ]
Заглавие:  Re: HTML script

Ясно, благодаря - а и моята връзка навън не е от най-бързите.
Е вижда се значи, все пак.

Това си е прост html - няма някакви други изчадия, нужни в кода на страницата?

Автор:  MYXATA [ Пон Май 11, 2020 7:39 pm ]
Заглавие:  Re: HTML script

Grubi написа:
Опитвам се да сложа този "виджет" в обикновен html файл, без особен успех... в тия гениални страници вече и copy/cut не можеш да направиш... Някой може ли да провери дали работи при него, трябва да се покаже един термометър


<div id='PurpleAirWidget_5926_module_TEMP_C_conversion_C0_average_10_layer_standard'>Loading PurpleAir Widget...</div>
<script src='https://www.purpleair.com/pa.widget.js?key=U5DLMSV2WVT4WE4M&module=TEMP_C&conversion=C0&average=10&layer=standard&container=PurpleAirWidget_5926_module_TEMP_C_conversion_C0_average_10_layer_standard'></script>


https://www.w3schools.com/code/tryit.as ... OZI8XQH4SE

copy - paste - test :)
работи си ти видгета

Автор:  Реконструктор [ Вто Май 12, 2020 10:07 am ]
Заглавие:  Re: HTML script

какъв ти е проблема да свалиш pa.widget.js локално?

Автор:  Grubi [ Вто Май 12, 2020 11:46 am ]
Заглавие:  Re: HTML script

никакъв, просто опитах да го сложа в някаква страница, и не захапа при мен - или поне не ми се чакаше повече.
какво - да сваля кода на това, то да се изпълнява локално и да си дърпа само данните?

Автор:  MYXATA [ Вто Май 12, 2020 4:05 pm ]
Заглавие:  Re: HTML script

Grubi написа:
никакъв, просто опитах да го сложа в някаква страница, и не захапа при мен - или поне не ми се чакаше повече.
какво - да сваля кода на това, то да се изпълнява локално и да си дърпа само данните?

може да си ро пуснеш локално
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>
<body>

<h1>Withc Bridge Inc.</h1>
<p>Grubi's widget test</p>

<div id='PurpleAirWidget_5926_module_TEMP_C_conversion_C0_average_10_layer_standard'>Loading PurpleAir Widget...</div>
<script src='https://www.purpleair.com/pa.widget.js?key=U5DLMSV2WVT4WE4M&module=TEMP_C&conversion=C0&average=10&layer=standard&container=PurpleAirWidget_5926_module_TEMP_C_conversion_C0_average_10_layer_standard'>
</script>
</body>
</html>

а виджета функцията му е:
!function .....
бахти функцията два тома:)
дръпни си я или да т я пратя

Автор:  Bai Ui [ Съб Май 04, 2024 9:56 am ]
Заглавие:  Re: HTML script

Колеги, имам следният проблем: поместил съм един пример на С за една IoT платчица с камера. Кодът прави така че платката се свързва с налична мрежа ( status = WiFi.begin(ssid, pass); ), взима кадри от камерата ( Camera.getImage(CHANNEL, &img_addr, &img_len);) и ги подава на IP адрес ако има отворена страница. Кадрите се подават като поток от jpg образи, които са насечени на пакети, на HTML език се нарича chunked transfer. Още в хедъра на трансфера се указва на браузъра че информацията ще се предава по тоя протокол и в резултат на това браузърът отваря образите на цял екран.
Проблемът е следния - опитвам се да форматирам по някакъв начин образа, да го поставя в рамка, да му задам големина и координати но не се получава. Вмъквам скриптовете във функцията (void sendHeader), но досега или скриптовете не правят абсолютно нищо или правят така че видеото да не работи. Пробвал съм следните тагове html, body, img без всякакъв успех. Някакви идеи?
Код:
/*  This example uses the camera to capture a JPEG image repeatedly,
*  and sends the images to a browser continuously using HTTP, creating the effect of a video.
*  Use Firefox to connect to the board's IP address after it has connected to WiFi,
*  or use the APP V7RC.

Example guide:
https://www.amebaiot.com/en/amebapro2-arduino-video-jpeg-http/
*/

#include <WiFi.h>
#include "VideoStream.h"

#define CHANNEL 0

// Use a pre-defined resolution, or choose to configure your own resolution
// Depending on your WiFi network quality, using HD resolution may lead to an inconsistent frame rate
//VideoSetting config(VIDEO_HD, CAM_FPS, VIDEO_JPEG, 1);
//VideoSetting config(VIDEO_VGA, CAM_FPS, VIDEO_JPEG, 1);
VideoSetting config(1024, 576, CAM_FPS, VIDEO_JPEG, 1);

char ssid[] = "Network_SSID";   // your network SSID (name)
char pass[] = "Password";       // your network password
int status = WL_IDLE_STATUS;
WiFiServer server(80);

uint32_t img_addr = 0;
uint32_t img_len = 0;

#define PART_BOUNDARY "123456789000000000000987654321"
char* STREAM_BOUNDARY = "\r\n--" PART_BOUNDARY "\r\n";
char* IMG_HEADER = "Content-Type: image/jpeg\r\nContent-Length: %lu\r\n\r\n";

void sendHeader(WiFiClient& client) {
    client.print("HTTP/1.1 200 OK\r\nContent-type: multipart/x-mixed-replace; boundary=");
    client.println(PART_BOUNDARY);
    client.print("Transfer-Encoding: chunked\r\n");
    client.print("\r\n");
}

void sendChunk(WiFiClient& client, uint8_t* buf, uint32_t len) {
    uint8_t chunk_buf[64] = {0};
    uint8_t chunk_len = snprintf((char*)chunk_buf, 64, "%lX\r\n", len);
    client.write(chunk_buf, chunk_len);
    client.write(buf, len);
    client.print("\r\n");
}

void setup() {
    Serial.begin(115200);
    while (status != WL_CONNECTED) {
        status = WiFi.begin(ssid, pass);
        //status = WiFi.apbegin("AmebaVideoAP", "1");
        delay(5000);
    }
    Camera.configVideoChannel(CHANNEL, config);
    Camera.videoInit();
    Camera.channelBegin(CHANNEL);

    server.begin();
}

void loop() {
    WiFiClient client = server.available();

    if (client) {
        Serial.println("new client connected");
        String currentLine = "";
        while (client.connected()) {
            if (client.available()) {
                char c = client.read();
                Serial.write(c);
                if (c == '\n') {
                    if (currentLine.length() == 0) {
                        sendHeader(client);
                        while (client.connected()) {
                            Camera.getImage(CHANNEL, &img_addr, &img_len);
                            uint8_t chunk_buf[64] = {0};
                            uint8_t chunk_len = snprintf((char*)chunk_buf, 64, IMG_HEADER, img_len);
                            sendChunk(client, chunk_buf, chunk_len);
                            sendChunk(client, (uint8_t*)img_addr, img_len);
                            sendChunk(client, (uint8_t*)STREAM_BOUNDARY, strlen(STREAM_BOUNDARY));
                            delay(5);   // Increase this delay for higher resolutions to get a more consistent, but lower frame rate
                        }
                        break;
                    } else {
                        currentLine = "";
                    }
                } else if (c != '\r') {
                    currentLine += c;
                }
            }
        }
        client.stop();
        Serial.println("client disonnected");
    } else {
        Serial.println("waiting for client connection");
        delay(1000);
    }
}


пп забравих да спомена - желателно е решението да е изцяло на HTML5 и CSS без java и питонски скриптове за да минава по дефолт през файъруоли и браузърски филтри.

Автор:  ДедоБоре [ Съб Май 04, 2024 12:41 pm ]
Заглавие:  Re: HTML script

MYXATA написа:
а виджета функцията му е:
!function .....
бахти функцията два тома:)


след nicify е само 12К реда.
отделно се викат модули и други скриптове (примерно ./utils.js), което вече не ми се изследва.

но това е модата. хората кодят вече не на кило, не с лопата, а кариерна фадрома.
и защо трябват все повече ядра, на все повече гигахерци и с все повече гига-/терабайти памет

Автор:  MYXATA [ Съб Май 04, 2024 6:04 pm ]
Заглавие:  Re: HTML script

Бай Хой,
Мисля есп32 имат пример с вебкамера. Пращаше къси видея или снимки.
Може да заимстваш код, или поне да видиш що не работи твоят...
За съжаление сега не мога да поровя, шото боядисвам яйцата и правим курабйки.... та жената няма да ме подкрепи морално ако се закопам в компутера :)

Автор:  palavrov [ Нед Май 05, 2024 10:09 pm ]
Заглавие:  Re: HTML script

Пробвай и с frame таг. Но по скоро ако може си направи читав видео стрийм.

Автор:  Bai Ui [ Пон Май 06, 2024 9:55 am ]
Заглавие:  Re: HTML script

palavrov написа:
Пробвай и с frame таг. Но по скоро ако може си направи читав видео стрийм.

За съжаление видео стрийминга не е опция защото вкарва голямо закъснение между устройството, което изработва образа и браузъра при визуализацията. Не става дума за образи от камера а за динамична графика на сигнал, нещо като осцилоскоп, FPGA изработва графиката като наслагва сигнали, маркери и текст в графична памет, после тази памет се изпраща като кадър през MIPI интерфейс към IoT процесора, също както камерата го прави в RGB raw формат. При изпращането на такъв "образ" кадър по кадър (jpeg) максималното закъснение е максимум 2 кадъра, което е почти незабележимо за окото при 30-40 кадъра в секунда, докато при видео стрийминга голяма част от видеото се буферира за да може да се обработи от браузъра. При предаването по HTTP под формата на пакети (chunked transfer) браузърът не трябва да знае големината на файла, който приема, т.е. мога динамично да променям резолюцията, съответно големината на образите от страна на предавателя без да го синхронизирам с приемника (браузъра).

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/