Tag: React Native

Virtual Reality and IOT combination

Hello People. This article is about Virtual Reality and IOT combination. You already know that multiple technologies are involved in achieving a custom software solution. So let us see how Virtual reality and IOT combination can be useful in creating a software application.

As one can easily understand, Internet of Things (IOT) is a network of devices that can communicate witheach other. It mainly consists of an electronic circuit which is embedded along with sensor for measuring multiple parameters. Internet connection enables collection and exchange of data. Now coming to Virtual reality,  VR is a computer generated simulation which creates an artificial 3D environment.  VR is being used in educational environments for on-field learning and classroom training across all domains.

IoT and virtual reality are key technologies that can improve productivity and efficiency of several sectors and have a potential to revolutionize digital infrastructure. Development of innovative accessories, wearables, and software by start-ups entering VR space is the recent trend of the IOT and VR industry.

How IoT is enhancing Virtual Reality

Cloud-enabled IoT devices not only serve people’s needs but also react to them. Smart IOT products must constantly evolve according to the desires of consumers and developers must be agile to satisfy them and create value. For example, in cities around the world, air quality is crucial to healthy living, especially with allergies and respiratory problems on the rise. According to consumer insights, people in megacities like Hyderabad and Bangalore want to understand and control air quality in their home from wherever they are. This led to an introduction of Smart Air Purifiers, which provide families with a real-time overview and control of indoor air quality through their smartphone.

Virtual Reality and IOT Combination

Integration of VR and IoT can make a big difference in healthcare technology. For example, one can design a process to monitor the performance of a rail transportation network using IoT sensors and a virtual world operator. IoT and VR can integrate with harmony as IoT can provide the support to facilitate the future of virtual reality.

Hope this article on Virtual Reality and IOT combination is useful to you. Please read IOT Solution Providers in Hyderabad

Arduino UNO Pins explained

Hello People. This article is titled Arduino UNO Pins explained. Arduino Uno is one of the most popular microcontroller. It has the development board based on 8-bit ATmega328P microcontroller. In addition to ATmega328P MCU IC, it consists other components such as crystal oscillator, serial communication, voltage regulator, etc. to support the microcontroller.

Arduino Uno has 14 digital input/output pins (6 of them can be used as PWM outputs), 6 analog input pins, a USB connection, A Power barrel jack, an ICSP header and a reset button.

How to use Arduino UNO Pins

As explained above, the 14 digital input/output pins can be used as input or output pins by using pinMode(), digitalRead() and digitalWrite() functions in arduino programming. Each pin operates at 5V and can provide or receive a maximum of 40mA current, and has an internal pull-up resistor of 20-50 KOhms which are disconnected by default.  Out of these 14 pins, some pins have specific functions as listed below:

  • Serial Pins 0 (Rx) and 1 (Tx): Rx and Tx pins are used to receive and transmit TTL serial data. They are connected with the corresponding ATmega328P USB to TTL serial chip.
  • External Interrupt Pins 2 and 3: These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value.
  • PWM Pins 3, 5, 6, 9 and 11: These pins provide an 8-bit PWM output by using analogWrite() function.
  • SPI Pins 10 (SS), 11 (MOSI), 12 (MISO) and 13 (SCK): These pins are used for SPI communication.
  • In-built LED Pin 13: This pin is connected with an built-in LED, when pin 13 is HIGH – LED is on and when pin 13 is LOW, its off.
Arduino UNO Pins explained

Along with 14 Digital pins, there are 6 analog input pins. Each of them provide 10 bits of resolution, i.e. 1024 different values. They measure from 0 to 5 volts but this limit can be increased by using AREF pin with analog Reference() function.  

  • Analog pin 4 (SDA) and pin 5 (SCA) also used for TWI communication using Wire library.

Arduino Uno has two other pins as explained below:

  • AREF: Used to provide reference voltage for analog inputs with analogReference() function.
  • Reset Pin: Making this pin LOW, resets the microcontroller.

Hope this article titled Arduino UNO Pins explained is useful to you. Please read Install PIP for Python on Windows

Blockchain Technology explained

Hello People. This article makes you Blockchain Technology explained. A blockchain is a distributed database that is shared among the nodes of a computer network. It stores information electronically in digital format.

