Open Source IoT Development IDE and Communicator for NodeMCU / Arduino /Raspberry-PI


(David Lyon) #1

After much work on NodeMCU I felt that I’d do my own IDE for it and the Raspberry Pi because I felt that many development environments were lacking.

So I’m now aiming to complete this project as a Training Teaching Tool for using NodeMCU, RIOT and other IoT projects.

Here is the link to the Repository - I’m doing it as Open Source.

I’ve taken some Qt example projects and I’m modifying it all up to get it all to work together.

The basic features are to be:

  • Integrated Communications window for all types of Serial and Packet data
  • Support for GNU ‘Make’ type tools
  • Support for NodeMCU
  • Made with Qt and runs on RaspberryPi, Windows, Linux, OS-X
  • will have some advanced features - those are coming when the basics are done.

(David Lyon) #2

I now have a hopefully not too obscure Toolbar:

image

With the following toolbar buttons:

  • Welcome
  • Save
  • Devices
  • Logic
  • Connections
  • Build
  • Run

I want to have it ready before I go back to Japan to show friends there.


(David Lyon) #3

The next step is building the GPIO setup.

image

image

Which then gives a GPIO map for your particular processor board:

image

The next step will then be building in the logic to allow you to assign pins, rename them and perhaps move them and use them in code.


(David Lyon) #4

The IoT Designer progresses.

The latest addition is to be able to Cut&Paste graphics off the Web and paste them directly into the diagram and connect them.

Here I want to add an Electric Motor. So I find one off the web:

2018-04-24-234446

Then I add it from the Dialog:

Then it appears on my Scene along with the other Components:


(David Lyon) #5

Hopefully it’s approaching being useable.

It’s now possible to design Scenes and change connection points for items.

I did some Demonstrations to people here in town and they definitely could see that it could be useful.

In my web searching I came across : https://github.com/sudar/Arduino-Makefile which allows for building of Arduino projects from Makefiles.

So I’ll be loading this up soon to see if I can integrate that.

At the IoT meetup I asked if anybody knew of any tool like this and Cisco apparently have the only thing but it works a little differently and it’s for a completely different purpose.

I’ll most likely come back next Wednesday night on Electronics night and see if there are any projects that I can attempt to document using this tool. One of the main purposes is to be able to quikly document Electronics and IoT projects so I’ll give that a go.


(David Lyon) #6

2018-05-16-124244

I’m working on the pin autoconnection system. It’s showing proof of life.

The idea is to be able to connect two boards together and have the software work out what wires need to be connected together to make it work.


(David Lyon) #7

I’ve completed the first run of Automatic Pin Connection and it works for simple cases.

When you connect a cable between two components, the software will figure out the pins that you need to connect together to make it work.

It’s also now lives on github https://github.com/clixx-io/kayeiot as KayeIoT (pronounced Cayote).


(David Lyon) #8

The UI now has colour schemes, Orange, Blue, Purple etc and the Operation to generate a “Report” on the Design is now operational.

To generate this information from the diagram in the previous post, all you have to do is press the “F” key which toggles the “Final Display” mode.


(David Lyon) #9

It can now Import Parts and .SVGs from Fritzing ! and Auto-Connect them.


#10

Nice, especially the auto-connect!


(David Lyon) #11

Thanks.

I need to write some better Test Cases because the AutoConnect is getting a bit complex but it works at a basic level.

Now I am working to get the Animations working so that you can see Sensor activity and so forth happen in a visual manner. I demonstrated a few things moving last night. Next step will be to get the directions of the movements going in the right way :wink:

Can anyone help me to write some code to help Import Arduino Sketches and produce a Visual Diagram for an Arduino Sketch ?

It isn’t as hard as it might sound. At the top of the .ino program will be a list of “.h” files and they will correspond to a particular known board which we can record in the board file for a part. I’ve moved my ‘Parts library’ to github and it now lives here https://github.com/clixx-io/kayeiot-parts/tree/master/parts

By doing a lookup of the .h file we can associate a particular .h file to a board and then automatically add a component to the diagram for each component identified.

Any helpers ?

[I can already import many Fritzing .fzp files. It would be great to have .ino Import as well as then we can produce a Visual Diagram for the majority of Arduino Sketches simply by reading the Source .ino file and then graphing it. All of the Graphing activity currently exists]

:slight_smile:


(David Lyon) #12

The .ino Scanner is now showing signs of life and it will now identify Hardware that’s used inside Arduino Sketches.


(David Lyon) #13

