Monitoreo SMS del peso de tres colmenas por 30$

Monitoreo SMS del peso de tres colmenas por 30$

No, esto no es una oferta comercial, así es el costo de los componentes del sistema que podrás montar después de leer el artículo.

Un poco de antecedentes:

Hace un tiempo decidí criar abejas, y efectivamente aparecieron... durante toda una temporada, pero no sobrevivieron al invierno.
Y esto a pesar de que aparentemente hice todo bien: alimentación en otoño, aislamiento antes del frío.
La colmena era una clásica de madera del sistema 'Dadant' con 10 cuadros de tablones de 40 mm.
Pero ese invierno, debido a las 'oscilaciones' de temperatura, incluso los apicultores experimentados perdieron mucho más de lo habitual.

Así surgió la idea de un sistema de monitoreo del estado de la colmena.
Después de publicar varios artículos en Habr y de interactuar en el foro de apicultores, decidí empezar de lo simple a lo complejo.
El peso es el único parámetro indiscutible, pero por lo general, los sistemas existentes monitorean solo una colmena 'de referencia'.
Si sucede algo con ella (por ejemplo, la salida de un enjambre, enfermedad de las abejas), los indicadores dejan de ser relevantes.

Así que se decidió monitorear el cambio de peso de tres colmenas a la vez con un solo microcontrolador, y añadir las otras 'ventajas' después.
Al final, se logró un sistema autónomo con un tiempo de funcionamiento de alrededor de un mes con una sola carga de batería 18650 y envío de estadísticas una vez al día.
Intenté simplificar la construcción al máximo, para que se pudiera reproducir incluso sin esquemas, solo con fotografías.

La lógica de funcionamiento es la siguiente: al primer encendido/reinicio, se almacenan en EEPROM las lecturas de los sensores instalados debajo de las colmenas.
Luego, cada día, después de la puesta de sol, el sistema 'despierta', lee las lecturas y envía un SMS con el cambio en el peso durante el día y desde el momento de encendido.
Además, se transmite el valor de la tensión de la batería, y al bajar a 3.5V, se emite una advertencia sobre la necesidad de carga, ya que por debajo de 3.4V el módulo de comunicación no se activa, y además las lecturas de peso ya 'fluctúan'.

"¿Recuerdas cómo empezó todo? Todo fue la primera vez y de nuevo."
Monitoreo SMS del peso de tres colmenas por 30$
Sí, exactamente ese fue el conjunto de 'hardware' inicialmente, aunque solo los sensores de carga y los cables llegaron a la versión final, pero todo a su debido tiempo.
En realidad, no necesitarás un rollo de cable, simplemente llegó a tener el mismo precio que 30m cortados.

Si no te asusta desmontar 3 LED SMD y media docena de puntos de soldadura convencional, ¡adelante!

Entonces, necesitaremos el siguiente conjunto de equipos/materiales:

  1. Arduino Pro Mini 3V
    Es importante prestar atención al chip del convertidor lineal: debe ser de 3.3V — en el chip debe aparecer la marca KB 33/LB 33/DE A10 — los chinos se equivocaron y toda la partida
    de placas en la tienda resultó ser con reguladores de 5 voltios y osciladores de 16MHz.
  2. USB-Ttl con chip CH340 — se puede usar incluso el de 5 voltios, pero entonces, durante la programación del microcontrolador, hay que desconectar Arduino del módulo GSM para no quemar este último.
    Las placas con chip PL2303 no funcionan en Windows 10.
  3. Módulo de comunicación GSM Goouu Tech IOT GA-6-B o AI-THINKER A-6 Mini.
    ¿Por qué me detuve en él? Neoway M590 — es un kit que requiere algunos pasos adicionales, al GSM SIM800L no me gustó el nivel de lógica no estándar de 2.8V, que necesita adaptadores incluso para Arduino de 3V.
    Además, la solución de AiThinker tiene un consumo de energía mínimo (cuando se envía un SMS no vi un consumo mayor de 100mA).
  4. Antena GSM GPRS 3DBI (en la foto anterior — la placa rectangular con un ‘rabito’, a las 9 en punto)
  5. Paquete inicial del operador que tenga buena cobertura en el lugar donde está su colmena.
    Sí, el paquete debe activarse previamente en un teléfono común, DESACTIVAR LA SOLICITUD DE PIN al ingresar y recargar la cuenta.
    Ahora hay muchas opciones con nombres como ‘Sensor’, ‘IoT’ — tienen una tarifa mensual un poco más baja.
  6. Cables dupont de 20cm macho-macho — 3 unidades (para conectar Arduino a USB-TTL)
  7. 3 unidades de HX711 — ADC para balanzas
  8. 6 celdas de carga para peso de hasta 50kg
  9. 15 metros de cable telefónico de 4 hilos — para conectar los módulos de peso con ARDUINO.
  10. Fotorresistor GL5528 (es importante que sea este, con una resistencia oscura de 1MΩ y una luminosa de 10-20kΩ) y dos resistores comunes de 20k
  11. Un trozo de cinta adhesiva 'gorda' doble cara de 18x18mm — para fijar el Arduino al módulo de comunicación.
  12. Un soporte para baterías 18650 y, en sí, la batería ~2600mAh.
  13. Un poco de cera o parafina (vela de té aromática) — para la protección contra la humedad del HX711
  14. Un pedazo de un bloque de madera de 25x50x300mm para la base de las celdas de carga.
  15. Una docena de tornillos autorroscantes con arandela de presión de 4.2x19 mm para fijar los sensores a la base.

