Use Arduino para monitorear el bloqueo del proceso en la base de datos MSSQL



Un día abrí un agujero en el cerebro y lo rellené nuevamente. Hice un proceso para monitorear el bloqueo del proceso de la base de datos MSSQL que la compañía está usando. Siempre estás feliz de ser un jefe vivo que trabaja en una PC al precio de una o dos tazas de papá estrella. .

Este agujero cerebral es así: Arduino se conecta al módulo de red para acceder a la red de área local y regularmente (tentativamente 8 segundos) visita una página web. Esta página web se utiliza para detectar y devolver el número de bloqueos del proceso MSSQL en ese momento. Arduino recibe y analiza el resultado de retorno de la página web, si hay cero bloqueos, se enciende el LED verde; si hay 1-5 bloques, se enciende el LED verde y amarillo al mismo tiempo; si hay más de 5 bloques, se enciende amarillo y rojo simultáneamente; si solo La luz roja indica que hay un error en este pequeño sistema.

Por supuesto, debido a que se actualiza regularmente, habrá un cierto retraso de tiempo. En general, trata de ser un juguete conceptual primero.

Entonces, la pregunta central es cómo acceder a la página web y, por supuesto, la base básica es cómo acceder a la red.

Un tesoro obtuvo un módulo de red ENC28J60, trató de aprender uno. En primer lugar, por supuesto, el cableado, esto es relativamente claro, solo siga la definición de SPI.
Módulo-Arduino
SCK-D13
SO-D12
SI-D11
CS-D10 *
RST-RESET
GND-GND
VCC-3.3V **

Nota:
*: D10 se puede cambiar a otros, porque debe reflejarse En el código de inicialización.
**: 3.3V puede causar que la fuente de alimentación del módulo de red sea insuficiente para funcionar. El mío es así: si VCC está conectado a 3.3V de mi cabaña Arduino Nano, el voltaje medido entre VCC y GND del módulo es solo 2.8V. Puede usar la fuente de alimentación de 5V de esa casa de campo nano, pero 28J60 causará fiebre severa durante mucho tiempo. Estoy cortando un cable Dupont, y un 1N4007 está conectado en el medio para usar su caída de voltaje directo para dejarlo caer a VCC.

Conduce para encontrar lo que el vendedor quiere, tan fácil de usar. Pero mi situación actual es un poco más complicada: la red no es una red C estándar, y hay una puerta de enlace y DNS, así que verifiqué la información y utilicé el siguiente código al configurar la dirección IP:
static uint8_t mac [] = {0xF4, 0x8E , 0x38, 0xA4, 0x30, 0x31}; // Asegúrese de que 6 bytes sean suficientes, solo escríbalo. Pero el primer byte debe ser par.
const static uint8_t ip [] = {10, 16, 39, 40};
const static uint8_t gwip [] = {10, 16, 36, 1};
const static uint8_t dns [] = {172.16.10.12};
const static uint8_t subred [] = {255, 255, 252, 0}; La

secuencia de llamada es: ether.staticSetup (ip, gwip, dns, subred)

El código para acceder a la página web es de http://www.rogerclark.net/aurduino-ethercard- multiple-browser-request-example / . Es un poco complicado, pero es más completo y admite el acceso a múltiples páginas web a la vez. Teniendo en cuenta que puede haber esta demanda en el futuro, primero recibí este artículo.

En aras de la simplicidad y la conveniencia, y en conjunción con la arquitectura ASP.NET existente de la organización, la página web utiliza ashx, no es más que eso que necesita consultar el número de bloqueo actual y devolver este número. En principio, usar php no es un problema, de todos modos, puede devolver una secuencia de texto / sin formato. La siguiente dificultad después de obtener el contenido devuelto por ashx es cómo analizar los resultados que realmente desea. Debido a que los encabezados HTTP siempre existen, deben descartarse. Mi enfoque es utilizar la función lastIndexOf de la clase String para encontrar la posición del último "\ r" en todos los caracteres obtenidos e interceptar la posición +2 desde aquí hasta el final.

La pantalla LED no tiene nada que gastar, consume 3 puertos IO y se basa en la lógica empresarial digitalWrite de niveles alto y bajo.

El efecto es este:

Si esto está bajo el empaque de los Ocho Clásicos de Zhenger, entonces debería ser espectacular convertirlo en diecisiete u ochenta filas en una pared ~

122 artículos originales publicados · Me gusta 61 · Visitas 530,000+

Supongo que te gusta

Origin blog.csdn.net/ki1381/article/details/72721773
Recomendado
Clasificación