So here it is now generating and displaying all the components from the .ino.

It shows how a Graphical Diagram can be generated from an ino file.


(David Lyon) #14

A new Toolbar added to make it easer to add Components.

Including the ‘r’ button to generate the Report for a Printer/Documentation ready Version.

The ability to Import an Arduino directly from github and produce a diagram of the Hardware as described by the Code.

Ie, give it an Arduino Github URL, it will produce a diagram of what the Sketch would need to run.

This diagram is created directly from this Arduino Sketch on Github: https://github.com/cranklin/Face-Tracking-Robot/blob/master/arduino/pan_tilt_serial/pan_tilt_serial.ino


(David Lyon) #15

It’s now on Hackaday : https://hackaday.io/project/159288-kayeiot-cad-for-hacking-and-iot

Work will now commence to get it running on Windows, get bugs fixed up and make it useable for people on projects.


(David Lyon) #16

Since the Visualisation of an Arduino Sketch worked, I need to add more sensors. So I’m adding detection for 350 Sensors from this page - https://www.arduinolibraries.info/categories/sensors:

Sensors

A list of the 350 libraries in the category Sensors.

ALog Low-power general-purpose data logger library, written for the Arduino-based ALog but expandable to other devices.
Accelerometer ADXL335 Arduino library to control Grove - 3-Axis Analog Accelerometer ADXL335.
Accelerometer ADXL345 Arduino library to control Grove 3Axis Digital Accelerometer ADXL345.
Accelerometer And Gyroscope LSM6DS3 Arduino library to control Grove 6 Axis Accelerometer&Gyroscope LSM6DS3.
Accelerometer_H3LIS331DL Arduino library to control Grove 3-Axis Digital Accelerometer(±400g).
Accelerometer_MMA7660 Arduino library to control Grove - 3-Axis Digital Accelerometer(±1.5g).
Accessory Shield Allows an Arduino board to use the DFRobot Accessory Shield
ACE128 Access the Bourns ACE-128 Absolute Contacting Encoder over I2C or digital pins
ACI_10K_AN-temp-sensor Read temperature with analog input and 10K RTD
AD7193 Library for AD7193 Sigma-Delta ADC with PGA
AD_Sensors The Library implements a set of methods for working with a digital and analog sensors.
Adafruit ADXL345 Unified driver for the ADXL345 Accelerometer
Adafruit AHRS AHRS (Altitude and Heading Reference System) for Adafruit’s 9DOF and 10DOF breakouts
Adafruit AM2315 Library code for AM2315 sensors
Adafruit AM2320 sensor library Arduino library for AM2320 I2C Temp & Humidity Sensors
Adafruit AMG88xx Library Arduino library for AMG88xx 8x8 Thermocouple Sensors.
Adafruit APDS9960 Library This is a library for the Adafruit APDS9960 gesture/proximity/color/light sensor.
Adafruit BME280 Library Arduino library for BME280 sensors.
Adafruit BME680 Library Arduino library for BME680 sensors.
Adafruit BMP085 Library A powerful but easy to use BMP085/BMP180 Library
Adafruit BMP085 Unified Unified sensor driver for Adafruit’s BMP085 & BMP180 breakouts
Adafruit BMP183 Library Non-Unified BMP library
Adafruit BMP183 Unified Library Arduino library for the BMP183 sensors in the Adafruit shop
Adafruit BMP280 Library Arduino library for BMP280 sensors.
Adafruit BNO055 Library for the Adafruit BNO055 Absolute Orientation Sensor.
Adafruit CAP1188 Library Arduino library for the Adafruit CAP1188 8-Channel Capacitive Touch Sensor Breakout
Adafruit CCS811 Library This is a library for the Adafruit CCS811 I2C gas sensor breakout.
Adafruit Fingerprint Sensor Library Arduino library for interfacing to the fingerprint sensor in the Adafruit shop
Adafruit FreeTouch Library Arduino library for QTouch on samd21 microcontroller
Adafruit FXAS21002C Unified sensor driver for the FXAS210002C Gyroscope
Adafruit FXOS8700 Unified sensor driver for the FXOS8700 Accelerometer/Magnetometer
Adafruit GPS Library

… … …


(David Lyon) #17

It’s working under Windows now !


(David Lyon) #18

It now compiles and uploads Arduino Sketches using Arduino-cli https://github.com/arduino/arduino-cli

There’s some cleaning up to do but these functions work on “the development machine” and that is good enough for now. :slight_smile: