Categories
Hardware

Wio Terminal

Compatible with Arduino and MicroPython, Wio Terminal is an ATSAMD51-based microcontroller with wireless connectivity supported by Realtek RTL8720DN.

  • Powerful MCU: Microchip ATSAMD51P19 with ARM Cortex-M4F core running at 120MHz
  • Reliable Wireless Connectivity: Equipped with Realtek RTL8720DN, dual-band 2.4Ghz / 5Ghz Wi-Fi
  • Highly Integrated Design: 2.4” LCD Screen, IMU and more practical add-ons housed in a compact enclosure with built-in magnets & mounting holes
  • Raspberry Pi 40-pin Compatible GPIO
  • Compatible with over 300 plug&play Grove modules to explore with IoT
  • USB OTG Support
  • Support Arduino, CircuitPython, Micropython, ArduPy, AT Firmware, Visual Studio Code
  • TELEC certificated

More information:
https://www.seeedstudio.com/Wio-Terminal-p-4509.html

Categories
Hardware

4.2inch e-Ink display

This is an E-Ink raw display, 4.2inch, 400×300 resolution, with embedded controller, communicating via SPI interface, supports red, black, and white three-color display.

Due to the advantages like ultra low power consumption, wide viewing angle, clear display without electricity, it is an ideal choice for applications such as shelf label, industrial instrument, and so on.

  • No backlight, keeps displaying last content for a long time even when power down
  • Ultra low power consumption, basically power is only required for refreshing
  • Comes with development resources and manual (driver board schematic, examples for Raspberry Pi/Arduino/STM32)

More information:
https://www.seeedstudio.com/4-2inch-E-Ink-raw-display-three-color-e-paper-black-white-red.html

Categories
Example Tutorial

OTA firmware update

Simple and easy Over-The-Air firmware update for any ESP8266/ESP32 MCU with cloud storage? This is it! 🙂

Step 1

If you don’t have already a device, you need to create a device in our cloud, follow this article: tutorials/devices

Install our official Arduino library: ArduinoIDE integration

Step 2

To connect with the cloud, you need to gather three identifier:

  • userShortId: the short identifier of you
  • deviceShortId: the short identifier of your device
  • deviceKey: the secret key of your device

Step 3

Create a new Arduino sketch, copy-paste the following code and replace the ssid, the password, the userShortId, the deviceShortId and the deviceKey with your Wifi credentials and your device’s values:

#include <IoTGuru.h>

#ifdef ESP8266
  #include <ESP8266WiFi.h>
#endif
#ifdef ESP32
  #include <WiFi.h>
#endif

const char* ssid        = "ssid";
const char* password    = "password";

const char* ota_version = "example-1.0.0";

String userShortId      = "xxxxxxxxxxxxxxxxxxxxxx";
String deviceShortId    = "yyyyyyyyyyyyyyyyyyyyyy";
String deviceKey        = "zzzzzzzzzzzzzzzzzzzzzz";
IoTGuru iotGuru         = IoTGuru(userShortId, deviceShortId, deviceKey);

WiFiClient client;

void setup() {
    Serial.begin(115200);
    delay(10);

    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(50);
        Serial.print(".");
    }
    Serial.println("");

    iotGuru.setCheckDuration(60000);
    iotGuru.setDebugPrinter(&Serial);
    iotGuru.setNetworkClient(&client);

    iotGuru.firmwareUpdate(ota_version);
}

void loop() {
    if (iotGuru.check(ota_version)) {
        ESP.restart();
    }
}

Step 4

Compile the sketch and put it to the device with the old common way., the first firmware installation is inevitable. Also, you need to find the compiled firmware binary, but it is an easy task:

  1. Sketch - Export compiled Binary (Ctrl-Alt-S)
  2. Sketch - Show Sketch Folder (Ctrl-K)

Step 5

Upload the firmware binary to your Firmware storage:

Step 6

Set the Device firmware version field of your device:

Step 7

Your device will periodically check to see if its own version and the set version match; if so, then nothing will happen. If the two versions are different, it will reboot and update itself to what you specified in the Device firmware version field.

6288: {check(ota_version):72} - ENTRY
6292: {check(ota_version):75} - Send request to the cloud: http://api.iotguru.live/firmware/check/xxxxxxxxxxxxxxxxxxxxxx/example-1.0.0
6402: {check(ota_version):84} - Response received from the cloud (status code 304)
6402: {check(ota_version):86} - EXIT

Categories
Hardware

3D Gesture Shield

This shield is based on Microchip MGC3130 chip, which enables the Raspberry Pi with 3D gesture recognition and motion tracking function.

  • Recognition of 3D Hand Gestures and x, y, z Positional Data
  • Proximity and Touch Sensing
  • Built-in Colibri Gesture Suite (running on chip)
  • Advanced 3D Signal Processing Unit
  • Detection Range: 0 to 10 cm
  • On-chip Auto Calibration
  • Compatible with various models of Raspberry Pi 2,3,4

More information:
https://www.seeedstudio.com/3D-Gesture-Tracking-Shield-for-Raspberry-Pi-MGC3130-p-4073.html

Categories
Hardware

Raspberry Pi Wide Angle Camera Module

Raspberry Pi Wide Angle Camera Module is a low-cost Fisheye Lens, wider Field View,Camera module, designed for Raspberry Pi.

  • Fisheye Lens, offers wider field of view
  • 5 megapixel OV5647 sensor
  • Aperture (F) : 2.35
  • Diagonal angle : 160 degree
  • Horizontal angle : 132 degree
  • Sensor best resolution : 1080p