Blockchains are used in cryptocurrency systems, such as Bitcoin, for maintaining a secure and decentralized record of transactions. It guarantees the fidelity and security of a record of data and generates trust without the need for a trusted third party.

Main Features

  • Blockchain is a shared database. It differs from a typical database in the way that it stores information.
  • Blockchains store data in blocks that are then linked together via cryptography.
  • When data comes in, it is entered into a fresh block. Once the block is filled with data, it is chained onto the previous block, which makes the data chained together in chronological order.
  • Most common use of blockchain so far has been as a ledger for transactions. 
  • In Bitcoin, blockchain is used in a decentralized way so that no single person or group has control. All users collectively retain control.
  • Data entered is irreversible. Transactions are permanently recorded and viewable to anyone.
Blockchain Technology explained

Blockchain working process

The purpose of blockchain is to allow digital information to be recorded and distributed, but not edited. In this way, a blockchain is the foundation for immutable ledgers, or records of transactions that cannot be altered, deleted, or destroyed. This is why blockchains are also known as a distributed ledger technology (DLT).

Blockchain’s first widespread application in use was Bitcoin in 2009. In the years since, the use of blockchains has exploded via the creation of various cryptocurrencies, decentralized finance (DeFi) applications, non-fungible tokens (NFTs), and smart contracts.

Blockchain has three important concepts: blocks, nodes and miners.

Blocks

Every chain consists of multiple blocks and each block has three basic elements:

  • The data in the block.
  • A 32-bit whole number called a nonce. The nonce is randomly generated when a block is created, which then generates a block header hash. 
  • The hash is a 256-bit number wedded to the nonce. It must start with a huge number of zeroes (i.e., be extremely small).

When the first block of a chain is created, a nonce generates the cryptographic hash. The data in the block is considered signed and forever tied to the nonce and hash unless it is mined.  

Miners

Miners create new blocks on the chain through a process called mining.

In a blockchain every block has its own unique nonce and hash, but also references the hash of the previous block in the chain, so mining a block isn’t easy, especially on large chains.

Miners use special software to solve the incredibly complex math problem of finding a nonce that generates an accepted hash. Because the nonce is only 32 bits and the hash is 256, there are roughly four billion possible nonce-hash combinations that must be mined before the right one is found. When that happens miners are said to have found the “golden nonce” and their block is added to the chain. 

Making a change to any block earlier in the chain requires re-mining not just the block with the change, but all of the blocks that come after. This is why it’s extremely difficult to manipulate blockchain technology. Think of it as “safety in math” since finding golden nonces requires an enormous amount of time and computing power.

When a block is successfully mined, the change is accepted by all of the nodes on the network and the miner is rewarded financially.

Nodes

One of the most important concepts in blockchain technology is decentralization. No one computer or organization can own the chain. Instead, it is a distributed ledger via the nodes connected to the chain. Nodes can be any kind of electronic device that maintains copies of the blockchain and keeps the network functioning. 

Every node has its own copy of the blockchain and the network must algorithmically approve any newly mined block for the chain to be updated, trusted and verified. Since blockchains are transparent, every action in the ledger can be easily checked and viewed. Each participant is given a unique alphanumeric identification number that shows their transactions.

Combining public information with a system of checks-and-balances helps the blockchain maintain integrity and creates trust among users. Essentially, blockchains can be thought of as the scalability of trust via technology. 

Hope this article on Blockchain Technology explained is useful to you. Please read about Printed Circuit Board designing business

Clients for Mobile app development

Hello People. This article discusses how to get clients for Mobile app development. Finding clients is a major problem for IT startups and entrepreneurs. Here are few useful tips to get clients for app development companies.

Firstly highlight the skill you are expert in. For example we have good command over android development so what we would do is that we find websites which have no apps yet in the playstore. We will drop a mail to owner on that website that you are lacking much audience because this era is of app users and there are trillions of folks using smart phone. We can build your app at a very reasonable price. In this scenario if client gets ready you could be able to build up portfolio.

You can also try getting business through LinkedIN. Visit your profile page on LinkedIN from your mobile app or desktop, and if business feature is turned on for you, you’ll see a box under your profile photo/headline that talks about how to showcase the services you provide. Click “Add Services,” and then fill out the form to provide details about the services you provide. Be as detailed as possible so members who view this section have a good sense for what you provide. Click “continue” and this will automatically be added to your profile.

