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
  • 149
  • 2

Full instructions

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

PiMiniMint
Intermediate
  • 4,745
  • 27

Full instructions

Build your very own Linux terminal inside a mint tin!

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

Full instructions

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

C.H.I.P.py Ruxpin ʕ•ᴥ•ʔ
Intermediate
  • 45,752
  • 71

Full instructions

Bring Teddy Ruxpin back to life, but on your own terms! Make him say whatever you want, or have him search twitter to read tweets!

Make an "Air" Drum Kit with Curie Nano
Intermediate
  • 163
  • 0

Full instructions

Enjoy playing drums anytime anywhere without worrying about making noise or disturbing others - just attach Curie to your drum sticks!

Otto DIY +
Intermediate
  • 5,059
  • 41

Work in progress

"Otto DIY with steroids" + Bluetooth + APP + switch + sensors + strength +...

Otto DIY +

Team Otto builders

Add projectSign up / Login
Respect project