My Cart

Author Archives: Cooking Hacks

  • Daily IoT: Welcome Home AutomationMay 29, 2017

    IoT has arrived at your house: Welcome Home Automation

    Imagine all electronic devices could be connected to the Internet. Imagine that those devices could communicate, send you information and do your bidding. With Cooking Hacks this is not a dream. Make your IoT home automation project come true with our Arduino and Raspberry Pi Home Automation Starter Kits.

    Cooking Hacks engineering team has been showing the potential of our Home Automation kits with different projects ranging from HVAC Controlling to a Smart Media Center or a Wireless Surveillance & Security System. These projects are completely documented in different step-by-step tutorials and in some videos in our Youtube channel. Cooking Hacks team used the following kits to develop these Home Automation projects:

    All these kits are based on Arduino UNO and Raspberry Pi 3 development boards. Moreover, they include different shields and modules which enable to work with the most well-known communication protocols as GPRS, 3G, 4G, LoRa, LoRaWAN, Sigfox, WiFi, Bluetooth, etc., which gives an idea of its high level of versatility.

    Besides, you are in luck because we have dropped the price of Arduino UNO and Raspberry Pi 3 development boards, which implies a price drop on all kits based on those platforms. You can control all devices of your home: from windows or lights to temperature or locks. Visit the Home Automation category in order to find the wide range of Arduino and Raspberry Pi Starter Kits which help you to automatize your home and open the door to IoT.

  • Call to Universities: The IoT Spartans Challenge starts in less than a monthMay 22, 2017

    summer_school_spartans_post

    Libelium sustains its education commitment launching the second edition of the IoT Spartans Challenge. The development of the IoT market is linked to the workforce that will be needed to program the 50 billion of IoT devices that are predicted to be connected to the Internet by 2020. This educational program focuses on covering the gap between the skills demanded by IoT companies and the practical knowledge of the engeneering students.

    The first three international Universities that have joined the Challenge are Aahrus University (from Denmark), IPCA (from Portugal) and UTP (from Panama), the winner of the past Spartans edition.

    Aahrus University
    UTP - Universidad Tecnológica de Panamá
    IPCA - Instituto Politécnico do Cávado e do Ave

    Keep in mind the benefits of the IoT Spartans Challenge for your University:

    • Worldwide promotion through Social Media and Libelium PR tools.
    • 2-day-Workshop for one teacher in Libelium headquarters in Zaragoza, Spain.
    • Special discounts on Libelium hardware specially designed to teach and research.
    • Further discount on the IoT Spartans Challenge Waspmote kits for students.
    • 400 code examples and more around 60 technical guides to easily create a syllabus with free access.
    • Free access to our Forum Service -exclusive for customers- to support teachers who require solving student’s questions.

    The IoT Spartans Challenge starts on June 15 with the Summer School, a period to warm up with some free webinars that explain basic concepts of the Internet of Things using our IoT platform Waspmote. The enrollment for IoT Spartans Summer School finishes on June 1, so hurry up and register your university in the contest, it is the best chance to put your educational entity on the Internet of Things world map.

  • IoT Spartans Challenge winner gives a seminar about IoT with Waspmote Sensor PlatformMay 16, 2017

    During the last week of April Emanuele Goldoni, the winner of the first edition of the IoT Spartans Challenge, visited the University of Bergamo, Italy, and held a seminar on Radio Technologies for IoT. The presentation was framed in a course about multimedia Internet networks.

    During the seminar, Emanuele described his experience with the past IoT Spartans Challenge and promoted the new edition of the contest among the students. Then, he provided an overview of the standards for low-rate WPAN and the emerging protocols for LPWAN.

    Finally, using a couple of Waspmote Sensor Platforms, he showed how to program the devices and compared the rates and ranges achievable by 802.15.4 and LoRa radio modules through a live demo.

    Follow in Emanuel´s steps and get involve in the IoT. He discovered the potential of Libelium Waspmote Sensor Platform at the same time he was climbing the ranks of the IoT Spartans Challenge 2016 edition. What are you waiting for?

    IoT Spartans Challenge winner seminar about IoT with Waspmote
    Emanuel Goldoni, winner of IoT Spartnas Challenge 2016 edition
  • Voice control of MySignals BLE sensorsMay 8, 2017

    E-health is meaning a disruption on health care field. The fact of joining IoT and medical attention is changing the way that people deal with their health. There are several researchers driving projects and developing devices to collect, store, process and communicate health data with the goal of bringing people closer to health data, self-exams, databases and some self-diagnostics.

    Today, we show a project which improves how is processed and showed the information collected with our e-Health sensor platform MySignals.

    The hardware base is MySignals SW BLE Complete Kit, basically using its BLE sensors, a Raspberry Pi 3 and Google Home, the hands-free Google Assistant voice-activated speaker.

    Voice control of MySignals BLE sensors

    How does it function?

    The project has two parts. The first part of the deployment consists in an integration of MySignals Cloud with a local database. For that, the developers have made this integration using Node-RED and REST interfaces to read the data and then push them to a personal MongoDB database.

    The second part of the project is an innovative voice control of MySignals BLE sensors. They are paired with a Raspberry Pi via bluetooth and triggered with the Google Voice assistant of a Google Home device. After collecting the data, they are sent to MySignals Cloud. They are read using Node-RED and then visualized in a dashboard at the same time that the speaker says the values loudly.

    Vinicius Senger, the CTO and Inventor from Globalcode, is carrying out this e-Health project, showing demos in important events and hackatons around the world like the IoT Tech Day, Amazon Smart City hackathon at The Developers Conference or j-spring.

    Follow in Vinicius' footsteps and discover the countless applications and possibilities that brings MySignals e-health sensor platform.

  • Barcelona park Smart Irrigation System project with Waspmote Agriculture Sensors KitApril 25, 2017

    campana_empresas_ch_bcn_post

    Smart Agriculture is getting increasingly present in our daily life. This kind of deployments are settled in the countryside for a while, but nowadays Smart Agriculture projects are having a huge growth in cities.

    Modern cities are getting involved in the Internet of Things and are improving their management with smart projects. In this case, Barcelona deployed a smart irrigation system based in Waspmote Sensor Platform in Poblenou Park Centre.

    The deployment is based on sensors technology and consists in allowing remote control of the irrigation system to facilitate the management of the water network. This new irrigation management system allows an automatic control of the electronic valves that close or open the water flow.

    The project is compound by soil moisture probes located underground together with Waspmote Sensor Platform. They are put inside waterproof boxes that ensure highly durability. Besides, these devices are powered by a long-life battery with one year autonomy.

    Data gathered by Waspmote Sensor Platform can be sent to a gateway or directly to the cloud. It can be done through several communication protocols, such us GPRS, 3G, 4G, LoRaWAN, LoRa, Sigfox, 868 MHz, 900MHz, ZigBee, 802.15.4, WiFi, RFID, NFC and Bluetooth 4.0. In this project, data is sent through ZigBee to a Meshlium Gateway, provided by Libelium, and from there to the cloud using 3G.

    The information collected can be visualized in a platform which concentrates and allows knowing the state in each zone and it can be controlled with computers, tablets and also smartphones.

    The system optimizes water consumption because it irrigates with the proper amount according to weather conditions and the plants’ needs. Thanks to this new management system the municipal water bill has been cut down near a 25% in the city. Moreover, this reduction is not just about money, the water usage has been reduced too.

    Barcelona is saving resources such us water with Waspmote Sensor Platform and contributing to enhance the environment too. For gardeners, their daily work tasks has been eased too. Controlling the irrigation system and detecting any incidents that may have occurred can nowadays be checked in real-time.

    This project led by Barcelona City Council joins hardware components which gather data and send them through a gateway to the cloud in order to be visualized for irrigation management. This gives an idea of the versatility of Waspmote Sensor Platform, which can be used in the most professional projects.

    If you are interested in developing a Smart Agriculture projects, in Cooking Hacks you can find one of the most versatile and professional IoT kits, the Waspmote Agriculture Sensors Kit.

    This kit allows to monitor multiple environmental parameters involving a wide range of applications, from growing development analysis to weather observation. This kit contents specifically Waspmote Agriculture Sensor Board, which allows to connects these sensors: Digital Temperature & Humidity Sensor, Soil Moisture Sensor and Atmospheric Pressure Sensor.

    Anyway, the Agriculture Sensor Board enables to connect up to 14 sensors at the same time, for example sensors for air and soil temperature and humidity, solar visible radiation, wind speed and direction, rainfall, leaf wetness and fruit or trunk diameter (dendrometer).

    With the objective of extending the durability of the device after the deployment, the board is endowed with a solid state switches system that facilitates a precise regulation of its power, prolonging the life if the battery.

    Discover how the Waspmote Agriculture Sensors Kit can be your best fellow traveler when you start deploying Smart Agriculture projects, whether in the countryside or in the city, helping you to make the difference.

  • Controlling human stress levels using e-Health sensor platformDecember 19, 2016

    Nowadays there are a wide range of devices used to monitor biometric parameters and to send the data gathered to the cloud in order to control different physical situations. Their scope of activity is endless. You can find this kind of equipment from sports field, with a huge variety of wearables, such us the Autonomous Biometric Sensor Device with Remote Monitoring in Real Time with e-Health sensor platform we shown some time ago; to the neuro-marketing or the ehealth sphere, such us the 'Zero Calories Can Dispenser' or the 'Partymeter' projects we developed for a music festival.

    The deployment we bring today, the AICARP project project, is halfway between eHealth and education. It is a project to detect how some biometric parameters change when a person faces a stressful situation, specifically in an oral exam using a foreign language. Project developers have included an alerts system to notice when the person is getting nervous.

    AICARP Project

    The AICARP Project device

    The hardware base is our well-known e-Health Sensor Platform and it is developed over an Arduino UNO board. The project uses three different sensors, concretely:

    AICARP Project

    SPO2 Sensor, GSR sensor and Temperature sensor

    AICARP Project

    AICARP Project device

    How does it function?

    Firstly, the system checks the biometric parameters at rest. Then, using some algorithms, it calculates a 'Stress Level'. Finally, it monitors the individual biometric parameters in real-time during specific situation as an oral exam. When stress data levels, previously settled, are getting closer to this level, the system trigger off different actuators, such us light, sound or vibrating signals, in order to notify the person is getting stressed. Data collected is shown in a visualizing interface implemented in MATLAB. The details about the AICARP platform have been published in the journal IEEE Sensors.

    Light signals

    Light signals

    MATLAB visualizer

    MATLAB visualizer

    The AICARP project is being carried out by aDeNu, a research group belonging to the Artificial Intelligence Departament of UNED, in collaboration with a researcher of the Electronics Technology area of the University Rey Juan Carlos. This project shows the versatility of Cooking Hacks e-Health Sensor Platform and the variety of applications that professional projects can deploy for eHealth developments.

    All the eHealth Sensor Platform components used in this project belonged to the previous version, but do not worry about it because we have released the new generation of eHealth platform: MySignals, the most complete eHealth development platform in the market which enables to connect more than 15 sensors, including the ones used in AICARP project. You can select from different kits, MySignals Hardware and MySignlas Software, or buy all components separately.

    MySigals includes more powerful capabilities than e-Health Sensor Platform, taking the eHealth applications to a top level, so take advantage of Mysignals new features and start developing the most professional eHealth deployments.

  • Differences between the old e-Health Platform and MySignalsOctober 4, 2016

    Differences between the old e-Health Platform and MySignals


    Discover MySignals now!


    MySignals is the new generation of eHealth and medical development products specifically oriented to researchers, developers and makers. It has new features that significantly improve the previous version commonly known as eHealth v2.

    • The number of sensors has been increased from 10 to 16.
    • The new sensors availables are: Snore, Spirometer, Blood Pressure (BLE), SPO2 (BLE), Glucometer (BLE) and Body Scale (weight, bone mass, body fat, muscle mass, body water, visceral fat, Basal Metabolic Rate and Body Mass Index)
    • The accuracy of the sensors has been improved.
    • The sensor probes are more robust now.
    • The new generation integrates a faster MCU with 4 times more memory.
    • WiFi and BLE radios now integrated on the PCB.
    • A complete graphic system with a TFT touchscreen allows to see the data coming realtime from the sensors.
    • New 'audio type' jack connectors allows it to be used by non technical staff.
    • CE / FCC / IC certifications passed for MySignals SW.
    • Cloud Storage of the data is now available to save historical information.
    • Native Android / iOS App's can be used now to visualize the information in realtime and to browse the Cloud data.


    Discover MySignals, the new eHealth and medical development platform!

    In the next tables you can see a complete comparative between eHealth v2 and the two different models of MySignals.

    GENERAL FEATURES

    There are several differences comparing the general features of MySignals and the previous product version eHealth V2.

    e-Health V2.0
    MySignals SW
    MySignals HW
    Architecture
    Arduino compatible
    Libelium IoT Core
    Arduino compatible
    RAM Memory
    2K
    8K
    2K
    Microprocessor
    Atmega 328 (Arduino UNO)
    Atmega 2560
    Atmega 328 (Arduino UNO)
    Flash Memory
    32K
    256K
    32K
    UART sockets
    1
    1
    1 (multiplexed)
    Enclosure
    Complete Kit
    SDK
    Screen
    GLCD - optional (basic graphics)
    TFT (complete graphic interface)
    TFT (basic graphics)
    TouchScreen
    Cloud Storage
    Android / iOS App
    API Cloud
    API Android/iOS
    Sensors
    10
    16
    16
    Wired Sensors
    10
    11
    11
    Wireless Sensors
    10
    16
    16
    Concurrent Sensor Readings
    From any sensor (10) to one interface
    From any sensor (16) to one interface (TFT, BLE, WiFi)
    From one group of sensors (analog, UART, BLE) to one interface (TFT, BLE, WiFi)
    Radios on board
    -
    BLE, WiFi
    BLE, WiFi
    Extra Radios
    BT, ZigBee, 4G / 3G / GPRS
    -
    BT, ZigBee, 4G / 3G / GPRS
    Certifications
    -
    CE / FCC / IC
    -

    SENSORS

    eHealth V2.0
    MySignals SW
    MySignals HW
    Body Position
    Body temperature
    Electromyography
    Electrocardiography
    Airflow
    Galvanic Skin Response
    Blood Pressure
    Pulsioximeter
    Glucometer
    Spirometer
    Snore
    Scale (BLE)
    Blood Pressure (BLE)
    Pulsioximeter (BLE)
    Glucometer (BLE)
    Electroencephalography
    e-Health Sensor Platform last units
    MySignals SW - eHealth and Medical IoT Development Platform
    MySignals HW - eHealth and Medical IoT Development Platform for Arduino
    MySignals - eHealth and Medical IoT Development Platform

  • Indoor Tracking using 4G and A-GPS mode with Arduino and Raspberry Pi (Geo-Location)September 6, 2016

    Indoor Location using 4G and A-GPS mode with Arduino and Raspberry Pi

    Most of the major cities are already turning their cellular networks to the new 4G LTE and at the same time shutting down the old technologies such as GPRS and GSM. 3G will survive a couple of years more but it is planned to be completely shut off too. For this reason in Cooking Hacks we have decided to be the first to offer to the Maker community the possibility of using the amazing 4G cellular networks.

    The new 4G shield for Arduino and Raspberry Pi enables the connectivity to high speed LTE, HSPA+, WCDMA cellular networks in order to make possible the creation of the next level of worldwide interactivity projects inside the new "Internet of Things" era.

    Besides, the GPS / Glonass module can make possible to perform geolocation services using NMEA sentences offering information such as latitude, longitude, altitude and speed what makes it perfect to perform tracking applications.

    One of the positioning techniques to provide the localization to end devices that enables this module is A-GPS or AGPS, which is based on the help of a cellular network deploying an A-GPS server.

    Assisted GPS enhances the performance of standard GPS in devices connected to the cellular network. A-GPS mode is a feature that allows the GPS receiver, installed on the module, to perform its First Fix using assistance data provided by entities deployed by Cellular Network. It improves the location performance of cell phones (and other connected devices) in two ways:

    • By helping obtain a faster "time to first fix" (TTFF). A-GPS acquires and stores information about the location of satellites via the cellular network so the information does not need to be downloaded via satellite.
    • By helping position a phone or mobile device when GPS signals are weak or not available such as indoor locations. GPS satellite signals may be impeded by tall buildings, and do not penetrate building interiors well. A-GPS uses proximity to cellular towers to calculate position when GPS signals are not available..

    The location given by the A-GPS module may vary depending on the spot used to perform the test. The accuracy will improve when the device is situated in a high density or poor cellular antennas area. The detection accuracy may vary from 10 to 100 meters so a real test in each case is mandatory before implementing a final application.

    If your are interested in developing projects which include 4G LTE communication, find all the info you need in the 4G + GPS Shield for Arduino and Raspberry Pi Tutorial (LTE / WCDMA / HSPA+ / 3G / GPRS) tutorial and if your are interested in A-GPS location in particular visit Indoor Tracking using 4G and A-GPS mode with Arduino and Raspberry Pi (Geo-Location).

    Know all the 4G + GPS Shield available with Arduino and Raspberry Pi in Cooking Hacks store:

    In this section, the execution of the A-GPS in MS-Based mode is shown. For this purpose, the corresponding example was used:

    Arduino:

    Code:
    /*
        --------------- 4G_18 - A-GPS (MS-Based GPS)  ---------------
    
        Explanation: This example shows how to use de A-GPS in MS-Based mode
    
        Note 1: in Arduino UNO the same UART is used for user debug interface 
        and LE910 AT commands. Handle with care, user interface messages could 
        interfere with AT commands.
    
        Example: 
              Serial.print("operATo"); 
        It is seen as wrong AT command by the LE910 module.
    
        Note 2: to run this example properly you must increase the reception 
        serial buffer to 128 bytes. 
        -> go to: <arduino_dir>/hardware/arduino/avr/cores/arduino
        -> edit:  HardwareSerial.h 
    
         If you are using Arduino Uno:
        -> merge: #define SERIAL_RX_BUFFER_SIZE 128
    
         If you are using Arduino Mega:
        -> merge: #define SERIAL_TX_BUFFER_SIZE 128
        -> merge: #define SERIAL_RX_BUFFER_SIZE 128
    
        Copyright (C) 2016 Libelium Comunicaciones Distribuidas S.L.
        http://www.libelium.com
    
        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation, either version 3 of the License, or
        (at your option) any later version.
    
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
    
        You should have received a copy of the GNU General Public License
        along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
        Version:           1.1
        Design:            David Gascon
        Implementation:    Alejandro Gallego, Yuri Carmona, Luis Miguel Marti
        Port to Arduino:   Ruben Martin
    */
    
    #include "arduino4G.h"
    
    // APN settings
    ///////////////////////////////////////
    char apn[] = "";
    char login[] = "";
    char password[] = "";
    ///////////////////////////////////////
    
    // define variables
    uint8_t error;
    uint8_t gps_status;
    float gps_latitude;
    float gps_longitude;
    uint32_t previous;
    bool gps_autonomous_needed = true;
    
    
    void setup()
    {
      //////////////////////////////////////////////////
      // Set operator parameters
      //////////////////////////////////////////////////
      _4G.set_APN(apn, login, password);
    
      //////////////////////////////////////////////////
      // Show APN settings via Serial port
      //////////////////////////////////////////////////
      _4G.show_APN();
    
      //////////////////////////////////////////////////
      // 1. Switch on the 4G module
      //////////////////////////////////////////////////
      error = _4G.ON();
    
      // check answer
      if (error == 0)
      {
        Serial.println(F("1. 4G module ready..."));
    
        ////////////////////////////////////////////////
        // 2. Start GPS feature
        ////////////////////////////////////////////////
    
        // get current time
        previous = millis();
    
        gps_status = _4G.gpsStart(arduino4G::GPS_MS_BASED);
    
        // check answer
        if (gps_status == 0)
        {
          Serial.print(F("2. GPS started in MS-BASED. Time(secs) = "));
          Serial.println((millis()-previous)/1000);
        }
        else
        {
          Serial.print(F("2. Error calling the 'gpsStart' function. Code: "));
          Serial.println(gps_status, DEC);
        }
      }
      else
      {
        // Problem with the communication with the 4G module
        Serial.println(F("1. 4G module not started"));
        Serial.print(F("Error code: "));
        Serial.println(error, DEC);
        Serial.println(F("The code stops here."));
        while (1);
      }
    }
    
    
    void loop()
    {
      ////////////////////////////////////////////////
      // Wait for satellite signals and get values
      ////////////////////////////////////////////////
      if (gps_status == 0)
      {
        error = _4G.waitForSignal(20000);
    
        if (error == 0)
        {
          Serial.print(F("3. GPS signal received. Time(secs) = "));
          Serial.println((millis()-previous)/1000);
    
          Serial.println(F("Acquired position:"));
          Serial.println(F("----------------------------"));
          Serial.print(F("Ltitude: "));
          Serial.print(_4G._latitude);
          Serial.print(F(","));
          Serial.println(_4G._latitudeNS);
          Serial.print(F("Longitude: "));
          Serial.print(_4G._longitude);
          Serial.print(F(","));
          Serial.println(_4G._longitudeEW);
          Serial.print(F("UTC_time: "));
          Serial.println(_4G._time);
          Serial.print(F("UTC_dte: "));
          Serial.println(_4G._date);
          Serial.print(F("Number of stellites: "));
          Serial.println(_4G._numSatellites, DEC);
          Serial.print(F("HDOP: "));
          Serial.println(_4G._hdop);
          Serial.println(F("----------------------------"));
    
          // get degrees
          gps_latitude  = _4G.convert2Degrees(_4G._latitude, _4G._latitudeNS);
          gps_longitude = _4G.convert2Degrees(_4G._longitude, _4G._longitudeEW);
    
          Serial.println("Conversion to degrees:");
          Serial.print(F("Ltitude: "));
          Serial.println(gps_latitude, 6);
          Serial.print(F("Longitude: "));
          Serial.println(gps_longitude, 6);
          Serial.println();
    
    
          ////////////////////////////////////////////////
          // Change to AUTONOMOUS mode if needed
          ////////////////////////////////////////////////
    
          if (gps_autonomous_needed == true)
          {
            _4G.gpsStop();
    
            gps_status = _4G.gpsStart(arduino4G::GPS_AUTONOMOUS);
    
            // check answer
            if (gps_status == 0)
            {
              Serial.println(F("GPS started in AUTONOMOUS mode"));
    
              // update variable
              gps_autonomous_needed = false;
            }
            else
            {
              Serial.print(F("Error calling the 'gpsStart' function. Code: "));
              Serial.println(gps_status, DEC);
            }
          }
          delay(10000);
        }
        else
        {
          Serial.print("no stellites fixed. Error: ");
          Serial.println(error, DEC);
        }
      }
      else
      {
        ////////////////////////////////////////////////
        // Restart GPS feature
        ////////////////////////////////////////////////
    
        Serial.println(F("Restarting the GPS engine"));
    
        // stop GPS
        _4G.gpsStop();
        delay(1000);
    
        // start GPS
        gps_status = _4G.gpsStart(arduino4G::GPS_MS_BASED);
    
        // check answer
        if (gps_status == 0)
        {
          Serial.print(F("GPS started in MS-BASED. Time(ms) = "));
          Serial.println(millis() - previous);
        }
        else
        {
          Serial.print(F("Error calling the 'gpsStart' function. Code: "));
          Serial.println(gps_status, DEC);
        }
      }
    }
            

    Raspberry Pi:

    Code:
    /*
     *  --------------- 4G_18 - A-GPS (MS-Based GPS)  ---------------
     *
     *  Explanation: This example shows how to use de A-GPS in MS-Based mode
     *
     *  Copyright (C) 2016 Libelium Comunicaciones Distribuidas S.L.
     *  http://www.libelium.com
     *
     *  This program is free software: you can redistribute it and/or modify
     *  it under the terms of the GNU General Public License as published by
     *  the Free Software Foundation, either version 3 of the License, or
     *  (at your option) any later version.
     *
     *  This program is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     *  GNU General Public License for more details.
     *
     *  You should have received a copy of the GNU General Public License
     *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
     *
     *  Version:           1.1
     *  Design:            David GascĂłn
     *  Implementation:    Alejandro Gállego, Yuri Carmona, Luis Miguel Marti
     *  Port to Raspberry: Ruben Martin
     */
    
    #include "arduPi4G.h"
    
    // APN settings
    ///////////////////////////////////////
    char apn[] = "m2m.tele2.com";
    char login[] = "";
    char password[] = "";
    ///////////////////////////////////////
    
    // define variables
    uint8_t error;
    uint8_t gps_status;
    float gps_latitude;
    float gps_longitude;
    uint32_t previous;
    bool gps_autonomous_needed = true;
    
    
    void setup()
    {
      printf("Start program\n");
    
      //////////////////////////////////////////////////
      // Set operator parameters
      //////////////////////////////////////////////////
      _4G.set_APN(apn, login, password);
    
      //////////////////////////////////////////////////
      // Show APN settings via USB port
      //////////////////////////////////////////////////
      _4G.show_APN();
    
      //////////////////////////////////////////////////
      // 1. Switch on the 4G module
      //////////////////////////////////////////////////
      error = _4G.ON();
    
      // check answer
      if (error == 0)
      {
        printf("1. 4G module ready...\n");
    
        ////////////////////////////////////////////////
        // 2. Start GPS feature
        ////////////////////////////////////////////////
    
        // get current time
        previous = millis();
    
        gps_status = _4G.gpsStart(arduPi4G::GPS_MS_BASED);
    
        // check answer
        if (gps_status == 0)
        {
          printf("2. GPS started in MS-BASED. Time(secs) = %d\n", (millis()-previous)/1000);
        }
        else
        {
          printf("2. Error calling the 'gpsStart' function. Code: %d\n", gps_status);
        }
      }
      else
      {
    
        // Problem with the communication with the 4G module
        printf("1. 4G module not started\n");
        printf("Error code: %d\n", error);
        printf("The code stops here.\n");
        while (1);
      }
    }
    
    
    void loop()
    {
    
      ////////////////////////////////////////////////
      // Wait for satellite signals and get values
      ////////////////////////////////////////////////
      if (gps_status == 0)
      {
        error = _4G.waitForSignal(20000);
    
        if (error == 0)
        {
          printf("3. GPS signal received. Time(secs) = %d\n", (millis()-previous)/1000);
    
          printf("Acquired position:\n");
          printf("----------------------------\n");
          printf("Latitude: %s, LatitudeNS: %c, Longitude: %s, LongitudeEW: %c, "\
                 "UTC_time:%s, date:%s, Number of satellites: %u, HDOP: %f\n",
                  _4G._latitude, 
                  _4G._latitudeNS, 
                  _4G._longitude, 
                  _4G._longitudeEW, 
                  _4G._time, 
                  _4G._date, 
                  _4G._numSatellites, 
                  _4G._hdop);
          printf("----------------------------\n");
    
          // get degrees
          gps_latitude  = _4G.convert2Degrees(_4G._latitude, _4G._latitudeNS);
          gps_longitude = _4G.convert2Degrees(_4G._longitude, _4G._longitudeEW);
          
          printf("Conversion to degrees:\n");
          printf("Latitude: %f\n", gps_latitude);
          printf("Longitude: %f\n\n", gps_longitude);
    
          ////////////////////////////////////////////////
          // Change to AUTONOMOUS mode if needed
          ////////////////////////////////////////////////
          if (gps_autonomous_needed == true)
          {
            _4G.gpsStop();
    
            gps_status = _4G.gpsStart(arduPi4G::GPS_AUTONOMOUS);
    
            // check answer
            if (gps_status == 0)
            {
              printf("GPS started in AUTONOMOUS mode\n");
    
              // update variable
              gps_autonomous_needed = false;
            }
            else
            {
              printf("Error calling the 'gpsStart' function. Code: %d\n", gps_status);
            }
          }
    
          delay(10000);
        }
        else
        {
          printf("no satellites fixed. Error: %d\n", error);
        }
      }
      else
      {
        ////////////////////////////////////////////////
        // Restart GPS feature
        ////////////////////////////////////////////////
        printf("Restarting the GPS engine\n");
    
        // stop GPS
        _4G.gpsStop();
        delay(1000);
    
        // start GPS
        gps_status = _4G.gpsStart(arduPi4G::GPS_MS_BASED);
    
        // check answer
        if (gps_status == 0)
        {
          printf("GPS started in MS-BASED. Time(ms) = %d\n", millis() - previous);
        }
        else
        {
          printf("Error calling the 'gpsStart' function. Code: %d\n", gps_status);
        }
      }
    }
    
    
    //////////////////////////////////////////////
    // Main loop setup() and loop() declarations
    //////////////////////////////////////////////
    int main()
    {
        setup();
        while(1) loop();
        return (0);
    }
    //////////////////////////////////////////////
    
            

    In this example, the GPS is started in MS-Based mode. Once location is acquired, the GPS is stopped and started again in Standalone mode. In the following figures, it is possible to see how the GPS module gets its first position 41 seconds after switching on the 4G module. The green icon is the true device position. The red icon is the position the 4G module returns along different iterations. Finally, we can see how the module achieves a great location detection after 73 seconds.

    First iteration (41 seconds after starting the 4G module). Distance error: 42 meters.


    Second iteration (53 seconds after starting the 4G module). Distance error: 28 meters.


    Third iteration (63 seconds after starting the 4G module). Distance error: 28 meters.


    Fourth iteration (73 seconds after starting the 4G module). Distance error: 7 meters.


    The location given by the A-GPS module may vary depending on the spot used to perform the test. The accuracy will improve when the device under test has better GPS satellites coverage. In conclusion, the detection accuracy may vary from 10 to 100 meters if the device has no good satellites coverage. Or worse in the case no satellites can be found.

    NOTE: GPS is only available for LE910-EUG, LE910-NAG and LE910-SKG modules not for LE910-AU V2, LE910-JB V2 and LE910-JK V2 modules.

    For more info visit the tutorial: 4G + GPS Shield for Arduino and Raspberry Pi Tutorial (LTE / WCDMA / HSPA+ / 3G / GPRS).

  • Discover the versatility of our e-Health Sensor PlatformAugust 22, 2016

    e-Health Sensor Platform Complete Kit

    Tracking Kit (GPRS+GPS)

    Buy now

    One of our key products is the e-Health Sensor Platform Complete Kit and this is not by chance. It is one of the most complete IoT kits for prototyping and developing low cost medical applications. Besides, it is fully compatible with the most well-known boards: Arduino and Raspberry Pi.

    It is available with 10 different sensors which allow to monitor the most important parameters of a patient: pulse and oxygen in blood, blood pressure, concentration of glucose in blood, breathing, body temperature, heart electrical and muscular functions, electrical conductivity of the skin, electrical activity of muscles or patient position.

    The fact of being compatible with Arduino and Raspberry Pi enables the e-Health Sensor Platform to upload wirelessly the biometric data gathered to the cloud. The communication protocols available are WiFi, Bluetooth, Zigbee, 802.15.4 and 4G/3G/GPRS. This enables a data visualization in a web or mobile app.

    Whatch this video to know some e-Health Sensor Platform components and functionalities.



    This platform to measure biometric parameters has been chosen for researchers and developers to design applications which can help to make people life easier. In Cooking Hacks blog, it can be found some real application examples of how the e-Health Sensor Platform can be used:

    We put at your disposal the e-Health Sensor Platform V2.0 for Arduino and Raspberry Pi step-by-step tutorial which explain down to the last detail which components compund the kit and how do they work. It also explains how to integrate it with Arduino and Raspberry Pi boards.

    There is not excuse for developing medical applications with our e-Health Sensor Platform Complete Kit with all this inspiration examples and all the info we put at your disposal in our tutorials.

  • Autonomous Biometric Sensor Device with Remote Monitoring in Real Time with e-Health sensor platformAugust 2, 2016

    Autonomous Biometric Sensor Device with Remote Monitoring in Real Time with e-Health sensor platform

    This is a project made for all mountain lovers. As you know, mountain sports are more than a walk. You need some experience and preparation to enjoy them safely. In this sense, it is strongly recommended to be located and monitored all the time.

    The aim of this project carried out by Cooking Hacks team is to develop a device capable to measure different biometric parameters, using some sensors compatible with our e-Health sensor board and send these data in real time to a receiver by means of a LoRa and 3G/GPRS wireless connection. It is ready to use during exercise or with a person who has suffered an accident in a remote and hard-to-reach place. The scope of this project is the sports medicine.

    The hardware base is the Arduino MEGA 2560 microcontroller board and the e-Health Sensor Shield V2.0. The rest of hardware components are:

    Autonomous Biometric Sensor Device with Remote Monitoring in Real Time with e-Health sensor platform

    All of these components are assembled in a board made on purpose and put inside a case to ensure the device protection. Besides, this device is ready to be carried in a backpack.

    Sensors connection diagram

    Sensors connection diagram

    Finally, the project was tested to know its consumption and its coverage. The battery duration with LoRa connection is around 17.5 hours with a 250 mAh average consumption. With 3G and GPS connection the battery duration is around 6.5 hours with a 667 mAh average consumption. After the coverage test, we observed that this device could send data up to 21 km from the transmitter and the receiver.

    Visit the tutorial for knowing how to develop this Autonomous Biometric sensor device for a Real-time Mountain Climber Monitoring using e-Health Sensor Platform for Arduino and Raspberry Pi.

    This project brings to light that the Autonomous Biometric Sensor Device with Remote Monitoring in Real Time with e-Health sensor platform is one of the best ways to monitor a person doing exercise during hours, controlling his vital signs from a checkpoint located kilometers away.

    Functioning diagrams

    Functioning diagram

    Realtime Vital Signs Monitoring

    Functioning diagram

    Emergency Mode

  • Items 1 to 10 of 783 total