Clients for Mobile app development

For finding clients on linkedIn, you must have a good connection with your targeted audience. You can search clients by their posted requirement like: “Looking for the freelancer designer or developer”. Once you type a statement like this one in the search box you will get the list of a result as you have to sort the list by “Content”. Then you can able to view all the posts related to that “keyword/requirement”. You have to pitch to that Author who has posted the requirement. You can simply comment or you can connect with him for further discussion.

Hope this article on how to get clients for Mobile app development is useful to you. Please read about Optical Character Recognition in React

Optical Character Recognition in React

Hello People. This article discusses about Optical Character Recognition in React. OCR is very useful when you want to extract text from a scanned document on a browser. Applying OCR technology through a React application, you can upload your images in various formats and can apply OCR to extract text content so easily. 

How to achieve Optical Character Recognition in React?

We’ll use two third party libraries for different purposes. The first one is “tesseract.js”. It’ll allow us to run OCR easily with just a couple of lines of code. The second one is “react-images-upload”, it’ll allow us to upload images to the browser and access their locations easily.

Here we do a couple of new things and you may want to follow them carefully. We should put the code snippet above the return we need to create 3 states here to achieve different goals. The first state we have here is to take the image URLs from our ImageUploader component and save it for further processing, the second state is the one that we keep our OCR applied texts, and the third one is the one for loading logic.

Optical Character Recognition in React

onDrop function is called whenever a change happened in our ImageUploader component . So whenever a change happens like adding or removing the photos in our component this function will be fired up. It’ll take the argument we need in the second position after the onChange event is fired so we can simply bypass the first argument by putting “_” and take the second one. It has link/links for our images in it and it’ll bring the full latest list of links so whenever we get a list from our function we can safely put that in our array.

runOcr function seems tricky but in fact, it’s quite simple, we take our URLs state and run the following recognition script for each element. Tesseract recognize function takes at least 2 arguments, first is the URL and the second one is the target language, tesseract.js supports over 100 languages. After the requests resolve we take output text and add it to our current array. After we fire runOcr command we can setIsLoading to true so we can display our spinner.

Hope this article on Optical Character Recognition in React is useful to you. Please read What is Node Red and its application

Software Development company for IoT projects

Hello People. This article discusses how to choose a software development company for IOT projects. The Internet of Things is a concept in which many everyday appliances and consumer electronics are computerized and connected to the Internet. Choosing an IoT developer today is very difficult.

IoT development cost

IoT development is very complex and therefore cannot be cheap. Immediately eliminate companies that offer their services 2-3 times cheaper. You will probably end up with a low-quality product if you choose them.

Blog posts and social media

Regular posts on social networks and a blog by a company indicate that the company has something to share with the audience. It is a great way to understand IoT’s level of expertise and company scale. It is enough to read a few articles to understand the material’s relevance and cultural level.

Plan for long-term

When it comes to the corporate, planning for the long term is the best. As it is a far-reaching, well thought, and comprehensive strategy that has the capability to change your life completely, the former applies to it too. 

Additionally, there’s always a level of uncertainty associated with this dynamic and disruptive technology, that may lead to unpredictable consequences in the future. This calls for the need for long-term planning that allows you to stay prepared for or unexpected events and take actions based on the ever-changing business environment and changing technologies.

Software development company for IOT projects

Figure out the basics

While your business might be successful with the adoption of this smart technology, relying on mere data collection may lead to failure in the next phase of a project. IoT is more than just collecting data with the help of connected devices, and you must consider several other factors to make your IoT project successful. 

It’s worth brainstorming how you are supposed to gain profitable business values from your internet-connected assets. Moreover, while you are collecting data, you need to make sure that it is driven by the real-world needs of a business and is organized properly. 

Secure IoT Private Networking

Protecting and securing your data is a serious business regardless of what industry you’re in. To have secure networking it’s better to create different ways for customers to build and own their IoT private network from end to end.

Regardless of whether you’re utilizing AWS VPC peering, AWS Direct Connect or IoT LANs, the IOT development company should plan to scale their customer’s business without compromising on their data.

Hope this article on software development company for IOT projects is useful to you. Please read Cost of developing an IOT app

Production stage issue in APP development

Hello People. This article discusses about a production stage issue in APP development. If you are a react native expo app developer, and you use local data for maps, you might have noticed that the map screen breaks in production. This is because you have not installed react-native-maps.

In this article, let us see how to use react-native-maps in a expo project.

Installation in expo

expo install react-native-maps

Let us see an example code of a map screen.

MapScreen.JS

import * as React from 'react';
import MapView from 'react-native-maps';
import { StyleSheet, Text, View, Dimensions } from 'react-native';

export default function App() {
  return (
    <View style={styles.container}>
      <MapView style={styles.map} />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
  map: {
    width: Dimensions.get('window').width,
    height: Dimensions.get('window').height,
  },
});

Configuration

An additional configuration is not necessary to use react-native-maps in Expo Go. But if you want to deploy your standalone app you should follow instructions below.

Production stage issue in APP development

Deploying Google Maps to Android standalone app

1. Register a Google Cloud API project and enable the Maps SDK for Android

  • Open your browser to the Google API Manager and create a project.
  • After that, go to the project and enable the Maps SDK for Android

2. Get your app’s SHA-1 certificate fingerprint ready

  • If you are deploying your app to the Google Play Store, you will need to have created a standalone app and uploaded it to Google Play at least once in order to have Google generate your app signing credentials.
    • Go to the Google Play Console → (your app) → Setup → App Integrity
    • Copy the value of SHA-1 certificate fingerprint
  • If you are sideloading your APK or deploying it to another store, you will need to have created a standalone app, then run expo fetch:android:hashes and copy the Google Certificate Fingerprint.

3. Create an API key

  • Go to Google Cloud Credential manager and click Create Credentials, then API Key.
  • In the modal, click Restrict Key.
  • Under Key restrictions → Application restrictions, ensure that the Android apps radio button is chosen.
  • Click the + Add package name and fingerprint button.
  • Add your Android package name from app.json to the package name field.
  • Add or replace the SHA-1 certificate fingerprint with the value from step 2.
  • Click Done and then click Save

4. Add the API key to your project

  • Copy your API Key into your app.json under the android.config.googleMaps.apiKey field.
  • Rebuild the app binary and re-submit to Google Play or sideload it (depending on how you configured your API key) to test that the configuration was successful.

Hope this article on Production stage issue in APP development is useful to you. Please read How to make a website responsive using HTML

MVVM pattern in KnockoutJS

Hello People. This article discusses about MVVM pattern in KnockoutJS. Model-View-ViewModel (MVVM) is an architectural design pattern for developing software applications. This pattern is derived from Model-View-Controller (MVC) pattern. The advantage of MVVM is that it separates the application layer’s graphical user interface from business logic.

Knockout: KnockoutJS is a pure JavaScript framework to implement the MVVM design pattern in the web application development. The main key concepts of KO are:

  • Declarative Bindings
  • Automatic UI Refresh
  • Dependency Tracking
  • Templating

MVVM is responsible for handling data from the underlying model in such a way that it is represented and managed very easily. ViewModel in MVVM represents an abstract version of View’s state and actions. The view classes do not know that Model and ViewModel classes exists, also Model and ViewModel does not know that View exists. Model is also unaware that ViewModel and View exists.

MVVM pattern in KnockoutJS

Let us see the definitions of Model-View-ViewModel (MVVM) .

View

View is a Graphical User Interface created using markup language to represent data. View binds to properties of a ViewModel through data-bind concept, which indirectly connects to the model data. View need not be changed for any alteration done in ViewModel. Changes made to data in ViewModel is automatically propagated in View due to binding.

Model

Model is domain data or business object, which holds real-time data. Model does not carry behaviors. Behavior is mostly implemented in business logic.

ViewModel

ViewModel is the center place, where data from Model and View’s display logic are bundled together. ViewModel holds the dynamic state of data. There is an implicit binder in between View and ViewModel to communicate with each other. This binding is inclusive of declarative data and command binding. Synchronization of View and ViewModel is achieved through this binding. Any change made in View is reflected in ViewModel, and similarly any change in ViewModel gets automatically reflected in View. Existence of this 2-way binding mechanism is a key aspect of this MVVM pattern.

Hope this article on MVVM pattern in KnockoutJS is useful to you. Please read about How to use EmailJS in React website

How to use EmailJS in React website