More information:
https://www.seeedstudio.com/Raspberry-Pi-Wide-Angle-Camera-Module.html

Categories
Hardware

Quantum Mini Linux

Quantum Mini Linux Development Kit consists of a SoM (System on Module) and an Allwinner H3, Quad-core Cortex-A7 CPU running at 1GHz and an expansion board with rich peripherals and interfaces.

  • Ultra-small (31mmx22mm) and highly integrated Linux development board
  • Expansion board with rich peripherals and interfaces for project expandability
  • Integrates a complete ARM-Linux system for advanced development
  • Ability to design your own baseboard due to the M.2 interface

More information:
https://www.seeedstudio.com/Quantum-Mini-Linux-Development-Kit-p-4749.html

Categories
Tutorial

Soil moisture sensor

We are creating a device that measures soil moisture, based on a WEMOS D1 mini and a Capacitive Soil Moisture sensor.

With cloud integration the measurement of the sensor sent to the IoT Guru Cloud, where we get fancy graphs and we can set a warning that we need to watering the plant.

Supplies:

  • WEMOS D1 mini
  • Capacitive Soil Moisture sensor

Step 1

The Capacivite Soil Moisture sensor has three pin:

  1. Ground
  2. Vcc
  3. Analog output

You can connect this pins to the WEMOS D1 mini in same order:

  1. D5
  2. D0
  3. A0

Step 2

The source code is contains an IoT Guru Cloud integration, you can check out our Tutorials about the integration. You will need:

  • userShortId
  • deviceShortId
  • deviceKey
  • nodeShortId
  • fieldName

Step 3

The code will send an analogue measurement in every one minute. Compile it and upload the firmware to your WEMOS D1 mini.

#include <IoTGuru.h>

#include <ESP8266WiFi.h>

const char* ssid      = "ssid";
const char* password  = "password";

WiFiClient client;

String userShortId    = "uuuuuuuuuuuuuuuuuuuuuu";
String deviceShortId  = "dddddddddddddddddddddd";
String deviceKey      = "kkkkkkkkkkkkkkkkkkkkkk";
IoTGuru iotGuru = IoTGuru(userShortId, deviceShortId, deviceKey);

String nodeShortId    = "nnnnnnnnnnnnnnnnnnnnnn";
String fieldName      = "analog";

void setup() {
    Serial.begin(115200);
    delay(10);

    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(50);
        Serial.print(".");
    }
    Serial.println("");

    /**
     * Set the callback function.
     */
    iotGuru.setCallback(&callback);
    /**
     * Set the debug printer (optional).
     */
    iotGuru.setDebugPrinter(&Serial);
    /**
     * Set the network client.
     */
    iotGuru.setNetworkClient(&client);

    pinMode(14, OUTPUT);
    pinMode(16, OUTPUT);
    digitalWrite(14, LOW);
    digitalWrite(16, HIGH);
}

volatile unsigned long nextSendUptime = 0;

void loop() {
    iotGuru.loop();

    if (nextSendUptime < millis()) {
        nextSendUptime = millis() + 60000;
        int analogValue = analogRead(A0);
        float analog = analogValue * (3.2 / 1023.0f) * 100.0f;
        Serial.println("Analog value: " + String(analog));
        iotGuru.sendMqttValue(nodeShortId, fieldName, analog);
    }
}

void callback(const char* nodeShortId, const char* fieldName, const char* message) {
    Serial.print(nodeShortId);Serial.print(" - ");Serial.print(fieldName);Serial.print(": ");Serial.println(message);
}

Step 4

Check the chart of the measurements:

Categories
Hardware

WaveShare RS485 board

The RS485 Board (3.3V) is an accessory board used for adding the RS485 transceiver to your application board.

The RS485 Board (3.3V) features a SP3485 onboard, integrates pinheaders and connectors to support multiple communication interfaces. It is designed to use 3.3V power supply.

More information:
https://www.waveshare.com/rs485-board-3.3v.htm

Categories
Hardware

ESP32 with 320×480 capacitive multi-touch screen

WT32-SC01 is an ESP32 Development board with a 3.5-inch color touch screen. The touch screen enables a new way of interacting with the ESP32. The board is equipped with a graphical user interface (GUI) firmware, which supports graphical drag-and-drop programming and helps users develop a customized control platform.

  • Highly integrated ESP32-WROVER-B module with low power consumption
  • 3.5-inch 320×480 capacitive 2-point multi-touch screen for easy interactions
  • Easy to program using the graphical drag-and-drop programming
  • Wireless connectivity with Wi-Fi and BLE
  • Customize functions such as button operation, voice control, and camera operation through the expansion interfaces

More information:
https://www.seeedstudio.com/ESP32-Development-board-WT32-SC01-p-4735.html

Categories
Hardware

Serial to Ethernet Module – WT32-ETH01

WT32-ETH01 is an embedded serial to Ethernet module based on the ESP32 series WT32-S1 MCU. The module integrates an optimized TCP/IP protocol stack, which is convenient for users to easily complete the networking functions of embedded devices while reducing development time cost. In addition, the module is compatible with half-pad and through-hole connectors. The board width is a universal width and therefore, it can be directly soldered to boards, connectors, or even breadboards, which is convenient for users to use in different scenarios.

  • Support complete TCP/IP protocol stack
  • Rich wireless communication interface
  • Multiple working modes using through holes and half-pads

More information:
https://www.seeedstudio.com/Ethernet-module-based-on-ESP32-series-WT32-ETH01-p-4736.html