Things used in this project

Hardware components:
Linkitsmart7688
MediaTek Labs The MediaTek LinkIt™ Smart 7688 platform
×1
11026 02
Jumper wires (generic)
×1
Gus 1719
C.H.I.P. Approved 3.7 V LiPo Battery
×1
RFM69CW
Any EBAY module
×1
solar panel
solar panel from Alibaba
×1
Software apps and online services:
Python Flask
Node.JS
Hand tools and fabrication machines:
Tweezers
Hot air rework station
09507 01
Soldering iron (generic)
Solder paste

Custom parts and enclosures

Step file of the mote
Step file of the energy harvesting mote
wsn_YALqVKUanc.STEP

Schematics

Board schmatics
PIC MCU schematic
Sch mcu 1j6vscczuk
Energy harvester IC
Sch bq25570 bihl6ct6kj
Radio schematic
radio schematic and layout file used on the hub side
rfm69_EazwKR8clV.brd

Code

Linkit HubArduino
Linkit Duo RFM69CW radio aggregator. Collects sensor data from nodes and send it to linkit duo serial port.
#include "rfm69.h"
#include <SPI.h>

#define SERIAL_BAUD 115200
#define SERIAL_BAUD1 57600

#define NODEID      1
#define NETWORKID   100

char data[32];                      //data buffer for receive mode

  
void setup() {

Serial.begin(SERIAL_BAUD);
Serial1.begin(SERIAL_BAUD);
while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  
Serial.println("RFM69CW LINKITDUO gateway");
Serial.print("=============RFM69CW Test============ \r\n");
Serial1.println("RFM69CW LINKITDUO gateway");
Serial1.print("=============RFM69CW Test============ \r\n");


delay(100);
rfm69_reset();
delay(100);

char ok = rfm69_init();    

   if (!ok) {
        Serial.println("RFM69 init failed!\n");
        Serial1.println("RFM69 init failed!\n");
    } else {
        Serial.println("RFM69 init ok\n");
        Serial1.println("RFM69 init ok\n");
        //rfm69_dumpRegisters();
        
        // init RF module and put it to sleep
        rfm69_sleep();

        // set output power
        rfm69_setPowerDBm(10); // +10 dBm
        // enable CSMA/CA algorithm
        rfm69_setCSMA(false);
        //(void) rfm69_setAESEncryption((void*) "sampleEncryptKey", 16);
        rfm69_setAutoReadRSSI(true);
        rfm69_setPowerLevel(5); // max 31
        
        rfm69_setMode(RFM69_MODE_RX); // Unmodulated carrier
        rfm69_dumpRegisters();

    }
}

void loop() 
        {
            if (rfm69_init()) {

                memset(data, 0, sizeof(data));
                uint8_t len = rfm69_receive(data, sizeof(data));
                if (len > 0) {
                    int rssi = rfm69_getRSSI();
                    Serial.println("Sleep..\r\n");
                    rfm69_sleep();
                    Serial.print("Received number of bytes :");
                    Serial.println(len, DEC);
                    Serial1.print("Received number of bytes :");
                    Serial1.println(len, DEC);
                    
                    for ( int i=0; i<len; i++) 
                    {
                        Serial.println(data[i], DEC);
                        Serial1.println(data[i], DEC);
                    }
                        Serial.print('[');
                        Serial.print(rssi, DEC);
                        Serial.println(']');

                        Serial1.print('[');
                        Serial1.print(rssi, DEC);
                        Serial1.println(']');
						
                }
            }else
            {
               Serial.println("Radio was not initialized properly.\r\n");
               Serial1.println("Radio was not initialized properly.\r\n");
               delay(5000);
            }
        }
Garden sensors dashboard with Linkit DUO
Code and schematics.

Credits

5f6d42b1c3309b2560dc8d48b9f071dd
Dimiter Kendri

Blah blah blah yatzeeee...

Replications

Did you replicate this project? Share it!

I made one

Love this project? Think it could be improved? Tell us what you think!

Give feedback

Comments

Similar projects you might like

King of Darkness EVIL's hand
Intermediate
  • 117
  • 2

Full instructions

I made the King of Darkness EVIL's hand who is Professional wrestler.

Smart Room Slack Bot
Intermediate
  • 183
  • 2

Full instructions

A Slack bot that manages each room in a venue. The bot takes bookings and monitors the environment (temp, light, power) and occupancy (PIR).

PiMiniMint
Intermediate
  • 4,388
  • 27

Full instructions

Build your very own Linux terminal inside a mint tin!

 Inter-device communication using Blynk Bridge Widget
Intermediate
  • 1,034
  • 3

Full instructions

I tried communicating between Wi-Fi devices using Blynk's Bridge widget!

DIY Smart Lamp - controlled by toggle switch and Alexa
Intermediate
  • 689
  • 6

Full instructions

Build a smart lamp that can be controlled by flipping a switch and Alexa, for only $35.

Jarvis - Personal Assistant
Intermediate
  • 684
  • 10

Full instructions

A personal assistant powered by Linklt Smart 7688 Duo and Telegram Bot for a smart office and smart home.

ProjectsCommunitiesContestsLiveAppsBetaFree StoreBlogAdd projectSign up / Login
Respect project
Feedback