Hello People. This article discusses how to use EmailJS in React website. In almost all the web applications we create, we need to send emails to users, whether it be a support email or verification one. We will be using react-bootstrap to build the Contact Form in react. Add ‘emailJs’ dependency using yarn or npm.

How does EmailJS work?

EmailJS helps to send emails using client-side technologies only. No server is required – just connect EmailJS to one of the supported email services, create an email template, and use our Javascript library to trigger an email.

Email templates can optionally contain dynamic variables in almost any field (e.g. subject, content, TO address, FROM name, etc) which are populated from the Javascript call. For example, the subject can be “{{ name }}, you have a new message”, and using JavaScript the name can be set to “James Dean”, for instance.

Additionally, you can easily add attachments, require CAPTCHA validation, switch between the email services without making code changes, review the history of the email request, and more.

Connecting email services

EmailJS is not sending the emails directly. Instead, it allows users to connect their email services, through which the emails will be sent. We support a long list of email services, both personal services and transactional email services.

Personal email services allow connecting personal email providers that offer basic email functionality – an email address and an inbox. These include providers like Gmail, Fastmail, Outlook 365, etc’. Personal email services are useful in EmailJS when you need to send a small number of emails to yourself, or need to send emails to other people from your personal email account. Note, your personal email account could be blocked if you go over the daily limit of the email provider, and your email address could be flagged as spam if you send unsolicited emails to multiple recipients. Our general recommendation is to use personal email services only for development purposes or for very low volume usage.

Transactional email services allow connecting dedicated transactional email providers that were designed to send out a large number of emails to a large number of recipients. These providers are usually more robust, can handle higher volumes, and provide a better email reputation (which means fewer chances your emails will end up in the spam folder). We strongly recommend you use one of these providers for your production environment.

To connect an email service:

  1. Open Email Services page in EmailJS dashboard
  2. Choose from the list of supported services and click on the service
  3. Fill out the service details
  4. Test the email service and make sure you receive the test email
How to use EmailJS in React website

Let us see the code of the contact form.

Contact.JS

import React, { useRef } from "react";
import Container from "./Container";
import Row from "./Row";
import Col from "./Col";
import { Form, Button, FloatingLabel } from "react-bootstrap";
import emailjs from "emailjs-com";
import Swal from "sweetalert2";
import "@sweetalert2/theme-dark/dark.css";


const Contact = () => {
  const form = useRef();
  const [verified, setVerified] = React.useState(false);
  const onVerify = (e) => {
    setVerified(true);
  };

  const sendEmail = (e) => {
    e.preventDefault();

    emailjs
      .sendForm(
        "servicexxxx",
        "templatexxxx",
        form.current,
        "user_xxxxxx"
      )
      .then(
        function (response) {
          Swal.fire({
            title: "Message Sent!",
            text: "Thank you for your message! I will respond shortly.",
            icon: "success",
            confirmButtonText: "Ok",
          });
          console.log("SUCCESS!", response.status, response.text);
          e.target.reset();
        },
        function (error) {
          Swal.fire({
            title: "Whoops!",
            text: "Something went wrong.",
            icon: "error",
            confirmButtonText: "Ok",
          });
          console.log("FAILED...", error);
        }
      );
  };
  return (
    <section id="contact" className="pb-4">
      <Container className="contact-wrapper">
        <Row>
          <Col size="col-md-6 justify-content-center">
            <div className="card mt-4 pb-4">
              <h1 className="heading">Let's Connect</h1>
              <Form ref={form} onSubmit={sendEmail}>
                <Form.Group className="mb-3" controlId="formBasicName">
                  <FloatingLabel
                    controlId="floatingInput"
                    label="Name"
                    className="mb-3 w-75 mx-auto"
                  >
                    <Form.Control
                      type="text"
                      placeholder="First Last"
                      name="name"
                      autoComplete="on"
                      required
                    />
                  </FloatingLabel>
                </Form.Group>
                <Form.Group className="mb-3" controlId="formBasicEmail">
                  <FloatingLabel
                    controlId="floatingInput"
                    label="Email address"
                    className="mb-3 w-75 mx-auto"
                  >
                    <Form.Control
                      type="email"
                      placeholder="name@example.com"
                      name="email"
                      autoComplete="on"
                      required
                    />
                  </FloatingLabel>
                </Form.Group>
                <Form.Group
                  className="mb-3"
                  controlId="formComment"
                ></Form.Group>
                <FloatingLabel
                  controlId="floatingTextarea2"
                  label="Comments"
                  className="w-75 mx-auto"
                >
                  <Form.Control
                    as="textarea"
                    placeholder="Leave a comment here"
                    name="message"
                    style={{ height: "100px" }}
                    required
                  />
                </FloatingLabel>
                
                <Container className="center mt-4">
                  <div className="buttonWrapper mt-4">
                    <Button
                      variant="primary"
                      className="w-75"
                      type="submit"
                      size="lg"
                      
                    >
                      Submit
                    </Button>
                  </div>
                </Container>
              </Form>
            </div>
          </Col>
        </Row>
      </Container>
    </section>
  );
};

export default Contact;

EmailJS integration has the following steps:

  • Add an email service
  • Create an email template
  • Create an HTML form
  • Send email with form details using EmailJS SDK

Then use emailjs component to send the email. You will need to pass the configuration object in this function.

emailjs
      .sendForm(
        "service_qseq79h",
        "template_wc1fped",
        form.current,
        "user_hVmW7t1Fm5PWBqZnlB8xk"
      )
  1. The first parameter is your email service ID. You can get it from emailJS dashboard.
  2. The second parameter is the template ID. You will get this from Dashboard of emailJs once registered.
  3. The third parameter is the User ID in the emailJs dashboard.

Hope this article on How to use EmailJS in React website is useful to you. Please read Node MCU for IOT applications

Node MCU for IOT applications

Hello People. This article discusses about Node MCU for IOT applications. NodeMCU is an open source IoT platform including a firmware which runs on the ESP8266 with the Espressif Non-OS SDK, and hardware based on the ESP-12 module. Node MCU features 4MB of flash memory, 80MHz of system clock, around 50k of usable RAM and an on chip Wifi Transceiver.

Flash Memory

NodeMCU v2 features a 4 MB (32 Mb) flash memory organized in sectors of 4k each. The flash memory address starts at 0x40200000 and can be read and written from a Zerynth program using the internal flash module.

Device Specifications

  • Microcontroller: Tensilica 32-bit RISC CPU Xtensa LX106
  • Operating Voltage: 3.3V
  • Input Voltage: 7-12V
  • Digital I/O Pins (DIO): 16
  • Analog Input Pins (ADC): 1
  • UARTs: 1
  • SPIs: 1
  • I2Cs: 1
  • Flash Memory: 4 MB
  • SRAM: 64 KB
  • Clock Speed: 80 Mhz
  • Wi-Fi: IEEE 802.11 b/g/n:
    • Integrated TR switch, balun, LNA, power amplifier and matching network
    • WEP or WPA/WPA2 authentication, or open networks

Power Supply

Power to the NodeMCU is supplied via the on-board USB Micro B connector or directly via the “VIN” pin. The power source is selected automatically. Node MCU can operate on an external supply of 6 to 20 volts. If using more than 12V, the voltage regulator may overheat and damage the device. The recommended range is 7 to 12 volts.

Node MCU for IOT applications

Connection

The NodeMCU v2 exposes the serial port of the ESP8266 module via a CP2102 usb bridge which is also connected to the boot pins of the module, allowing for a seamless virtualization of the device.

Once connected to a USB port the NodeMCU v2 device can be seen as a Virtual Serial port and it is automatically recognized by Zerynth Studio. The next steps are:

  • Select the NodeMCU on the Device Management Toolbar;
  • Register the device by clicking the “Z” button from the Zerynth Studio;
  • Create a Virtual Machine for the device by clicking the “Z” button for the second time;
  • Virtualize the device by clicking the “Z” button for the third time.

After virtualization, the NodeMCU v2 device is ready to be programmed and the Zerynth scripts uploaded. Just Select the virtualized device from the “Device Management Toolbar” and click the dedicated “upload” button of Zerynth Studio.

Firmware Over the Air update (FOTA)

The Firmware Over the Air feature allows to update the device firmware at runtime. Zerynth FOTA in the NodeMCU v2 device is available for bytecode only.

Hope this article on Node MCU for IOT applications is useful to you. Please read about Build your own Sonoff switch

Navigation

× Contact Us