Puedes obtener la batería de un portátil viejo — es mucho más barata que una nueva, y la capacidad será mayor que la de una UltraFire china — me salió 1500 frente a 450 (esto en el caso del Fire es 6800 😉

Además, se necesitarán manos diestros, un soldador EPSN-25, colofonia y soldadura POS-60.

Monitoreo SMS del peso de tres colmenas por 30$

Hace 5 años, usaba un soldador soviético con punta de cobre (no me convencieron las estaciones de soldadura: las probé y terminé con un esquema EPSN).
Pero después de que dejó de funcionar y tras varias horribles imitaciones chinas, la última se llamaba Sparta — tan dura como su nombre, me detuve
en un dispositivo con termostato.

¡Así que empecemos!

Monitoreo SMS del peso de tres colmenas por 30$

Primero, desoldamos dos LED del módulo GSM (el lugar donde estaban está marcado con un óvalo naranja)
Insertamos la tarjeta SIM con los contactos hacia la placa de circuito, el ángulo cortado en la foto está indicado con una flecha.

Monitoreo SMS del peso de tres colmenas por 30$

Luego, realizamos un procedimiento similar con el LED en la placa Arduino (óvalo a la izquierda del chip cuadrado),
Soldamos una barra de cuatro contactos (1),
Tomamos dos resistencias de 20k, retorcemos los terminales de un lado, soldamos el torcido en el agujero del contacto A5, los terminales restantes en RAW y GND de la Arduino (2),
Acortamos las patas del fotorresistor a 10 mm y lo soldamos en los terminales GND y D2 de la placa (3).

Ahora es el momento de la cinta adhesiva de doble cara — la pegamos en el soporte de la tarjeta SIM del módulo de comunicación, y encima — la Arduino — el botón rojo (plateado) está orientado hacia nosotros y se encuentra encima de la SIM.

Soldamos la alimentación: el positivo del condensador del módulo de comunicación (4) en el contacto RAW de la Arduino.
El hecho es que el módulo de comunicación requiere una alimentación de 3.4-4.2V, y su contacto PWR está conectado a un convertidor reductor (step-down), por lo que para funcionar con li-ion, la tensión debe ser suministrada omitiendo esta parte del circuito.

En la Arduino, en cambio, introducimos la alimentación a través de un convertidor lineal — con corrientes bajas, la caída de tensión drop-out es de 0.1V.
Sin embargo, al suministrar tensión estabilizada a los módulos HX711, nos libramos de la necesidad de modificarlos para un voltaje más bajo (y además de aumentar el ruido como resultado de dicha operación).

Luego, soldamos puentes (5) entre los contactos PWR-A1, URX-D4 y UTX-D5, la 'tierra' GND-G (6) y finalmente la alimentación del soporte de baterías 18650 (7), conectamos la antena (8).
Ahora tomamos un convertidor USB-TTL y conectamos los cables Dupont a la ARDUINO (barra 1) en los contactos RXD-TXD y TXD-RXD, GND-GND:

Monitoreo SMS del peso de tres colmenas por 30$

En la foto anterior — la primera versión (de tres) del sistema, que se utilizó para depuración.

Ahora nos desviaremos del soldador por un tiempo y pasaremos a la parte de software.
Voy a describir la secuencia de acciones para Windows:
Primero, necesitas descargar e instalar/descomprimir el programa Arduino IDE — la versión actual es — 1.8.9, pero yo uso 1.6.4

Para simplificar, descomprimimos el archivo en la carpeta C:arduino-«número_de_tu_versión», donde tendremos las carpetas /dist, drivers, examples, hardware, java, lib, libraries, reference, tools, así como el archivo ejecutable arduino (además de otros).

Ahora necesitamos una biblioteca para trabajar con el ADC HX711 — el botón verde «clone or download» — download ZIP.
El contenido (carpeta HX711-master) se coloca en el directorio C:arduino-«número_de_tu_versión»libraries

Y, por supuesto, necesitamos el controlador para USB-TTL del mismo github — desde el archivo descomprimido simplemente ejecutamos el instalador con el archivo SETUP.

Ok, iniciamos y configuramos el programa C:arduino-«número_de_tu_versión»arduino

Monitoreo SMS del peso de tres colmenas por 30$

Vamos a la opción «Herramientas» - seleccionamos la placa «Arduino Pro o Pro Mini», procesador Atmega 328 3.3V 8 MHz, puerto — número diferente de COM1 (aparece después de instalar el controlador CH340 con el adaptador USB-TTL conectado)

Ok, copiamos el siguiente sketch (programa) y lo pegamos en la ventana de Arduino IDE

char phone_no[]="+123456789012"; // Your phone number that receive SMS with counry code 
#include <avr/sleep.h>  // ARDUINO sleep mode library
#include <SoftwareSerial.h> // Sofrware serial library
#include "HX711.h" // HX711 lib. https://github.com/bogde/HX711
#include <EEPROM.h> // EEPROM lib.
HX711 scale0(10, 14);
HX711 scale1(11, 14);
HX711 scale2(12, 14);
#define SENSORCNT 3
HX711 *scale[SENSORCNT];

SoftwareSerial mySerial(5, 4); // Set I/O-port TXD, RXD of GSM-shield  
byte pin2sleep=15; //  Set powerON/OFF pin

float delta00; // delta weight from start
float delta10;
float delta20;
float delta01; // delta weight from yesterday
float delta11;
float delta21;

float raw00; //raw data from sensors on first start
float raw10;
float raw20;
float raw01; //raw data from sensors on yesterday
float raw11;
float raw21;
float raw02; //actual raw data from sensors
float raw12;
float raw22;

word calibrate0=20880; //calibration factor for each sensor
word calibrate1=20880;
word calibrate2=20880;

word daynum=0; //numbers of day after start

int notsunset=0;

boolean setZero=false;

float readVcc() { // Read battery voltage function
  long result1000;
  float rvcc;  
  result1000 = analogRead(A5);
  rvcc=result1000;
  rvcc=6.6*rvcc/1023;
  return rvcc;
}

void setup() { // Setup part run once, at start

  pinMode(13, OUTPUT);  // Led pin init
  pinMode(2, INPUT_PULLUP); // Set pullup voltage
  Serial.begin(9600);
  mySerial.begin(115200); // Open Software Serial port to work with GSM-shield
  pinMode(pin2sleep, OUTPUT);// Itit ON/OFF pin for GSM
  digitalWrite(pin2sleep, LOW); // Turn ON modem
  delay(16000); // Wait for its boot 

scale[0] = &scale0; //init scale
scale[1] = &scale1;
scale[2] = &scale2;

scale0.set_scale();
scale1.set_scale();
scale2.set_scale();

delay(200);

setZero=digitalRead(2);

if (EEPROM.read(500)==EEPROM.read(501) || setZero) // first boot/reset with hiding photoresistor
//if (setZero)
{
raw00=scale0.get_units(16); //read data from scales
raw10=scale1.get_units(16);
raw20=scale2.get_units(16);
EEPROM.put(500, raw00); //write data to eeprom
EEPROM.put(504, raw10);
EEPROM.put(508, raw20);
for (int i = 0; i <= 24; i++) { //blinking LED13 on reset/first boot
    digitalWrite(13, HIGH);
    delay(500);
    digitalWrite(13, LOW);
    delay(500);
  }
}
else {
EEPROM.get(500, raw00); // read data from eeprom after battery change
EEPROM.get(504, raw10);
EEPROM.get(508, raw20);
digitalWrite(13, HIGH); // turn on LED 13 on 12sec. 
    delay(12000);
digitalWrite(13, LOW);
}

delay(200); // Test SMS at initial boot

//
  mySerial.println("AT+CMGF=1");    //  Send SMS part
  delay(2000);
  mySerial.print("AT+CMGS="");
  mySerial.print(phone_no); 
  mySerial.write(0x22);
  mySerial.write(0x0D);  // hex equivalent of Carraige return    
  mySerial.write(0x0A);  // hex equivalent of newline
  delay(2000);
  mySerial.println("INITIAL BOOT OK");
  mySerial.print("V Bat= ");
  mySerial.println(readVcc());
 if (readVcc()<3.5) {mySerial.print("!!! CHARGE BATTERY !!!");}
  delay(500);
  mySerial.println (char(26));//the ASCII code of the ctrl+z is 26
  delay(3000);

//  

raw02=raw00;
raw12=raw10;
raw22=raw20;

//scale0.power_down(); //power down all scales 
//scale1.power_down();
//scale2.power_down();

}

void loop() {

  attachInterrupt(0, NULL , RISING); // Interrupt on high lewel
  set_sleep_mode(SLEEP_MODE_PWR_DOWN); //Set ARDUINO sleep mode
  digitalWrite(pin2sleep, HIGH); // Turn OFF GSM-shield
  delay(2200);
  digitalWrite(pin2sleep, LOW); // Turn OFF GSM-shield
  delay(2200);
  digitalWrite(pin2sleep, HIGH);
  digitalWrite(13, LOW);
  scale0.power_down(); //power down all scales 
  scale1.power_down();
  scale2.power_down();
  delay(90000);
  sleep_mode(); // Go to sleep
  detachInterrupt(digitalPinToInterrupt(0)); // turn off external interrupt

  notsunset=0;
 for (int i=0; i <= 250; i++){
      if ( !digitalRead(2) ){ notsunset++; } //is a really sunset now? you shure?
      delay(360);
   }
  if ( notsunset==0 )
  { 
  digitalWrite(13, HIGH);
  digitalWrite(pin2sleep, LOW); // Turn-ON GSM-shield
  scale0.power_up(); //power up all scales 
  scale1.power_up();
  scale2.power_up();
  raw01=raw02;
  raw11=raw12;
  raw21=raw22;
  raw02=scale0.get_units(16); //read data from scales
  raw12=scale1.get_units(16);
  raw22=scale2.get_units(16);

  daynum++; 
  delta00=(raw02-raw00)/calibrate0; // calculate weight changes 
  delta01=(raw02-raw01)/calibrate0;
  delta10=(raw12-raw10)/calibrate1;
  delta11=(raw12-raw11)/calibrate1; 
  delta20=(raw22-raw20)/calibrate2;
  delta21=(raw22-raw21)/calibrate2;

  delay(16000);
  mySerial.println("AT+CMGF=1");    //  Send SMS part
  delay(2000);
  mySerial.print("AT+CMGS="");
  mySerial.print(phone_no); 
  mySerial.write(0x22);
  mySerial.write(0x0D);  // hex equivalent of Carraige return    
  mySerial.write(0x0A);  // hex equivalent of newline
  delay(2000);
  mySerial.print("Turn ");
  mySerial.println(daynum);
  mySerial.print("Hive1  ");
  mySerial.print(delta01);
  mySerial.print("   ");
  mySerial.println(delta00);
  mySerial.print("Hive2  ");
  mySerial.print(delta11);
  mySerial.print("   ");
  mySerial.println(delta10);
  mySerial.print("Hive3 ");
  mySerial.print(delta21);
  mySerial.print("   ");
  mySerial.println(delta20);

  mySerial.print("V Bat= ");
  mySerial.println(readVcc());
  if (readVcc()<3.5) {mySerial.print("!!! CHARGE BATTERY !!!");}
  delay(500);
  mySerial.println (char(26));//the ASCII code of the ctrl+z is 26
  delay(3000);

  }

}

En la primera línea, en comillas char phone_no[]=»+123456789012″; — en lugar de 123456789012, pon tu número de teléfono con el código del país al que se enviarán los SMS.

Ahora presionamos el botón de verificar (donde está el número uno en la captura de pantalla anterior) — si abajo (debajo del número tres en la captura) dice «Compilación completada» — podemos cargar el firmware en el microcontrolador.

Así, el USB-TTL está conectado a la ARDUINO y al computador, ponemos la batería cargada en el soporte (normalmente, al encender una nueva placa arduino, el LED empieza a parpadear a una frecuencia de una vez por segundo).

Ahora vamos a la carga — practiquemos presionar el botón rojo (plateado) del microcontrolador — esto debe hacerse exactamente en el momento correcto!!!
¿Listo? Presionamos el botón «Cargar» (sobre el número dos en la captura de pantalla) y observamos atentamente la línea en la parte inferior de la interfaz (debajo del número tres de la captura).
En cuanto la frase «compilación» cambie a «carga» — presionamos el botón rojo (reset) — si todo está bien — las luces del adaptador USB-TTL parpadean alegremente, y en la parte inferior de la interfaz dice «Cargado»

Ahora, mientras esperamos la llegada del SMS de prueba en el teléfono, explicaré cómo funciona el programa:

Monitoreo SMS del peso de tres colmenas por 30$

En la foto — la segunda versión del banco de pruebas.

Al encender por primera vez, el sistema compara los bytes número 500 y 501 de la EEPROM. Si son iguales, significa que los datos de calibración no están registrados, y el algoritmo pasa a la sección de configuración.
Lo mismo ocurre si, al encender, el fotorreceptor está cubierto (con una tapa de bolígrafo): se activa el modo de reinicio de parámetros.

Los sensores de tensión ya deben estar instalados debajo de las colmenas, ya que solo estamos fijando el nivel cero inicial y luego medimos el cambio de peso (actualmente solo obtendremos ceros, ya que aún no hemos conectado nada).
En Arduino comenzará a parpadear el LED integrado del pin 13.
Si no se produce el reinicio, el LED se enciende durante 12 segundos.
Después de esto, se envía un SMS de prueba con el mensaje 'INITIAL BOOT OK' y el voltaje de la batería.
El módulo de comunicación se apaga y después de 3 minutos la placa de Arduino pone los módulos ADC HX711 en modo de suspensión y ella misma se duerme.
Se ha hecho este retraso para evitar captar interferencias del módulo GSM en funcionamiento (después de apagarse, sigue 'viniendo' por un tiempo).

A continuación, tenemos una interrupción por el fotorreceptor en el segundo pin (se activa una resistencia pullup).
Después de que se activa, el estado del fotorreceptor se verifica durante otros 3 minutos para evitar activaciones repetidas/falsas.
Curiosamente, sin ninguna configuración, el sistema se activa 10 minutos después de la puesta de sol astronómica en un clima nublado y 20 minutos en un clima despejado.
Para que el sistema no haga un reinicio en cada encendido, debe estar conectado al menos el primer módulo HX711 (pines DT-D10, SCK-A0).

Luego se toman las lecturas de los sensores de tensión, se calcula el cambio de peso desde la última activación (el primer número en la línea después de Hive) y desde el primer encendido, se verifica el voltaje de la batería y esta información se envía en forma de SMS:

Monitoreo SMS del peso de tres colmenas por 30$

¿Por cierto, recibiste el SMS? ¡Felicidades! Estamos a mitad de camino. Por ahora, puedes sacar la batería del soporte, no necesitaremos la computadora más adelante.

A propósito, el centro de control de vuelos resulta ser tan compacto que se puede colocar en un tarro de mayonesa; en mi caso, encajó perfectamente una cajita semitransparente de 30x60x100mm (de tarjetas de visita).

Sí, el sistema en reposo consume alrededor de 2.3mA, siendo el 90% debido al módulo de comunicación, que no se apaga completamente, sino que entra en modo de espera.

Monitoreo SMS del peso de tres colmenas por 30$

Comencemos a fabricar los sensores; primero, hablemos del esquema de ubicación de los sensores:

Monitoreo SMS del peso de tres colmenas por 30$

Este es el plano de la colmena: vista superior.

Clásicamente, se instalan 4 sensores en las esquinas (1, 2, 3, 4).

Vamos a medir de otra manera. O más exactamente, de una tercera forma. Ya que de otra manera lo hacen los chicos de BroodMinder:

Monitoreo SMS del peso de tres colmenas por 30$

En esta construcción, los sensores están instalados en las posiciones 1 y 2, los puntos 3 y 4 se basan en el tronco.
Entonces, los sensores soportan solo la mitad del peso.
Sí, este método tiene menor precisión, pero es difícil imaginar que las abejas construyan todos los marcos con 'lenguas' de cera a lo largo de una pared de la colmena.

Así que propongo mover todos los sensores al punto 5: de esta manera, no es necesaria la pantalla del sistema, y al utilizar colmenas ligeras, se puede utilizar un solo sensor.

Monitoreo SMS del peso de tres colmenas por 30$

En general, se probaron dos tipos de módulos con HX711, dos tipos de sensores y dos variantes de su conexión: con un puente de Wheatstone completo (2 sensores) y con uno parcial, donde la segunda parte se complementa con resistencias de 1k con un tolerancia del 0.1%.
Pero el último método no es deseable y ni siquiera es recomendado por los fabricantes de los sensores, así que describiré solo el primero.

Así que, en una colmena, instalaremos dos celdas de carga y un módulo HX711, el esquema de conexión es el siguiente:

Monitoreo SMS del peso de tres colmenas por 30$

Desde la placa ADC hasta el Arduino hay 5 metros de cable de teléfono de 4 hilos — recuerdo cómo a las abejas no les gustan los dispositivos GSM en la colmena..

En general, dejamos 'colas' de 8 cm en los sensores, pelamos el par trenzado y todo lo conectamos como en la foto de arriba.

Antes de comenzar con la parte de carpintería, coloca la cera/parafina en un recipiente adecuado para derretirse a baño maría.

Ahora tomamos nuestro tronco y lo dividimos en tres secciones de 100 mm.

Luego marcamos la ranura longitudinal de 25 mm de ancho y 7-8 mm de profundidad, utilizando una sierra y un formón para retirar el exceso: debe salir un perfil en forma de ‘P’.

¿Se ha derretido la cera? — sumergimos nuestras placas ADC en ella — esto las protegerá de la humedad/neblina:

Monitoreo SMS del peso de tres colmenas por 30$

Colocamos todo esto en una base de madera (es necesario tratarla con un antiséptico contra la descomposición):

Monitoreo SMS del peso de tres colmenas por 30$

Y, por último, fijamos los sensores con tornillos autorroscantes:

Monitoreo SMS del peso de tres colmenas por 30$

También había una opción con cinta aislante azul, pero por razones de humanidad no la incluyo ;)

Hacemos lo siguiente desde el lado de Arduino:

Pelamos nuestros cables telefónicos, retorcemos los hilos de colores entre sí, y los soldamos.

Después de esto, soldamos a los contactos de la placa como en la foto:

Monitoreo SMS del peso de tres colmenas por 30$

Listo, ahora para la verificación final, colocamos los sensores en los sectores del círculo, encima — un trozo de contrachapado, y reiniciamos el controlador (colocamos la batería con el tapón de un bolígrafo sobre el fotodiodo).

El LED en la placa Arduino debe parpadear y recibirá un SMS de prueba.

A continuación, retire la tapa del fotorresistor y proceda a llenar una botella de plástico de 1.5 litros con agua.
Coloque la botella sobre la madera contrachapada y, si ya han pasado varios minutos desde que se encendió, coloque de nuevo la tapa sobre el fotorresistor (simulando el atardecer).

Después de tres minutos, el LED en el Arduino se encenderá y debería recibir un SMS con valores de peso cercanos a 1 kg en todas las posiciones.

¡Felicidades! ¡El sistema está montado con éxito!

Si ahora se hace funcionar el sistema nuevamente, en la primera columna de pesos quedarán ceros.

Sí, en condiciones reales, es recomendable orientar el fotorresistor verticalmente hacia arriba.

Ahora presentaré un breve manual de uso:

  1. Instalar los sensores de tensión en las paredes traseras de las colmenas (debajo de las delanteras, colocar una barra/o una tabla de aproximadamente 30 mm de grosor).
  2. Cubrir el fotorresistor y colocar la batería: el LED debe parpadear y recibirá un SMS de prueba con el texto «INITIAL BOOT OK».
  3. Colocar la unidad central lo más lejos posible de las colmenas y de tal manera que los cables no interfieran al trabajar con las abejas.
    Cada noche, después del atardecer, se enviará un SMS con el cambio de peso del día y desde el momento de su inicio.
    Cuando la tensión de la batería alcance los 3.5V, el SMS terminará con la línea «!!! CHARGE BATTERY !!!».
    El tiempo de funcionamiento con una batería de 2600mAh es de alrededor de un mes.
    En caso de reemplazo de la batería, los cambios diarios de peso de las colmenas no se guardan.

UPD ADVERTENCIA!

EN CONDICIONES DE SEÑAL DÉBIL, el módulo GSM aumenta la potencia, lo que provoca el REINICIO DEL SISTEMA.

Esto se descubrió durante las pruebas de 'campo' (no está claro por qué los usuarios de módulos GSM no informan sobre tales problemas).

Ahora estoy preparando un nuevo esquema:
Monitoreo SMS del peso de tres colmenas por 30$

Después de la verificación exitosa, esta publicación será actualizada.

Electrificador de abejas, Andrei.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster